2012-09-17 4 views
5

Esiste il supporto per la lingua XSD o trucchi (ad esempio tramite il preprocessore) per la definizione di un alias per un elemento XML? Vorrei aggiungere tutti gli elementi del mio schema al fine di creare un'opzione per una versione più criptica ma efficiente della larghezza di banda della rete dei nostri documenti XML.Definizione di un alias per l'elemento XML in XSD Schema

Ad esempio, vorrei definire un nome come IRQ come alias per l'elemento InterruptRequest ecc

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

Affinché i seguenti due dichiarazioni sono equivalenti tra loro

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

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

risposta

7

Non è possibile definire due nomi di elementi come sinonimi, ma è possibile definirne uno come sostitutivo dell'altro per mezzo di un gruppo di sostituzione. Appariranno comunque in modo diverso alla tua applicazione, ma il processo di convalida consentirà l'utilizzo di uno di essi ovunque il modello di contenuto consenta l'altro.

<element name="a">... 

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

sostituzioneGruppi sono grandi. Tuttavia, nel mio caso gli elementi appaiono in un elemento di scelta. Quindi immagino di poter ripetere entrambi i nomi nella 'lista' di scelta. – Olumide