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 никогда не позволяла элементам находиться в пространстве имен.