Xml 在哪里放置XSD1.1断言?

Xml 在哪里放置XSD1.1断言?,xml,xsd,xsd-validation,xml-validation,xsd-1.1,Xml,Xsd,Xsd Validation,Xml Validation,Xsd 1.1,我尝试使用xs:assert根据两个属性的值进行验证,但未成功。我一直在 s4s elt必须匹配。1:数据的内容必须匹配(注释?,(simpleType | complexType?,(unique | key | keyref)*)。在以下位置发现问题:assert 我已经看完了一大堆问题。我甚至复制了一个给出的答案,但即使它给出了同样的错误。它告诉我测试的格式是无效的,但我找不到任何不同的例子。谁能告诉我我做错了什么 短暂性脑缺血发作 以下是我复制的答案,错误作为注释: <?xml v

我尝试使用
xs:assert
根据两个属性的值进行验证,但未成功。我一直在

s4s elt必须匹配。1
:数据的内容必须匹配
(注释?,(simpleType | complexType?,(unique | key | keyref)*)
。在以下位置发现问题:
assert

我已经看完了一大堆问题。我甚至复制了一个给出的答案,但即使它给出了同样的错误。它告诉我测试的格式是无效的,但我找不到任何不同的例子。谁能告诉我我做错了什么

短暂性脑缺血发作

以下是我复制的答案,错误作为注释:

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
  vc:minVersion="1.1">

  <xs:element name="data">
    <xs:complexType>
      <xs:attribute name="min" type="xs:int"/>
      <xs:attribute name="max" type="xs:int"/>
    </xs:complexType>
    <xs:assert test="@min le @max"/>
    <!--s4s-elt-must-match.1: The content of 'data' must match (annotation?, (simpleType | complexType)?, (unique | key | keyref)*)). A problem was found starting at: assert.-->
  </xs:element>

</xs:schema>

编辑: 这里是complexType中的assert,显示了一个不同的错误

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
  vc:minVersion="1.1">

    <xs:element name="data">
        <xs:complexType>
            <xs:attribute name="min" type="xs:int"/>
            <xs:attribute name="max" type="xs:int"/>
            <xs:assert test="@min le @max"/>    
<!-- s4s-elt-invalid-content.1: The content of '#AnonType_data' is invalid.  Element 'assert' is invalid, misplaced, or 
 occurs too often. -->                      
        </xs:complexType>
    </xs:element>

</xs:schema>

可能的问题:

  • 确保您的XSD处理器支持XSD1.1
  • xs:assert
    元素移动到
    xs:complex
    中:
  •   <xs:element name="data">
        <xs:complexType>
          <xs:attribute name="min" type="xs:int"/>
          <xs:attribute name="max" type="xs:int"/>
        </xs:complexType>
        <xs:assert test="@min le @max"/>
      </xs:element>
    
    
    

    
    
    恐怕将其移动到complexType中只会导致另一个错误。我已经在我的问题中添加了这一点。谢谢你,我忽略了这一点。让我检查Eclipse/Java是否支持XSD1.1。
      <xs:element name="data">
        <xs:complexType>
          <xs:attribute name="min" type="xs:int"/>
          <xs:attribute name="max" type="xs:int"/>
          <xs:assert test="@min le @max"/>
        </xs:complexType>
      </xs:element>