我正在尝试创建以下类型的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>所以我的问题是,有没有可能做到这一点,如果不能,还有什么方法可以做到这一点。
发布于 2014-02-13 05:27:32
Saxon模式处理器有一个实验性扩展,允许您声明可以在XSD1.1断言中引用的参数。但是在标准语言中没有任何东西允许这样做。
一种可能适用于您的方法是将minOccurs定义为XML实体引用
minOccurs="&min;"然后在外部文件中定义实体的扩展,您可以在验证片段之前设置该文件。
https://stackoverflow.com/questions/21733341
复制相似问题