我使用以下架构检查以下XML文件。我发现当People元素中有多个Information元素时,模式检查将失败。为什么以及如何解决它(我想让People元素能够嵌套多个信息项)?
XML架构文件:
<xs:element name="People">
<xs:complexType>
<xs:sequence>
<xs:element name="Information">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
</xs:sequence>
<xs:attribute name="Id" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
XML文件(架构检查将失败):
<People>
<Information Id="1">
<Name>John</Name>
</Information>
<Information Id="2">
<Name>Mike</Name>
</Information>
</People>
XML文件(架构检查会成功):
<People>
<Information Id="1">
<Name>John</Name>
</Information>
</People>
提前谢谢,
乔治
答案 0 :(得分:6)
如果不指定minOccurs和maxOccurs,则默认值为1.
<xs:element name="Information" minOccurs = "1" maxOccurs = "unbounded">
答案 1 :(得分:4)
<xs:element name="People">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" name="Information">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
</xs:sequence>
<xs:attribute name="Id" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
试试这个肯定会起作用