Xml 将xsd:choice与xsd:any或xsd:sequence混合使用?

Xml 将xsd:choice与xsd:any或xsd:sequence混合使用?,xml,xsd,xsd-validation,xml-validation,Xml,Xsd,Xsd Validation,Xml Validation,我有以下两个(不可更改)XML文件,它们的名称空间相同,我需要为它们创建XSD: 伪xml示例#1: 伪xml示例#2: 如果没有HistoryEntry和UserFiles元素,我将使用xsd:choice进行项目信息和安装。但是如何将HistoryEntry和UserFiles元素引入游戏中呢 是否有标准的XSD机制允许这样做?无序被高估了。只需使用xs:sequence而不是xs:any,即可避免XSD 1.0中出现独特的粒子属性冲突: <xs:schema xmlns:xs

我有以下两个(不可更改)XML文件,它们的名称空间相同,我需要为它们创建XSD:

伪xml示例#1:


伪xml示例#2:


如果没有
HistoryEntry
UserFiles
元素,我将使用
xsd:choice
进行
项目信息
安装
。但是如何将
HistoryEntry
UserFiles
元素引入游戏中呢


是否有标准的XSD机制允许这样做?

无序被高估了。只需使用
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>

无序被高估。只需使用
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>


谢谢,我不知道我可以在选择中混合序列和元素。。现在适合我了。谢谢,我不知道我可以在选择中混合序列和元素。。现在对我有用。
<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>