xs:断言与元素数量的计数

时间:2014-07-16 22:14:40

标签: xml xsd xsd-validation xsd-1.1

我无法以某种方式计算此XSD架构的摘录中名为“x”的兄弟元素的数量?                                         

    </xs:all>
    <xs:assert test="count(./x) = 1"/>
</xs:complexType>

这应该计算我有多少“x”元素,但不知何故Xerces J只吐出: 输出

Assertion evaluation ('count(./x) = 1') for element 'Properties' with type 'FF' did not succeed.

我做错了什么?还有什么可能是断言失败的原因? Elemen x存在于定义中,也存在于XML中......我需要名称空间或类似的内容吗?

我可以在一个简单的测试中重现正确的行为,但不能用于上面复杂的XSD ......:

<Example>

    <y/>
    <y/>
    <y/>
</Example>

XSD

     <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:element name="Example" type="SS"/>

    <xs:complexType name="SS">
        <xs:all>
          <xs:element name="y" maxOccurs="unbounded"/>
        </xs:all>
        <xs:assert test="count(y) = 3" />
      </xs:complexType>

  </xs:schema>

发现错误: 我想,因为我有一个命名空间“sp”,我需要将它提供给XPath以使其工作:

<xs:assert test="count(./sp:y) = 3" />

0 个答案:

没有答案
相关问题