我需要解决以下问题. //伪算法 你有四个元素:elm1,elm2,elm3,elm4 elm1发生0-2次 elm2发生0-1次 elm3发生0-n次 elm4发生0-n次 他们可以以任何方式订购,但限制在他们给定的数量. //伪结束 它似乎是
//伪算法
>你有四个元素:elm1,elm2,elm3,elm4
> elm1发生0-2次
> elm2发生0-1次
> elm3发生0-n次
> elm4发生0-n次
>他们可以以任何方式订购,但限制在他们给定的数量.
//伪结束
它似乎是序列和选择的组合,但两个指标都有一个特征,不允许我想要的行为.
样品:
elm4
elm1
elm2
elm1
elm3
elm3
elm3
elm4
请在我疯了之前拯救我:)
克里斯
如果你的n值不是太大而且你很绝望,你可以制作一个内容模型来解释每个可能的组合,但这会成倍增长.最好的解决方案是使用支持XML Schema 1.1的工具(例如Xerces或Saxon),它放宽了对所有组出现值的限制.从规格section G.1.3开始:
Several of the constraints imposed by version 1.0 of this specification
on all-groups have been relaxed:a. Wildcards are now allowed in all
groups.b. The value of maxOccurs may now be
greater than 1 on particles in an all
group. The elements which match a
particular particle need not be
adjacent in the input.c. all groups can now be extended by
adding more members to them.
如果不这样做,一般的XML Schema 1.0解决方案是在模式中指定一个宽松的模型(对元素出现没有限制),然后在另一个层中强制执行您关心的约束,例如,可能是自定义代码或XSLT.