我需要将XML内容绑定到我的pojo的String属性,为此我创建了自定义DomHandler以提取所需的部分,如下所示
<sample>
<color>red</color>
<content>
<p>here is content <b>with bold</b></p>
</content>
</sample>
将映射到pojo
@XmlRootElement
class Sample {
@MyCustomAnnotation(value="abcde")
@XmlElement(name="color")
private String color;
@MyCustomAnnotation(value="12345")
@XmlElement(name="content")
@XmlAnyElement(ContentHandler.class)
private String content;
}
我正在使用XSD生成我的pojos,我也有几个自定义注释要添加到生成的pojos中,所以我使用 maven-jaxb2-plugin 。
问题是,它根据需要添加注释以及与@XmlAnyElement互斥的@XmlElement,有没有办法避免使用XSD添加@XmlElement注释?
答案 0 :(得分:1)
您可以使用xjc:dom
告诉XJC您希望将此元素作为DOM元素处理。例如:
<jaxb:bindings
schemaLocation="http://schemas.opengis.net/owc/0.3.1/owsContext.xsd"
node="/xs:schema">
<jaxb:schemaBindings>
<jaxb:package name="net.opengis.owc.v_0_3_1"/>
</jaxb:schemaBindings>
<jaxb:bindings node="xs:complexType[@name='LayerType']//xs:element[@ref='kml:Document']">
<xjc:dom/>
</jaxb:bindings>
</jaxb:bindings>