xml在xml架构中描述IDREFS

时间:2017-11-02 16:05:29

标签: xml key keyref

我需要知道是否有一种方法可以在XML模式中创建类似但更强大的IDREFS而不使用IDREFS类型。我需要一个属性,它是keyref的列表。

  1. 我定义了一个键
  2. 我定义了一个keyref
  3. 现在怎么办?我需要定义一个属性,它是一种keyref
  4. 的列表

    示例:

     myAttribute = "keyref1 keyref2 keyref3 ..." and so on
    

    请记住:使用IDREFS,我无法创建引用项列表。

1 个答案:

答案 0 :(得分:0)

不,遗憾的是,keyrefs只能选择节点,而不能选择节点值内的标记。

要实现此类约束,您可以使用XSD 1.1断言:

<xs:element name="employees">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="employee" maxOccurs="unbounded"/>
    </xs:sequence>

    <xs:assert test="every $id in employee/direct-reports/tokenize(., ' ') 
                     satisfies exists(employee[id=$id])"/>
  </xs:complexType>
</xs:element>