我有一个定义为布尔值的 xml 元素,但是当我传入一个字符串 'blablabla' 时,它被编组为 true。
这是xsd:
<xs:complexType name="usageAttributesType">
<xs:sequence>
<xs:element name="force-reservation" type="xs:boolean" minOccurs="0" />
<xs:element name="force-purchase" type="xs:boolean" minOccurs="0" />
.............
请求 xml 如下所示:
<usage-auth-rate-charge>
<msisdn>444fh7775hweff</msisdn>
<service-id>c001</service-id>
<usage-attributes>
<force-purchase>toast</force-purchase>
在我的java中,我有:
JAXBContext jc = JAXBContext.newInstance("com.mycompany.binding.request" );
jc.createUnmarshaller().unmarshal(xml);
并且绑定的 jaxb 对象将 forcePurchase 标志设置为 true。如果我将其排除在 xml 请求之外,或者将其设置为 false,则该标志将设置为 false(正确)。
谁能告诉我为什么它将“吐司”解析为真的?顺便说一句,我放在那里的字符串并不重要,它总是被解析为真的......
由于烦人的历史原因,我们使用的是 jaxb 1.0