【发布时间】:2009-04-07 06:40:49
【问题描述】:
我一直认为 XMLSchema 和 DTD 是等价的,但后者在建模复杂关系(如继承)时使用起来更麻烦。
最近我想构建一个模式来验证具有如下结构的文档:
<data>
<array>
<int></int>
<int></int>
</array>
</array>
<float></float>
<float></float>
</array>
<int><int>
<float></float>
</data>
中的元素可以按任意顺序出现,每个元素的基数都是0..* 使用 XMLSchema,如果我使用 定义复杂类型,我可以让元素乱序,但最大基数为 1。 和 是其他明显的候选者,但它们是比我想要的更严格。
然后我注意到 DTD 似乎能够像这样实现这一点:
<!ELEMENT data (array | float | int)*>
有什么方法可以构建一个等效的模式,还是我必须在这里使用 DTD?
【问题讨论】: