javax.xml.bind.UnmarshalException:零长度BigInteger - 带有链接异常:[java.lang.NumberFormatException:零长度BigInteger

时间:2015-04-07 13:00:56

标签: xml xsd xml-parsing xsd-validation xjc

当我使用axis2环境验证WSDL中的整数字段时,我收到以下错误。这适用于xml bean。但我收到xjc beans对象的错误。 XSD验证失败!!!当我传递空值时,我收到了这个错误。

请帮我解决这个问题。

 <xsd:element minOccurs="0" name="TypeName" type="types:PrincipalVariantType"/>
 <xsd:simpleType name="PrincipalVariantType">
    <xsd:restriction base="xsd:integer">
        <xsd:enumeration value="1" />
        <xsd:enumeration value="2" />
        <xsd:enumeration value="3" />
        <xsd:enumeration value="4" />
    </xsd:restriction>
  </xsd:simpleType>

堆栈跟踪

2 个答案:

答案 0 :(得分:0)

AS-IS

<xsd:simpleType name="PrincipalVariantType">
   <xsd:restriction base="xsd:integer">
       <xsd:enumeration value="1" />
       <xsd:enumeration value="2" />
       <xsd:enumeration value="3" />
       <xsd:enumeration value="4" />
   </xsd:restriction>
</xsd:simpleType>

在这种情况下,仅有效<TypeName>1</TypeName><TypeName>2</TypeName><TypeName>3</TypeName><TypeName>4</TypeName>

注意:空值不是数字,不允许为整数。

如果您想要xsd:string中的空字符串更改类型并更改

中的限制
<xsd:simpleType name="PrincipalVariantType">
    <xsd:restriction base="xsd:integer">
        <xsd:pattern value="[1-4\n]|()"/>
    </xsd:restriction>
</xsd:simpleType>

答案 1 :(得分:0)

这对我来说也很好。

<xsd:restriction base="xsd:string">
                <xsd:pattern value="(\s*[1-4\n]\s*)+"/>
</xsd:restriction>