Tom*_*Tom 3 xml xsd xml-validation
我在我的XSD文件中定义了几个元素,我在文档中稍后将其用作参考.我确实希望这些"引用"元素中的任何一个构成有效的xml文件.
比如我有
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="Section">
<xs:complexType>
<xs:sequence>
<xs:element ref="Section" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="code"/>
<xs:attribute name="url"/>
<xs:attribute name="isLegacy"/>
<xs:attribute name="name"/>
<xs:attribute name="helpFileName"/>
</xs:complexType>
</xs:element>
<xs:element name="Sections">
<xs:complexType>
<xs:sequence>
<xs:element ref="Section" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)
我不希望以下xml验证(如果这是文件中的唯一行)
<Section code="" url="" isLegacy="" name="" helpFileName="" />
Run Code Online (Sandbox Code Playgroud)
从全局删除"节"节点阻止我引用它以进行递归
如果您需要,请不要将这些元素声明为全局,而是将您的架构设计基于复杂类型,并仅将您想要的元素声明为根全局.没有人强迫你把每个元素都变得全球化.
例如,您的样本可以重构如下:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:complexType name="Section">
<xs:sequence>
<xs:element name="Section" type="Section" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="code"/>
<xs:attribute name="url"/>
<xs:attribute name="isLegacy"/>
<xs:attribute name="name"/>
<xs:attribute name="helpFileName"/>
</xs:complexType>
<xs:element name="Sections">
<xs:complexType>
<xs:sequence>
<xs:element name="Section" type="Section" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1202 次 |
| 最近记录: |