2014-09-26 68 views
0

可能在XML模式中有一個「鏈」擴展嗎?也就是說,是否可以定義一個擴展B的數據類型C來擴展A?我有一個模式,看起來像這樣:XML Schema中的鏈接擴展

<complexType name="ServiceRequest"> 
     <sequence> 
     <element name="validate" type="boolean" minOccurs="0" default="false" /> 
     </sequence> 
    </complexType> 

    <complexType name="DataModificationRequest"> 
     <complexContent> 
     <extension base="efms:ServiceRequest"> 
      <sequence> 
       <element name="user-id" type="efms:UserID" /> 
      </sequence> 
     </extension> 
     </complexContent> 
    </complexType> 

    <complexType name="CreateTrackRequest"> 
     <complexContent> 
      <extension base="efms:DataModificationRequest"> 
       <sequence> 
        <element name="segment-number" type="efms:SegmentNumber" /> 
        <element name="segment-subnumber" type="efms:SegmentSubnumber" /> 
       </sequence> 
      </extension> 
     </complexContent> 
    </complexType> 

當我看到在氧氣XML的設計視圖這些項目中,DataModificationRequest正確地顯示從ServiceRequest驗證元素。但CreateTrackRequest沒有顯示我期望它從其父母(DataModificationRequest)和祖父母(ServiceRequest)繼承的任何元素。

OxygenXML表示模式驗證正確,但孫子不是按照我的意圖繼承元素。我做錯了什麼,還是我不允許有這樣的擴展鏈?

回答

0

我想我解開了這個謎。爲了論壇的目的,我簡化了我原來的帖子。但實際上,第三種數據類型(CreateTrackRequest)位於單獨的模式文件中。儘管我們使用的是Oxygen XML編輯器的14.0版,但如果父/祖父母位於不同的文件中,Oxygen顯然不夠聰明,無法在設計視圖中顯示父/祖父母元素。

我能夠通過讓氧氣生成帶有所有可選字段的示例XML實例文檔來證明這一點。該實例正確地包含父級&祖父母數據類型的元素。

(握緊拳頭& slinks away ...)