代码之家  ›  专栏  ›  技术社区  ›  Harry Lime

xsd-如何确保具有给定属性的特定元素的存在?

  •  2
  • Harry Lime  · 技术社区  · 16 年前

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

    我们有几个要添加的规则;但是导致我出现问题的规则是,必须存在一个“node”元素,它的“name”attribute=“problem”。

    所以这是有效的:

    <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>
    

    总之,我需要执行的规则是

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

    有什么想法吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   TToni    16 年前

    抱歉,XSD不可能做到这一点。

    由于性能原因,XML模式被设计为从不向前看,也从不向后看当前节点之外的内容。这意味着必须始终在模式树中的验证器所在位置定义它。这使得像这样的需求不可能用XSD定义。

    推荐文章
    Jeff  ·  独占XPath测试
    9 年前