配置部分问题,我刚才已经推出自定义配置部分,创建了一个附带的模式文档智能感知并把它添加到Web.config的架构特性为每Michael Stum's answer另一个类似的问题。智能感知与自定义命名空间
不幸的是,可能是由于我用有限的知识手动创建了XSD,因此Intellisense依赖于指向我的XSD文件的名称空间的xmlns
属性出现在自定义配置元素中。但是,在运行该项目时,我得到一个无法识别的属性'xmlns'。请注意,属性名称区分大小写错误。
我可能只是修改我的XSD文件来定义该元素的xmlns
属性,但我想知道这是否只是一个更大的问题的bandaid修复。我必须承认,我对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
属性的含义,或者是正确的解决方案,看起来很简单?
我是否正确地说这样做的后果是我必须避免命名冲突?如果是这样,我将如何实现添加/删除/清除的标准收集元素? – 2010-06-07 02:44:22
如果使用相同的语法,那些标准元素不是命名冲突。此外,架构将相对于父元素。如果您将模式的根作为您的配置节名称,那么只要您的模式严格等级化,就不会有名称冲突。制作父代的add/remove/clear元素子元素,而不是稍后引用的全局元素。 – 2010-06-07 02:47:15
非常感谢那些信息。 – 2010-06-07 04:45:54