Spring XML для конфигурации XML - PullRequest
       9

Spring XML для конфигурации XML

1 голос
/ 07 февраля 2011

Я пытаюсь загрузить контекст Spring.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;
    }
}

Я получаю следующее исключение:

Строка 25 в XML-документе из файла [D:\correct\path\to\ctx.xml] нарушает схему. Элемент 'http://www.springframework.net/database:provider' не объявлен.

Я получаю ту же ошибку, если вытащить прямо из сборки. (Закомментированные строки.)

Что действительно странно, так это то, что у меня не было проблем, пока я не начал новый проект и не попытался использовать конфигурацию в моем новом проекте. (Этот код и файл конфигурации работали месяцами в старых проектах и ​​продолжают работать.)

Edit:

декларации 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;"/>

1 Ответ

0 голосов
/ 07 февраля 2011

Похоже, что-то пошло не так с обнаружением и регистрацией 'хорошо известных анализаторов пространства имен'.Чтобы устранить эту проблему, попробуйте объявить псевдоним пространства имен в самом файле XML, как в ...

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

..., а затем посмотрите, работает ли он правильно.Какую версию Spring.NET вы используете?И это та же самая версия, которая использовалась в ваших прошлых проектах, где такое же наложение имен происходит автоматически для вас -?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...