在XSD中,是否可以通过变量定义maxOccurs的值?

时间:2016-07-19 15:23:50

标签: xml xsd

例如,我有以下XSD行:

<xs:element name="child_name" type="xs:string" maxOccurs="10"/>

child_name标记最多包含10个实例。有可能将10称为某种变量,然后在其他地方定义它吗? (以下代码不合法,但只是显示some_variable之类的内容,然后在其他位置定义some_variable?)

<xs:element name="child_name" type="xs:string" maxOccurs="some_variable"/>

1 个答案:

答案 0 :(得分:1)

不, element/@maxOccurs may onlynonNegativeIntegerunbounded

没有规定允许它作为变量,也没有规定声明或设置变量。

这些可能不是您正在寻求的那种XSD级支持,但这里有几种解决方案:

  1. Use an entity reference at the XML level as a sort of variable
  2. 动态编写/重写XSD,例如通过XSLT改变 价值element/@maxOccurs