格式不正确:元素类型xs:元素的结束标记必须以'>'结尾。分隔符

时间:2014-12-26 00:23:58

标签: xml xsd xsd-validation

我已创建XML文件和关联的XSD架构,但在线验证程序表示它仍然是我的XSD架构中的错误。

它显示的确切错误是:

Not well-formed: the end-tag for element type 
xs:element" must end with a '>' delimiter.

这是XSD:

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

<xs:element name="List_Of_Skills" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>

    <xs:element name="Skill" maxOccurs="unbounded">
    <xs:complexType>
    <xs:sequence>

    <xs:element name="ID" type="xs:integer"/>
    <xs:element name="Name" type="xs:string"/>
    <xs:element name="Description" type="xs:string"/>

    </xs:sequence>
    </xs:complexType>
    </xs:element name="Skill">

 </xs:sequence>
</xs:complexType>
</xs:element name="List_Of_Skills">

</xs:schema xmlns:xs="http://www.w3schools.org/2001/XMLSchema/">

顺便说一下,我的XML代码格式正确,所以我不明白为什么我的XSD代码无效,即使我认为我理解它是如何工作的。

1 个答案:

答案 0 :(得分:2)

您的XSD本身格式不正确。以下是修复XSD所需要做的事情:

  1. 修复结束标记 - 不要在结束标记上重复属性。
  2. 修复xs名称空间前缀声明;它应该是 xmlns:xs="http://www.w3.org/2001/XMLSchema"
  3. 从根级元素声明中删除maxOccurs="unbounded"
  4. 以下是适用于您的XSD的更正:

    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="List_Of_Skills">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Skill" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="ID" type="xs:integer"/>
                  <xs:element name="Name" type="xs:string"/>
                  <xs:element name="Description" type="xs:string"/>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>