带有名称空间的自定义配置部分问题的Intellisense

Qui*_*ith 5 .net intellisense configurationsection

我刚刚滚动了一个自定义配置部分,为Intellisense创建了一个随附的架构文档,并根据Michael Stum对另一个类似问题的回答将其添加到Web.config的Schemas属性中。

不幸的是,可能是由于我是用有限的知识手工创建XSD的,所以Intellisense依赖于一个xmlns属性,该属性指向自定义config元素中存在的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>
Run Code Online (Sandbox Code Playgroud)

在Web.config文件中创建元素时,Visual Studio 2008会自动追加:

<awesomeConfig xmlns="http://awesome.com/schemas"></awesomeConfig>
Run Code Online (Sandbox Code Playgroud)

因此,我是否完全误解了xs:schema属性的含义,还是正确的解决方案似乎看起来那么简单?

Joh*_*ers 5

您的架构将需要省略该targetNamespace属性。实际上,这会将架构内容放入默认名称空间。

这是必需的,因为.NET配置系统从未允许元素位于名称空间中。