我有一个 blog.xml 和一个 Blog.xsd 来验证XML文件。我正在使用http://www.xmlvalidation.com/?L=0来验证这两个文件,但我收到了错误。
你能告诉我什么是错的吗?
错误:
blog.xml:
http://pastebin.com/He3xCxxC(抱歉不得不将其发布到pastebin(由于SO的字数限制)
Blog.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>
答案 0 :(得分:0)
您尚未设置架构的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">