我正在研究具有该规范的 xsd 规范(对于一个简单的游戏;)):
我有一个players
带有属性的 Elem number
,它表示玩家的数量(一个 num 之间1 and 4
)。作为子元素,它包含零到四个元素的screenname
元素。这些元素有玩家网名文本内容和属性,表示游戏结束的编号(介于 之间的数字1 and 4
)。
我的大问题是 xsd 中一个类型的屏幕名称和 Intervall?那么该怎么做呢?
提前问候和谢谢
这就是我认为您正在描述的内容:
<players number="2">
<screenname endofgame="3">player screenname text content</screenname>
</players>
这将是一个自动生成的 XSD:
<?xml version="1.0" encoding="utf-8"?>
<!--W3C Schema generated by QTAssistant/W3C Schema Refactoring Module (http://www.paschidev.com)-->
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="players">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="screenname">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="endofgame" type="xsd:unsignedByte" use="required" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="number" type="xsd:unsignedByte" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
如前所述,这将是具有附加约束的:a num between 1 and 4
和 zero to four screenname elements
. 通过查看之前/之后,您应该了解哪个是哪个。
<?xml version="1.0" encoding="utf-8"?>
<!--W3C Schema generated by QTAssistant/W3C Schema Refactoring Module (http://www.paschidev.com)-->
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="players">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="screenname" minOccurs="0" maxOccurs="4">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="endofgame" type="Int1to4" use="required" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="number" type="Int1to4" use="required" />
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="Int1to4">
<xsd:restriction base="xsd:int">
<xsd:minInclusive value="1"/>
<xsd:maxInclusive value="4"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
要指定元素的重复次数,您需要使用 minOccurs 和 maxOccurs 属性。