我是为 xml 模式定义自己的 xsd 的初学者。我只是想知道是否有办法使用属性值指定最小值和最大值,而不是每次都写入数字。这只是我在xsd中可能的想法的一个伪例子:
<xs:complexType name="postNumberRang">
<xs:simpleContent>
<xs:extension base="rangePostNr">
<xs:attribute name="minimum" type="xs:nonNegativeInteger"/>
<xs:attribute name="maximum" type="xs:nonNegativeInteger" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="rangePostNr">
<xs:restriction base="xs:integer">
<xs:minInclusive value="minimum"/>
<xs:maxInclusive value="maximum"/>
</xs:restriction>
</xs:simpleType>
目前还不完全清楚你想做什么。 (通过发明你希望不言自明的语法来表达你的要求不推荐的技术。
我怀疑您正在尝试根据同一元素上其他属性的值来定义对一个属性的约束。这称为"共现约束",在 XSD 1.0 中是不可能的。可以在 XSD 1.1 中使用断言或使用条件类型赋值来完成此操作。因此,您需要确定您的项目是否能够利用 XSD 1.1。