2011-02-07 9 views
1

XMLファイルからSpring.NETコンテキストをロードしようとしています。スキーマに違反したファイル[D:\correct\path\to\ctx.xml]からXML文書内のライン25Spring.NET XML設定の悩み

:私は次の例外を受信して​​い

public class ApplicationContextFactory 
{ 
    private static IApplicationContext _context; 
    public static IApplicationContext GetContext() 
    { 
     if (_context == null) 
     { 
      try 
      { 
       string data = new StreamReader(
         Assembly.GetExecutingAssembly(). 
         GetManifestResourceStream("Nmspace.Fldr.spring-config.xml")) 
         .ReadToEnd(); 
       using (var temp = File.CreateText("ctx.xml")) 
        temp.WriteLine(data); 
       _context = new XmlApplicationContext("ctx.xml"); 
       // _context = new XmlApplicationContext(
        //"assembly://DataLoader/DataLoader/Config.spring-config.xml"); 
      } 
      catch (Exception e) 
      { 
       string error = e.Message; 
      } 
     } 
     return _context; 
    } 
} 

:私は、次のコードを持っています。 'http://www.springframework.net/database:provider'要素は宣言されていません。

アセンブリから直接引っ張っても同じエラーが発生します。 (コメントアウトされた行)

私は新しいプロジェクトを開始し、私の新しいプロジェクトで設定を使用しようとするまで問題はなかったということです。 (このコードおよびコンフィギュレーションファイルが古いプロジェクトに数ヶ月のために働いていた、とまだいました。)

編集:

のxmlns宣言:

<objects 
    xmlns="http://www.springframework.net" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:tx="http://www.springframework.net/tx" 
    xmlns:db="http://www.springframework.net/database" 
    xmlns:aop="http://www.springframework.net/aop" 
    xsi:schemaLocation="http://www.springframework.net http://www.springframework.net/schema/objects/spring-objects.xsd 
     http://www.springframework.net/schema/tx http://www.springframework.net/schema/tx/spring-tx-1.1.xsd 
     http://www.springframework.net/schema/db http://www.springframework.net/schema/db/spring-database.xsd 
     http://www.springframework.net/aop http://www.springframework.net/schema/aop/spring-aop-1.1.xsd" 
> 

問題ライン(25):

<db:provider 
    id="localDbProvider" 
    provider="OracleClient-2.0" 
    connectionString= 
     "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME = xe))); User Id=cmdb; Password=password;"/> 
+0

'ctx.xml'の25行目を追加できますか? – Marijn

+0

@Marijn、追加。希望が役立ちます。 – jjnguy

+0

オンラインバージョンを参照する代わりに、ローカルスキーマを使用しようとしましたか?どのように[docsで記述する](http://www.springframework.net/doc-latest/reference/html/vsnet.html#vsnet-config-section)。 – Marijn

答えて

0

「well-known-namespace-parsers」の検出と登録で何かの問題が発生しました。これを解決するには、中...

<objects xmlns='http://www.springframework.net' 
    xmlns:database="http://www.springframework.net/database"> 
    ... 
</objects> 

としてXMLファイル自体に名前空間のエイリアスを宣言...そしてそれが正常に動作するかどうかを確認してみてください。 Spring.NETのどのバージョンを使用していますか?そして、同じ名前空間のエイリアシングがあなたのために自動的に起こる過去のプロジェクトで使用されているのと同じバージョンですか?

+0

私は現在宣言している「名前空間エイリアス」を含むように質問を編集しました。これはSpring.Net 2です。私が貼り付けたコードブロックは、以前使用していたのとまったく同じコードブロックです。私はそれに(本質的に)3つのプロジェクトと1つのソリューションを使用しています。データアクセスプロジェクト(上記のコードを含む)、データアクセスプロジェクトを使用する古いプロジェクト、およびデータアクセスプロジェクトを使用する予定の新しいプロジェクト。 – jjnguy

+0

(また、ありがとうございます) – jjnguy

関連する問題