我正在尝试以任何顺序列出允许的元素列表。一些元素是必需的(最小值为 1,最大值为 1),一些是可选的,最多为 1,而一些是可选的,具有任意数量。这就是我所拥有的,并且 XSD 是有效的,但是当我去验证 XML 时,我试图实现的规则没有被强制执行。例如,id 不是必需的。
<xsd:complexType name="feedType">
<xsd:annotation>
<xsd:documentation>
The Atom feed construct is defined in section 4.1.1 of the format spec.
</xsd:documentation>
</xsd:annotation>
<xsd:choice minOccurs="3" maxOccurs="unbounded">
<xsd:element name="author" type="atom:personType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="category" type="atom:categoryType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="contributor" type="atom:personType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="generator" type="atom:generatorType" minOccurs="0" maxOccurs="1"/>
<xsd:element name="icon" type="atom:iconType" minOccurs="0" maxOccurs="1"/>
<xsd:element name="id" type="atom:idType" minOccurs="1" maxOccurs="1"/>
<xsd:element name="link" type="atom:linkType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="logo" type="atom:logoType" minOccurs="0" maxOccurs="1"/>
<xsd:element name="rights" type="atom:textType" minOccurs="0" maxOccurs="1"/>
<xsd:element name="subtitle" type="atom:textType" minOccurs="0" maxOccurs="1"/>
<xsd:element name="title" type="atom:textType" minOccurs="1" maxOccurs="1"/>
<xsd:element name="updated" type="atom:dateTimeType" minOccurs="1" maxOccurs="1"/>
<xsd:element name="entry" type="atom:entryType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
<xsd:attributeGroup ref="atom:commonAttributes"/>
</xsd:complexType>