XSD验证属性等于父属性

时间:2013-12-11 10:07:47

标签: xml validation xsd

我需要创建一个XSD,用于验证具有父节点的特定复杂类型中的值。

在这种特定情况下,XML将如下所示:

<ROOT>
  <INFO>
      <REGIONDESC>
        <REGION VALUE="001" DESCRIPTION="Description 1" />
        <REGION VALUE="002" DESCRIPTION="Description 2" />
        <REGION VALUE="003" DESCRIPTION="Description 3" />    
      </REGIONDESC>
      ...Other Nodes..
  </INFO>
  <DETAILS>
      <REGIONDETAILS>
        <REGIONID VALUE="001"/>
        ...Other Nodes..
      </REGIONDETAILS>
  </DETAILS>
</ROOT>

我需要验证“REGIONID”值必须等于某些“REGIONDESC / REGION @ VALUE”。 有可能吗?

1 个答案:

答案 0 :(得分:2)

在ROOT元素的定义中,定义一个xs:key,选择xpath =“INFO / REGIONDESC / REGION”,字段xpath =“@ VALUE”;和相应的xs:keyRef,选择xpath =“DETAILS / REGIONDETAILS / REGIONID”,字段xpath =“@ VALUE”。