XML模式检查错误

时间:2009-04-16 06:51:14

标签: xml schema

我使用以下架构检查以下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>
提前谢谢, 乔治

2 个答案:

答案 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>

试试这个肯定会起作用