当我使用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>
堆栈跟踪
答案 0 :(得分:0)
<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>