属性上的XML验证错误

时间:2013-07-02 19:55:06

标签: xml xsd xml-validation

我很困惑为什么我的XML架构不会通过Java的xml架构验证。我从link to the code获得了我的java验证码。它应该是标准的东西。我被告知从属性开始发现问题。它在lineNumber:8; columnNumber:48。

我的xml是:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

 <xs:element name ="Entries">
  <xs:complexType>
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="entry">
        <xs:attribute name="key" type="xs:string"/>
        <xs:attribute name="value" type="xs:string"/>
      </xs:element>
    </xs:sequence>
   </xs:complexType>
  </xs:element>

</xs:schema>

2 个答案:

答案 0 :(得分:1)

你缺少&#34;

第8行和第9行应

<xs:attribute name="key" type="xs:string"/>
<xs:attribute name="value" type="xs:string"/>

答案 1 :(得分:1)

第8行和第9行都缺少type属性的结束引号。这个固定的XML为我传递验证:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

 <xs:element name ="Entries">
  <xs:complexType>
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="entry">
        <xs:attribute name="key" type="xs:string"/>
        <xs:attribute name="value" type="xs:string"/>
      </xs:element>
    </xs:sequence>
   </xs:complexType>
  </xs:element>

</xs:schema>

编辑1

好的,进一步检查后发现xml只是格式错误。 <xs:attribute>代码不能是<xs:element>代码的子代。如果你试图在&#34;条目&#34;上定义两个属性。元素,您的架构定义需要如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="Entries">
    <xs:complexType>
      <xs:sequence minOccurs="0" maxOccurs="unbounded">
        <xs:element name="entry">
          <xs:complexType>
            <xs:simpleContent>
              <xs:extension base="xs:string">
                <xs:attribute name="key" type="xs:string"/>
                <xs:attribute name="value" type="xs:string"/>
              </xs:extension>
            </xs:simpleContent>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

</xs:schema>