Xml 标识约束键匹配其选择器范围内的多个值

Xml 标识约束键匹配其选择器范围内的多个值,xml,xsd,Xml,Xsd,我编写了一个包含多个“页面”元素的XML。该页面包括两个子元素“parse”和“action”。 “parse”元素包含参数,“action”元素包含“func”。我想对“parameter”和“func”的内容应用标识约束。 如以下xml及其模式所示 <test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="test.xsd"> <page>

我编写了一个包含多个“页面”元素的XML。该页面包括两个子元素“parse”和“action”。
“parse”元素包含参数,“action”元素包含“func”。我想对“parameter”和“func”的内容应用标识约束。
如以下xml及其模式所示

<test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="test.xsd">

<page>
    <parse>
        <parameter>request_id</parameter>
        <parameter>auth_key</parameter>        
    </parse>

    <action>
        <func>auth_key</func>        
    </action>
</page>

<page>
    <parse>
        <parameter>request_id</parameter>
        <parameter>config_1</parameter>                
    </parse>

    <action>
        <func>config_1</func>        
    </action>
</page>

</test>

请求\u id
认证密钥
认证密钥
请求\u id
配置1
配置1
它的XML模式是

<xs:element name="test">
<xs:complexType>
    <xs:sequence>
        <xs:element ref="page" maxOccurs="32"/>
    </xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="page">
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="parse"/>
            <xs:element ref="action"/>
        </xs:sequence>
    </xs:complexType>            

<xs:keyref name="arg_key_ref" refer="arg_key">
  <xs:selector xpath="action/func"/>
  <xs:field xpath="."/>
</xs:keyref>
<xs:key name="arg_key">
  <xs:selector xpath="parse"/>
  <xs:field xpath="parameter"/>
</xs:key>
</xs:element>

<xs:element name="parse">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="parameter" type="xs:string" maxOccurs="32"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>

<xs:element name="action">
    <xs:complexType>
        <xs:sequence>
        <xs:element name="func" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>
</test>

问题是我得到的是身份约束“arg_key”的
字段“/parameter”匹配其选择器范围内的多个值;字段必须与唯一值匹配
错误。
因为请求\u id出现在两个“页面”元素中。是否可以仅在页面元素中限制选择器范围

提前感谢,,
Kishore.

键的作用域已经限定到页面级别,问题在于定义

<xs:key name="arg_key">
  <xs:selector xpath="parse"/>
  <xs:field xpath="parameter"/>
</xs:key>
要求此
页面
中的所有
参数
元素就其自身值而言是唯一的

<xs:key name="arg_key">
  <xs:selector xpath="parse/parameter"/>
  <xs:field xpath="."/>
</xs:key>