是否有XSD语言支持或技巧(例如通过预处理器)来定义XML元素的别名?我想为架构中的所有元素设置别名,以便为我们的 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" />
不能将两个元素名称定义为同义词,但可以通过替换组将一个元素名称定义为另一个元素的可替换名称。它们对应用程序的显示方式仍会有所不同,但验证过程将允许其中一个在内容模型允许的任何地方使用。
<element name="a">...
<element name="b" substitutionGroup="a">...