javax.xml.bind.UnmarshaleException:Zero-length BigInteger-带有链接异常:[java.lang.NumberFormatException:Zero-length BigInteger]

javax.xml.bind.UnmarshaleException:Zero-length BigInteger-带有链接异常:[java.lang.NumberFormatException:Zero-length BigInteger],xml,xsd,xml-parsing,xsd-validation,xjc,Xml,Xsd,Xml Parsing,Xsd Validation,Xjc,在axis2环境下验证WSDL中的整型字段时,出现以下错误。xml beans可以正常工作。但xjc beans对象出现错误。XSD验证失败!!!。传递空值时出现此错误 请帮我解决这个问题 <xsd:element minOccurs="0" name="TypeName" type="types:PrincipalVariantType"/> <xsd:simpleType name="PrincipalVariantType"> <xsd:restr

在axis2环境下验证WSDL中的整型字段时,出现以下错误。xml beans可以正常工作。但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>
Stacktrace

原样 在这种情况下,只有1或2或3或4有效

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

如果需要空字符串,请在xsd:string中更改类型,并在中更改限制

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

这对我来说也很好

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

[java.lang.NumberFormatException:Zero length BigInteger]看起来像是输入不正确的情况。当我传递空时,我得到了这个错误。但我的要求是,它有抛出错误,比如只允许值1,2,3,4。是否希望所有[1-4]和空格出现?例如3 3..因为您的regexp允许这样做。
<xsd:restriction base="xsd:string">
                <xsd:pattern value="(\s*[1-4\n]\s*)+"/>
</xsd:restriction>