2013-03-25 125 views
0

我是.xml/.xsd世界的新手,我必須說我在這裏很辛苦,即使我想要做的任務對我來說聽起來很簡單!XSD文件生成 - 結構問題

我目前正在從一個API檢索數據到Excel中,我想使用它的一個XML文件使用第一行有頭 - 元素的名稱和數據本身的以下行。

使用Excel提供的工具導入.xsd模式,然後能夠將數據導出到.xml文件中,所以我無法正確準備.xsd文件。

問題:我想在我的.xml文件中有幾個圖層,看起來很難(因爲我不明白的原因)。喜歡的東西:

<element1> 
     <subelement1> 
     <subelement2> 
     <subelement3> 
<element2> 
<element3> 

,這裏是我當前的.xsd文件:

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="Offers"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="offer" minOccurs="0" maxOccurs="unbounded"/> 
      </xs:sequence> 
     </xs:complexType> 
     <xs:element name="offer"> 
      <xs:complexType> 
       <xs:sequence> 
        <xs:element name="code" type="xs:string"/> 
        <xs:element name="bathroom_count" type="xs:string"/> 
        <xs:element name="bedroom_count" type="xs:string"/> 
        <xs:element name="average_rating" type="xs:string"/> 
        <xs:element name="title" type="xs:string"/> 
        <xs:element name="description" type="xs:string"/> 
        <xs:element name="content_language" type="xs:string"/> 
        <xs:element name="main_photo" maxOccurs="unbounded"/> 
         <xs:complexType> 
          <xs:sequence> 
           <xs:element name="lalala" type="xs:string"/> 
           <xs:element name="slip" type="xs:string"/> 
          </xs:sequence> 
         </xs:complexType> 
       </xs:sequence> 
      </xs:complexType> 
     </xs:element> 
    </xs:element> 
</xs:schema> 

我讀過噸的關於它的幫助,我問之前通常找到一個解決方案在論壇上,但我很困難。在我看來,這種結構是完美的,但它仍然不起作用。 :( 每次我嘗試導入它在Excel中它給了我一個錯誤,此佈局的錯誤

描述/模式/元素[1] [@名稱=「酒店」] /元素[1] [@name = 「報價」]元素「XS:元素」是不是在這方面允許

我不明白這一點,因爲我讀過的複雜類型需要在這兩者之間使用元素作爲。孩子的另一個元素

回答

0

如果你想引用元素,你必須把它們放在xs:schema之下,例如:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="Offers"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element ref="offer" minOccurs="0" maxOccurs="unbounded"/> 
     </xs:sequence> 
    </xs:complexType> 

</xs:element> 

<xs:element name="offer"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="code" type="xs:string"/> 
      <xs:element name="bathroom_count" type="xs:string"/> 
      <xs:element name="bedroom_count" type="xs:string"/> 
      <xs:element name="average_rating" type="xs:string"/> 
      <xs:element name="title" type="xs:string"/> 
      <xs:element name="description" type="xs:string"/> 
      <xs:element name="content_language" type="xs:string"/> 
      <xs:element name="main_photo" maxOccurs="unbounded"> 
       <xs:complexType> 
        <xs:sequence> 
         <xs:element name="lalala" type="xs:string"/> 
         <xs:element name="slip" type="xs:string"/> 
        </xs:sequence> 
       </xs:complexType> 
      </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 

如果你要嵌套一個複雜的類型,你需要它築巢。

+0

非常感謝您的回答! 我想它看起來像: ' \t \t \t ... \t \t \t \t 連接 \t \t \t \t \t ... \t \t \t ...... \t \t \t ' 正如你可以用''和''在一個新層看到的。 – fassn 2013-03-25 15:19:16

+0

看到我編輯的答案 – 2013-03-25 15:44:13