如果我有这些规则:
PIZZA-->doughSAUCECHEESE
SAUCE-->marinara | bbq | pesto
CHEESE-->mozarella |
比萨字符串由文字“面团”和 3 种酱汁中的 1 种组成。它可能在那里结束(没有奶酪)或以文字“mozarella”结束。这是我的 xml 架构:
<xs:element name="pizza">
<xs:complexType>
<xs:element name="doughLiteral" type="xs:string" fixed="dough"/>
<xs:element name="sauce">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="marinara"/>
<xs:enumeration value="bbq"/>
<xs:enumeration value="pesto"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="cheese">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="mozarella"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value=""/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs: complexType>
</xs: element>
我不确定我是否正确指定了空字符串。另外,我读到属性默认情况下是可选的,元素默认情况下是必需的,尽管正确,即上面的模式说明必须有 1 个酱汁,对吗?谢谢你。