Tôi có giao diện bên thứ 3 cung cấp tệp xsd khớp với API của họ. Một số các ánh xạ của họ không khá Java, boolean thường lệ là 0 & 1 :-(Chỉ định lớp @XmlJavaTypeAdapter thông qua tệp ràng buộc?
Tôi muốn sử dụng một tập tin bindings để xác định các lớp @XmlJavaTypeAdapter cho BooleanAdapter của tôi, nhưng cho đến nay không có niềm vui.
các bindings file:
<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" xmlns="http://java.sun.com/xml/ns/jaxws"
jaxb:extensionBindingPrefixes="xjc" jaxb:version="2.0">
<jaxb:bindings schemaLocation="GetUserDetailsResponse.xsd" node="/xs:schema" >
<jaxb:globalBindings underscoreBinding="asWordSeparator" >
<jaxb:serializable uid="1" />
<jaxb:javaType name="java.lang.Boolean" xmlType="xs:boolean"
printMethod="mumble.bindings.BooleanAdapter.marshall"
parseMethod="mumble.bindings.BooleanAdapter.unmarshall" />
</jaxb:globalBindings>
</jaxb:bindings>
</jaxb:bindings>
Và kể từ khi tôi đang sử dụng maven bit có liên quan từ POM:
<strict>false</strict>
<extension>true</extension>
<verbose>true</verbose>
<enableWrapperStyle>false</enableWrapperStyle>
<enableAsyncMapping>false</enableAsyncMapping>
tôi đã bật enableWrapperS tyle và không thay đổi
Những gì tôi kết thúc-up với một Adaptor tạo của các loại sai:
import javax.xml.bind.annotation.adapters.XmlAdapter;
public class Adapter1
extends XmlAdapter<String, Boolean>{
public Boolean unmarshal(String value) {
return (mumble.bindings.BooleanAdapter.unmarshall(value));
}
public String marshal(Boolean value) {
return (mumble.bindings.BooleanAdapter.marshall(value));
}
}
Có một số ràng buộc nộp ma thuật tôi có thể sử dụng để thoát khỏi sự bao bọc tạo ra và sử dụng BooleanAdapter trực tiếp?
Sau đây có thể giúp: http://blog.bdoughan.com/2011/08/xml-schema-to-java-generating.html –
Không, tôi đã xem xét nó, nó không phải là những gì tôi muốn. Tôi có lẽ có thể sống với Adapter1 nếu tôi có thể buộc nó chuyển đổi int <--> boolean thay vì chuỗi <--> boolean nhưng lớp bổ sung không cần thiết của Bộ điều hợp cuối cùng sẽ kích thích tôi. Cảm ơn. –
thấy điều này: http://adventuresintechology.blogspot.ca/2012/04/binding-custom-xmljavatypeadapter-to.html. Tôi đã có thể thực hiện chính xác những gì bạn đang yêu cầu ở đây với sự giúp đỡ của bài đăng này. –