У меня есть WSDL, из которого я генерирую классы в NetBeans. У неизменной копии есть даты, и эти даты генерируются как XMLGregorianCalendar. Я пытаюсь переопределить это поведение и вставить тэг globalbinding, чтобы вместо этого генерировать дату Java. Однако независимо от того, где я помещаю тег привязки (показано ниже), он игнорируется, а XMLGregorianCalendar используется как тип даты.JAX-B Глобальное связывание игнорируется в WSDL
Может кто-нибудь сказать мне, если я на правильном пути, и где разместить переопределение? Ниже также приведена общая схема WSDL.
<annotation>
<appinfo>
<jaxb:globalBindings>
<javaType name="java.util.Date" xmlType="xs:date"
parseMethod="javax.xml.bind.DatatypeConverter.parseDate"
printMethod="javax.xml.bind.DatatypeConverter.printDate"
</jaxb:globalBindings>
</appinfo>
</annotation>
С отредактированной WSDL, показывая, что я считаю, являются соответствующими частями:
<types>
<s:schema xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:sap="http://xyz/sap" elementFormDefault="qualified" targetNamespace="http://xyz/sap">
<s:element name="createOrder">
<s:complexType>
<s:sequence>
<s:element ref="sap:sap-order-request" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
<xs:schema xmlns:sap="http://xyz/sap" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://xyz/sap" elementFormDefault="unqualified">
<xs:element name="sap-order-request">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="publication-date" type="xs:date" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<binding name="SapSalesOrderSoap" type="s0:SapSalesOrderSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="createOrder">
<soap:operation soapAction="http://xyz/sap/createOrder" style="document"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>