ブール値として定義された 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 に設定されます。
「トースト」を真として解析する理由を誰か教えてもらえますか? ちなみに、そこに入力した文字列は関係ありません。常に true として解析されます...
煩わしい歴史的な理由から、jaxb 1.0 を使用しています。