2013-10-31 73 views
0

我指的元素書,並試​​圖將此轉換:轉換XML的架構參考

<xsd:element name="book" type="bookType"/> 
<xsd:complexType name="bookType"> 
    <xsd:sequence> 
      ... 
    </xsd:sequence> 
</xsd:complexType> 

要這樣:

<xsd:element name="book"> 
    <xsd:complexType name="bookType"> 
     <xsd:sequence> 
       ... 
     </xsd:sequence> 
    </xsd:complexType> 
</xsd:element> 

第一解析個XML,但第二個停止與驗證錯誤:「無法解析模式文件」。

任何想法? XML語法檢查器(記事本++插件)說,沒有檢測到錯誤。

回答

1

「內聯」一個類型,即將其嵌套在另一個模式組件中,將禁止使用其屬性name。當類型本身是xsd:schema元素下的第一級時,複合類型的名稱屬性被保留。

一個「正常」工具應該告訴你這樣的「The'name'屬性不能出現」,然後告訴你行和列的位置在哪裏找到有問題的文本。有很多好的工具可以提供免費評估;下載每一個,一個接一個,它仍然會讓你足夠快地瞭解XSD,最重要的是,增加你的曝光度。只是不要在這裏問,在這麼好的工具可能是:)...

+0

所以這是一個規則的「事情」,我們必須遵循它......沒有已知的繞過我猜? – user2692669

+1

@ user2692669,不,它是語言的一部分。它被命名(或「全局」,因此可引用)或「匿名」(本地,僅限於包含組件)。雖然有人問我爲什麼不允許命名,就像編程變量作用於語句塊一樣,我認爲XSD已經很複雜了......爲什麼要這麼麻煩呢? –

+0

XSD ..架構......它是一個完全不同的世界!謝謝架構師! – user2692669