所以我想为我的XML文件编写一个XML模式。我现在遇到的问题是我有一个元素,但我想在其中包含多个元素,但没有声明该数量。这样我就可以使用程序添加或删除元素,以保持文件动态。
我对xml和xml架构还很陌生,所以我现在不从哪里开始。 这就是我到目前为止所获得的-它一次只能让我在盘子上用餐,但是如上所述,我想要多个没有特定数量的食物。
Schema:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="menu">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="starter">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="dish" type="dish"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
...
</xsd:schema>
XML:
<menu>
<starter>
<dish>
<name>
Salad
</name>
<price>
4.00
</price>
</dish>
<dish>
<name>
Bread
</name>
<price>
2.50
</price>
</dish>
</starter>
最后,我的目标是能够根据需要添加和删除尽可能多的盘子标签。但是验证者说,在第一个孩子之后就没有孩子了。
谢谢!
答案 0 :(得分:0)
我找到了答案!
如果您使用选择标记并将maxOccurs属性设置为unbounded,则可能会有无限的标记。
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="menu">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="starter">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="dish" type="dish"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
...
</xsd:schema>