Jim*_*eth 92 xml intellisense xsd visual-studio xsd-validation
我知道我以前做过这个,但今天不行,也找不到解释怎么做的地方.这可能是我的睡眠不足,但我怀疑是小鬼.
我有一个XML文档和一个充满XSD的目录来定义它.如何设置Visual IDE以通知我验证失败,然后在给定的上下文中提供有效标签和属性的智能感知列表?
我尝试过的:
Visual Studio仍然没有放弃任何有用的调试或编辑信息.我试过2010年和2008年(我在2008年之前就已经做过了)
更新:我有另一个开发人员尝试这个,它也失败了.他知道他已经使用其他XML文档完成了它并使其工作.然后我下载了Oxygen XML编辑器,它在相同的XML和XSD文件上运行良好,所以文件看起来很好(或者Oxygen更宽容/更灵活......)
mar*_*c_s 135
吉姆
您需要将Visual Studio中的XML文档与您拥有的XSD文件相关联 - 您应该在XML文档的"属性"窗口中看到类似的内容:
在XML模式集编辑器中(单击"属性"窗口中"模式"文本框中的(...)省略号时打开),您需要确保存在模式.此外,请确保Use
启用该架构的列 - 如果没有,请单击它 - 您将获得一个选项下拉列表,选择Use
带有绿色复选标记的列表:
确保Visual Studio的错误列表窗口可见(菜单视图>错误列表).这将显示XML和XSD架构定义之间的所有不一致.
完成所有这些后,Visual Studio XML编辑器应使用蓝色波浪线在编辑器中突出显示XML问题:
Ros*_*Nab 33
您无需在Visual Studio中手动关联文件 - 如果您同时打开它们并且正确定义了命名空间,它将自动将XML文件与XSD文件匹配.
要定义命名空间:
在XML文件的根元素中:
<Data xmlns='http://yourdomain.com/yourschema.xsd'>
...
</Data>
Run Code Online (Sandbox Code Playgroud)
在XSD文件的架构元素中:
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://yourdomain.com/yourschema.xsd"
xmlns:this="http://yourdomain.com/yourschema.xsd"
elementFormDefault="qualified">
...
</xs:schema>
Run Code Online (Sandbox Code Playgroud)
有关targetNamespace时在架构中使用类型的说明
因为您targetNamespace
在模式中指定了a ,所以对模式中定义的类型的任何引用都需要以命名空间为前缀(这就是我们xmlns:this
在上面的<xs:schema />
元素中添加了属性的原因).
<!-- Define the type as normal -->
<xs:complexType name="Row">
<xs:sequence>
<xs:element name="Name" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="Value" type="xs:float" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<!-- Use the type (note the "this:" prefix) -->
<xs:element name="Row" type="this:Row" minOccurs="0" maxOccurs="unbounded" />
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
90152 次 |
最近记录: |