2012-09-17 72 views
5

是否存在用於爲XML元素定義別名的XSD語言支持或技巧(例如,通過預處理器)?我想在我的模式中混淆所有元素,以創建一個更加神祕但帶有網絡帶寬效率的XML文檔版本的選項。在XSD架構中定義XML元素的別名

例如,我想定義名稱如IRQ成爲元件InterruptRequest

<xs:element name="InterruptRequest" minOccurs="0"> 
    <xs:complexType> 
     <xs:attribute name="level" type="xs:unsignedShort" use="required"/> 
    </xs:complexType> 
</xs:element> 

所以,以下兩個聲明等效於彼此

<!-- Human readable but bandwidth inefficient --> 
<InterruptRequest level="22" /> 

<!-- Cryptic, but comparatively bandwidth efficient --> 
<IRQ level="22" /> 
別名

回答

7

您不能將兩個元素名稱定義爲同義詞,但您可以通過替代組將其中一個定義爲另一個。它們仍會以不同於您的應用程序的形式出現,但驗證過程將允許其中一個在內容模型允許另一個使用的任何地方使用。

<element name="a">... 

<element name="b" substitutionGroup="a">... 
+0

substitutionGroup's很棒。但是,就我而言,這些元素出現在選擇元素中。所以我想我可以在選擇'列表'中重複這兩個名字。 – Olumide