-
Notifications
You must be signed in to change notification settings - Fork 33
Miscellaneous_customizations
Alexey Valikov edited this page Aug 31, 2017
·
1 revision
"Any"-type properties need a JAXB context for marshalling/unmarshalling operations. By default the context path of this JAXB context is derived from the compiled schemas. In some cases it may not be suitable and you may want to customize the context path. In order to do it, you may use the hj:jaxb-context
customization element:
<xsd:element name="any" type="xsd:anyType">
<xsd:annotation>
<xsd:appinfo>
<hj:generated-property propertyName="Anything">
<hj:jaxb-context contextPath="org.jvnet.hyperjaxb3.ejb.tests.po"/>
</hj:generated-property>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
Produces:
public static final String AnythingContextPath = "org.jvnet.hyperjaxb3.ejb.tests.po";
public String getAnything() {
if (JAXBContextUtils.isMarshallable(AnythingContextPath , this.getAny())) {
return JAXBContextUtils.marshal(AnythingContextPath , this.getAny());
} else {
return null;
}
}
public void setAnything(String target) {
if (target!= null) {
setAny(JAXBContextUtils.unmarshal(AnythingContextPath , target));
}
}
Icon You can make the context path field non-final:
<hj:jaxb-context ...>
<hj:field final="false"/>
</hj:jaxb-context>