XML XSD有效失败

时间:2013-04-26 07:25:22

标签: xml xsd

我把xml和xsd放在免费位置。 http://xixishuile1.kilu.de/ 并使用http://www.freeformatter.com/xml-validator-xsd.html来验证xml,它给我响应CATALOG失败。 谁可以帮助我。

1 个答案:

答案 0 :(得分:1)

首先,欢迎来到SO。由于您正在学习XML / XSD,我建议您下载并使用一些专门的XML / XSD编辑器。我所知道的所有内容都提供免费评估,因此应该很容易上手。

这样的工具可以帮助您根据XML生成XSD,这可以让您开始了解解决问题可能需要的内容:将您发布的XSD与您拥有的XSD进行比较是一个很好的学习方法,因为它告诉你你错过了什么,最终缩小你的搜索范围:首先要学习什么。

所以这是我用XML生成的XSD:

<?xml version="1.0" encoding="utf-8"?>
<!--XML Schema generated by QTAssistant/XML Schema Refactoring (XSR) Module (http://www.paschidev.com)-->
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="CATALOG">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element maxOccurs="unbounded" name="CD">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="TITLE" type="xsd:string" />
              <xsd:element name="ARTIST" type="xsd:string" />
              <xsd:element name="COUNTRY" type="xsd:string" />
              <xsd:element name="COMPANY" type="xsd:string" />
              <xsd:element name="PRICE" type="xsd:decimal" />
              <xsd:element name="YEAR" type="xsd:unsignedShort" />
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

一目了然:

  • 您的XSD有一个targetNamespace,而生成的那个没有;要修复它,您要么删除XSD中的targetNamespace,要么将默认命名空间添加到根XML中,如下所示:

    &lt; CATALOG xmlns =“http://www.xixishuile1.kilu.de/”&gt;

  • 现在为您定义了CATALOG元素。它类似于CD(它很复杂,内容模型是有序的);因为你想要多个CD元素,所以有一个显示unbounded的maxOccurs属性(粒子出现属性)。

因此,上面告诉您,到目前为止,您需要了解如何定位XSD中的命名空间,以及如何定义复杂的内容模型。

另外,请查看How To Ask寻求一个好问题的帮助......