XML Schema,XML错误

时间:2013-10-14 14:21:58

标签: xml validation

您好我有XML-XML Schema的问题。 XML也是格式良好的XML Schema。但是当我尝试使用XML Schema验证XML时,出现了一些错误。我做得不好?我附加了XML和XML模式。谢谢你的帮助。

我正在使用:http://www.utilities-online.info/xsdvalidation/ 出现错误:PIC

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3schools.com">
  <xs:element name="library">
   <xs:complexType>
    <xs:sequence>
     <xs:element name="book"/>
     <xs:element name="book_id" type="xs:integer"/>
     <xs:element name="title" type="xs:string"/>
     <xs:element name="author" type="xs:string"/>
     <xs:element name="count" type="xs:integer"/>
     <xs:element name="genre" type="xs:string"/>
    </xs:sequence>
   </xs:complexType>
  </xs:element>
</xs:schema>

<?xml version="1.0"?> 
<library>
  <book>
    <book_id>5</book_id>
    <title>Sokak</title>
    <author>Tony</author>
    <count>6</count>
    <genre>epic</genre>
  </book>
  <book>
    <book_id>13</book_id>
    <title>Kucharka</title>
    <author>Fiona</author>
    <count>8</count>
    <genre>Hobby</genre>
  </book>
</library>

1 个答案:

答案 0 :(得分:0)

首先,架构定义了文档中未使用的targetNamespace,即http://www.w3schools.com。尝试添加更改文档,如:

<library xmlns="http://www.w3schools.com">
    <!-- ... -->
</library>

其次,架构定义了一系列元素,而您的文档包含嵌套结构。如果您想要嵌套结构,请调整模式,如下例所示:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.w3schools.com"
    xmlns:w3s="http://www.w3schools.com"
    elementFormDefault="qualified">

<xs:complexType name="bookType">
    <xs:sequence>
        <xs:element name="book_id" type="xs:integer"/>
        <xs:element name="title" type="xs:string"/>
        <xs:element name="author" type="xs:string"/>
        <xs:element name="count" type="xs:integer"/>
        <xs:element name="genre" type="xs:string"/>
    </xs:sequence>
</xs:complexType>

<xs:complexType name="libraryType">
    <xs:sequence maxOccurs="unbounded">
        <xs:element name="book" type="w3s:bookType" />
    </xs:sequence>
</xs:complexType>

<xs:element name="library" type="w3s:libraryType" />

</xs:schema>