2012-09-17 20 views
5

Bir XML öğesinin takma adını tanımlamak için XSD dil desteği veya püf noktaları (örn. Önişlemci aracılığıyla) var mı? XML belgelerimizin daha şifreli fakat ağ bant genişliği etkin bir sürümü için bir seçenek oluşturmak amacıyla şemamdaki tüm öğeleri taklit etmek isterim.XSD Şeması'nda XML öğesi için bir takma ad tanımlanması

Örneğin, vb elemanı InterruptRequest aşağıdaki iki bildirim birbirine

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

<!-- Cryptic, but comparatively bandwidth efficient --> 
<IRQ level="22" /> 
eşdeğerdir Böylece

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

için bir takma ad böyle IRQ gibi bir ad tanımlamak istiyorum

cevap

7

Eş anlamlı olması için iki öğe ismini tanımlayamazsınız, ancak bir ikame grubu aracılığıyla diğeri için ikame edilebilir olarak tanımlayabilirsiniz. Uygulamanıza hala farklı görüneceklerdir, ancak doğrulama süreci, içerik modelinin diğerine izin verdiği her yerde bir tanesinin kullanılmasına izin verecektir.

<element name="a">... 

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

substitutionGroup's are great. Ancak, benim durumumda, elemanlar seçim öğesinde görünür. Yani her iki ismi de 'list' seçiminde tekrarlayabilirim. – Olumide

İlgili konular