7

是否有用于为 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" />
4

1 回答 1

8

您不能将两个元素名称定义为同义词,但可以通过替换组将一个元素名称定义为可替换另一个元素名称。它们在您的应用程序中看起来仍然不同,但验证过程将允许其中一个在内容模型允许另一个的任何地方使用。

<element name="a">...

<element name="b" substitutionGroup="a">...
于 2012-09-17T14:26:28.023 回答