2013-04-26 62 views
-1

我将xml和xsd放在了空闲位置。 http://xixishuile1.kilu.de/ 并使用http://www.freeformatter.com/xml-validator-xsd.html来验证xml,它给我的回应CATALOG失败。 谁可以帮助我。XML XSD有效失败

+0

请提供更多的细节......这是很难看到什么是你实际的问题! – Carsten 2013-04-26 07:43:07

+0

我刚开始知道XML和XSD。 – user2322723 2013-04-26 09:30:27

+0

我刚开始知道XML和XSD。我知道xml包含内容,并且xsd包含结构。我的例子是流行的互联网例子。 xml描述CD存储。 是根元素。它包含几个相同的结构化子元素“”。互联网给我的例子xsd描述如何定义,但不告诉我如何描述 user2322723 2013-04-26 09:37:59

回答

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有一个目标名称,并且将生成一个没有;要解决这个问题,你要么删除您的XSD的targetNamespace,或添加默认的命名空间到你的XML根像这样:

    <目录的xmlns =“http://www.xixishuile1.kilu.de/”>

  • CATALOG元素现在为您定义。它类似于CD(它很复杂,内容模型排序);由于您需要多个CD元素,因此有一个maxOccurs属性(粒子出现属性),显示unbounded

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

而且,看看How To Ask上问一个很好的问题,帮助...

+0

谢谢你给我这么明确有用的答案。我可以清楚地知道如何定义CATALOG,但我仍然无法理解targetNamespace关键字。有没有有用的图片或描述来解释它? – user2322723 2013-04-27 01:48:33

+0

您应该阅读关于XML命名空间......模式targetNamespace将内容放置在特定的XML命名空间中。 – 2013-04-27 14:38:49