我刚刚推出了一个自定义配置部分,为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
属性的含义,或者是看起来那么简单的正确解决方案?
答案 0 :(得分:4)
您的架构需要省略targetNamespace
属性。实际上,这会将架构内容放入默认命名空间。
这是必要的,因为.NET配置系统从未允许元素位于命名空间中。