我正在尝试创建以下类型的XSD
<xs:element name="Command">
<xs:complexType>
<xs:attribute name="NumberofArgument" type="xs:integer" use="required"/>
<xs:sequence>
<xs:element name="Argument" minOccurs=variable>
<xs:complexType>
<xs:attribute name="argumentName" type="xs:string"/>
<xs:attribute name="argumentType" type="argumentType"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
因此,无论我创建什么XML,我将首先定义属性“NumberOfArguments”,然后我将用于验证给定命令的实际参数数量。
<Command CommandName="String" number="1">
<Argument argumentName="String" argumentType="defined"/>
</Command>
所以我的问题是,是否有可能实现这一点,如果不是其他方式这样做。
答案 0 :(得分:1)
Saxon架构处理器有一个实验扩展,允许您声明可在XSD 1.1断言中引用的参数。但是标准语言中没有任何内容可以允许它。
可能适合您的方法是将minOccurs定义为XML实体引用
minOccurs="&min;"
然后在外部文件中定义实体的扩展,您可以在验证剧集之前设置该文件。