2012-03-23 62 views
0

給定不同的定義相同元素的模式定義,可以導入/包含這兩個定義並獨立於第三個模式定義中引用它們嗎?處理導入/包含XML模式時的元素衝突

例如,給定:

<schema xmlns="http://www.w3.org/2001/XMLSchema" 
    targetNamespace="urn:example:namespace"> 
    <element name="message" type="boolean"/> 
</schema> 

和:

<schema xmlns="http://www.w3.org/2001/XMLSchema" 
    targetNamespace="urn:example:namespace"> 
    <element name="message" type="date"/> 
</schema> 

可以構造如下:

<schema xmlns="http://www.w3.org/2001/XMLSchema" 
    targetNamespace="urn:example:namespace"> 
    <complexType name="booleanMessageType"> 
     <sequence> 
      <!-- reference to first definition here --> 
     </sequence> 
    </complexType> 
    <complexType name="dateMessageType"> 
     <sequence> 
      <!-- reference to second definition here --> 
     </sequence> 
    </complexType> 
</schema> 

回答

1

答案是否定的,你不能有一個模式集將包含相同全局元素的兩個定義。

如果標籤名稱很重要,那麼您可以定義兩種類型,例如, messageBoolean和messageDate,然後使用具有相同標記名稱(消息)和不同類型的本地元素定義。