我有以下两个(不可更改的)带有相同命名空间的XML文件,我需要为其创建一个XSD:
pseudo-xml示例#1:
<Project>
<ProjectInformation/>
<HistoryEntry/>
<UserFiles/>
</Project>
pseudo-xml示例#2:
<Project>
<Installations/>
</Project>
如果没有HistoryEntry
和UserFiles
元素,我会将xsd:choice
用于ProjectInformation
和Installations
。但是如何将HistoryEntry
和UserFiles
元素带入游戏?!
是否有允许这样的标准XSD机制?
答案 0 :(得分:0)
无序被高估了。只需使用xs:sequence
而不是xs:any
来避免XSD 1.0中的唯一粒子归因违规行为:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Project">
<xs:complexType>
<xs:choice>
<xs:sequence>
<xs:element name="ProjectInformation"/>
<xs:element name="HistoryEntry"/>
<xs:element name="UserFiles"/>
</xs:sequence>
<xs:element name="Installations"/>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>