Intellisense для пользовательского раздела конфигурации проблема с пространствами имен

Я только что свернул пользовательский раздел конфигурации, создал сопроводительный документ схемы для Intellisense и добавил его в свойство Schemas Web.config в соответствии с ответом Майкла Стума на другой похожий вопрос.

К сожалению, и, возможно, из-за того, что я создал XSD вручную с ограниченными знаниями, Intellisense опирается на xmlns атрибут, указывающий на пространство имен моего XSD-файла, присутствующее в пользовательском элементе конфигурации. Однако при запуске проекта я получаю нераспознанный атрибут "xmlns". Обратите внимание, что имена атрибутов чувствительны к регистру ошибок.

Я мог бы просто изменить мой XSD-файл, чтобы определить xmlns атрибут для этого элемента, однако мне интересно, если это просто исправление для более масштабной проблемы. Должен признаться, я не очень хорошо разбираюсь в пространствах имен XML, так что это может быть возможностью разъяснить мне несколько вещей.

Вот атрибуты для корня моего файла XSD xs:schema элемент:

<xs:schema id="awesomeConfig"
           targetNamespace="http://awesome.com/schemas"
           xmlns="http://awesome.com/schemas"
           elementFormDefault="qualified"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
    ...
</xs:schema>

И при создании элемента в файле Web.config Visual Studio 2008 автоматически добавляет:

<awesomeConfig xmlns="http://awesome.com/schemas"></awesomeConfig>

Итак, я неправильно понял значение xs:schema атрибуты вообще, или правильное решение так просто, как кажется?

1 ответ

Решение

Ваша схема должна будет опустить targetNamespace приписывать. По сути, это поместит содержимое схемы в пространство имен по умолчанию.

Это необходимо, потому что система конфигурации.NET никогда не позволяла элементам находиться в пространстве имен.

Другие вопросы по тегам