2013-06-19 154 views
0

我有簡單的模式是這樣參考XML架構擴展

> <?xml version="1.0"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 

<xs:element name="employee" type="fullpersoninfo"/> 

<xs:complexType name="personinfo"> 
    <xs:sequence> 
    <xs:element name="firstname" type="xs:string"/> 
    <xs:element name="lastname" type="xs:string"/> 
    </xs:sequence> 
</xs:complexType> 

<xs:complexType name="fullpersoninfo"> 
    <xs:complexContent> 
    <xs:extension base="personinfo"> 
     <xs:sequence> 
     <xs:element name="address" type="xs:string"/> 
     <xs:element name="city" type="xs:string"/> 
     <xs:element name="country" type="xs:string"/> 
     </xs:sequence> 
    </xs:extension> 
    </xs:complexContent> 
</xs:complexType> 

在不同的模式我想引用的personinfo:國家,我該如何參考呢?

<xs:element name="country" type="how do i refer this" minOccurs ="0" maxOccurs ="1">
</xs:element>

回答

1

您的簡單模式的作者一直在努力使人們無法引用來自其他模式文檔的「國家」元素,通過使本地的fullpersoninfo型,而不是使其成爲頂級元素。如果模式無法更改,那麼您就會陷入困境。

如果可以更改模式以重複使用要重用的構造,那麼您將需要包含或導入相關的模式文檔,然後您將使用它們的限定名稱引用它們。但是看起來您是否有點不確定是否要參考country元素或country元素的類型;如果你想產生一個連貫的模式,你需要做出決定。

+0

這只是一個例子。真實情況是不同的。我有兩個不同的XSD中的PersonInfo和fullpersoninfo,我無法更改它們。在這種情況下,我想引用country元素。 –

+0

如果您的示例提供了技術上準確的情況說明,那麼您的問題已得到解答。如果沒有,那麼你提出了錯誤的問題,並且你問的問題已經得到解答。無論哪種方式,祝你好運。 –