2

我正在尝试使用 XSD 向jdpl流程定义文件添加额外的验证。

我们有几个要添加的规则;但是给我带来问题的一个是必须存在一个“节点”元素,它的“名称”属性=“问题”。

所以这是有效的:

<process-definition name='sample'>
    <node name="Problem">
    </node>
    <node name="Do Work">
    </node>
</process-definition>

这不是

<process-definition name='sample'>
    <node name="Do Work">
    </node>
</process-definition>

所以,总而言之,我需要执行的规则是

  • 具有值“问题”的节点属性
  • 存在 1 个名称为“问题”的节点
  • 允许任意数量的具有其他名称的节点

有什么想法吗?

4

1 回答 1

1

抱歉,XSD 无法做到这一点。

由于性能原因,XML-Schema 设计为永远不会向前看,也永远不会回头看当前节点。这意味着它必须始终定义在验证器在模式树中的位置。这使得像这样的需求无法用 XSD 定义。

于 2008-11-12T11:11:09.570 回答