2013-04-26 44 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