是否可以将以下 XML 文档类表示为 XML 模式:
- 根元素“root”恰好包含一个元素“消息”作为第一个子元素
- 随后,可能有任意进一步的子元素,但没有进一步的“消息”元素
示例实例:
<root>
<message type="S">Order saved</message>
<order number="4711"/>
</root>
<root>
<message type="S">3 countries selected</message>
<country value="ES">Spain</country>
<country value="FR">France</country>
<country value="IT">Italy</country>
</root>
我的想法是使用一个xs:element
和的序列xs:any
,如下所示:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="message" maxOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="type"></xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:any processContents="skip" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
但是随后,包含两个“消息”子级的文档将通过(因为第二个“消息”元素将符合 xs:any)。