0

我有一个blog.xml和一个Blog.xsd来验证 XML 文件。我正在使用http://www.xmlvalidation.com/?L=0来验证这两个文件,但出现错误。

你能告诉我有什么问题吗?

错误: 在此处输入图像描述

博客.xml:

http://pastebin.com/He3xCxxC(抱歉不得不将它发布到pastebin(由于SO的字数限制)

博客.xsd:

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="blog">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="post" maxOccurs="unbounded" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element type="xs:string" name="ptitle"/>
              <xs:element type="xs:string" name="psubtitle"/>
              <xs:element type="xs:anyURI" name="image"/>
              <xs:element type="xs:string" name="author"/>
              <xs:element type="xs:string" name="date"/>
              <xs:element type="xs:string" name="par"/>
              <xs:element type="xs:anyURI" name="source"/>
              <xs:element type="xs:string" name="comments"/>
            </xs:sequence>
            <xs:attribute type="xs:byte" name="id" use="optional"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
4

1 回答 1

1

您尚未设置模式的targetNamespace(即“ http://www.w3schools.com ”)。

<xs:schema attributeFormDefault="unqualified" targetNamespace="http://www.w3schools.com" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">

并且schemalocation必须指定命名空间和架构。这就是为什么你必须有偶数个元素schemaLocation

<a:blog xmlns:a="http://www.w3schools.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3schools.com ./Blog.xsd">
于 2013-01-29T15:18:01.760 回答