Intellisense用于命名空间的自定义配置节问题

时间:2010-06-07 00:03:04

标签: .net intellisense configurationsection

我刚刚推出了一个自定义配置部分,为Intellisense创建了一个附带的模式文档,并根据Michael Stum's answer将其添加到Web.config的Schemas属性中,并添加到另一个类似的问题中。

不幸的是,可能由于我在知识有限的情况下手工创建XSD,Intellisense依赖于指向我的XSD文件命名空间的xmlns属性存在于自定义配置元素中。但是,在运行项目时,我得到一个无法识别的属性'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 个答案:

答案 0 :(得分:4)

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

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