SoapUI似乎错误地说这些限制无效。我究竟做错了什么?

时间:2013-12-04 16:14:12

标签: wsdl xsd soapui

我的XML Schema中有以下内容:

<xsd:simpleType name="DECIMAL_TYPE">
    <xsd:restriction base="xsd:double">
        <xsd:minInclusive value="-100000"/>
        <xsd:maxInclusive value="100000"/>
    </xsd:restriction>
</xsd:simpleType>

<xsd:simpleType name="ANGLE_VALUE_TYPE">
    <xsd:restriction base="DECIMAL_TYPE">
        <xsd:minInclusive value="0"/>
        <xsd:maxInclusive value="360"/>
    </xsd:restriction>
</xsd:simpleType>

<xsd:complexType name="ANGLE_TYPE">
    <xsd:simpleContent>
         <xsd:extension base="ANGLE_VALUE_TYPE">
              <xsd:attribute name="UNITS" type="xsd:string" fixed="degrees"/>
         </xsd:extension>
    </xsd:simpleContent>
</xsd:complexType>

<xsd:complexType name="SPECIAL_ANGLE_TYPE">
    <xsd:simpleContent>
         <xsd:restriction base="ANGLE_TYPE">
              <xsd:maxInclusive value="90" /> <!-- The source of the problem -->
         </xsd:restriction>
    </xsd:simpleContent>
</xsd:complexType>

此模式用于我正在使用的WSDL作为新SoapUI项目的基础。但是,当我尝试导入项目时,SoapUI会出现此错误:

  
      
  • 您尝试导入的WSDL有问题:   
        
    • 来源:null
    •   
    • 错误:必须小于或等于之前的maxInclusive
    •   
  •   

如果我将问题行中的“90”更改为“360”,则会出现相同的错误。

如果我删除带注释的行(“问题的根源”),那么SoapUI就可以很好地导入WSDL了。模式在Eclipse中成功验证,并且WSDL2Java在其上运行正常。

我的架构有什么问题,如果有的话,我需要做什么才能将它导入SoapUI?谢谢!

1 个答案:

答案 0 :(得分:0)

我想知道你的问题是否与ANGLE_TYPE将ANGLE_BASE_TYPE命名为其基类型这一事实有关,但你的架构片段没有这种类型的声明。

当我将声明更改为名称ANGLE_VALUE_TYPE时,Saxon和Xerces都告诉我架构文档是有效的,并且一旦使用某些元素声明进行扩充,它似乎表现得很好。