/ / @XmlElement Annotation entfernen, während Pojo aus XSD generiert wird - Java, XSD, JaxB, Annotationen, Maven-JaxB2-Plugin

Entfernen Sie @ XmlElement Annotation beim Generieren von Pojo von XSD - Java, Xsd, Jaxb, Anmerkungen, Maven-Jaxb2-Plugin

Ich habe die Anforderung, den XML-Inhalt an das String-Attribut meines Pojo zu binden, und dazu habe ich meinen benutzerdefinierten DomHandler erstellt, um den erforderlichen Teil zu extrahieren

<sample>
<color>red</color>
<content>
<p>here is content <b>with bold</b></p>
</content>
</sample>

Welches wird zu Pojo abbilden

@XmlRootElement
class Sample {
@MyCustomAnnotation(value="abcde")
@XmlElement(name="color")
private String color;

@MyCustomAnnotation(value="12345")
@XmlElement(name="content")
@XmlAnyElement(ContentHandler.class)
private String content;
}

Ich generiere meine Pojos mit XSD. Außerdem habe ich einige benutzerdefinierte Anmerkungen, die ich zu generierten Pojos hinzufügen möchte, damit ich sie verwende Maven-Jaxb2-Plugin.

Das Problem ist, dass es bei Bedarf Anmerkungen hinzufügt, zusammen mit @XmlElement, das sich gegenseitig für @XmlAnyElement ausschließt. Gibt es eine Möglichkeit, das Hinzufügen von @XmlElement-Anmerkungen mithilfe von XSD zu vermeiden?

Antworten:

1 für die Antwort № 1

Sie können verwenden xjc:dom um XJC mitzuteilen, dass Sie dieses Element als DOM-Element behandeln möchten. Beispiel:

<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>