2017-10-23 3 views
0

Ich verwende NetBeans 8.2.Netbeans Anmerkungen in generierten Quellen

Ich habe einige Java-Quellen erzeugt jaxb und xsd Schema verwenden, die mir zur Verfügung gestellt wurde.

(übrigens das xsd Schema gegeben ist, und ändern Sie sollten nicht)

Um nun Objekte ordnen zu können, in xml richtig (zB eine korrekte Zeitformat zu haben) ich einige Anmerkungen hinzufügen musste die generierten Quellen wie die folgenden

@XmlJavaTypeAdapter(DateTimeAdapter.class) 
    protected XMLGregorianCalendar timestamp; 

Alles läuft reibungslos.

Das Problem ist jedoch, dass auf Clean und Build alle generierten Dateien neu generiert werden und hinzugefügte Anmerkungen verloren gehen.

Was kann ich tun, so dass entweder:

  1. sauber und bauen wird unberührt

oder

  1. benötigt erzeugt Quellen verlassen Anmerkungen werden automatisch in generierte Dateien eingefügt, nachdem sie bereinigt und erstellt wurden?

Antwort

1

Also, die jaxb in Netbeans Bindung schafft JaxBBindings Verzeichnis, in dem es um die Bindung xsd Datei legt.

Was Sie tun müssen, ist diese xsd zu bearbeiten und fügen Sie richtige (inline) Bindung Anpassung hinzu. Beachten Sie, dass für die folgenden zu kompilieren ich "Use Extension" in "Change JAXB options" Menü überprüfen musste (Rechtsklick auf Bindings Unterordner).

<xsd:schema ... 
     xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
     xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
     jaxb:extensionBindingPrefixes="xjc" 
> 
... 
    <xsd:element name="Timestamp" type="xsd:dateTime"> 
     <xsd:annotation> 
       <xsd:appinfo> 
       <xjc:javaType name="javax.xml.datatype.XMLGregorianCalendar" adapter="myadapters.DateTimeAdapter"/> 
       </xsd:appinfo> 
     </xsd:annotation> 
    </xsd:element> 
... 
1

Ich denke, was Sie archivieren möchten Sie mit JAX Bindung individuell gestaltet werden können:

Anpassungen an JAXB Bindungen mittels einer externen Datei gemacht verbindliche Erklärungen nehmen die allgemeine Form weiter unten enthält.

<jxb:bindings schemaLocation = "xs:anyURI"> 
    <jxb:bindings node = "xs:string">* 
     <binding declaration> 
    <jxb:bindings> 
</jxb:bindings> 
  • schema ist eine URI Bezugnahme auf das entfernte Schema

  • Knoten ein XPath 1.0 Ausdruck, der das Schema-Knoten innerhalb schema identifiziert, zu dem die gegebene bindende Erklärung zugeordnet ist .

https://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/1.5/tutorial/doc/JAXBUsing4.html#wp148366

+0

Vielen Dank für Ihre Antwort - es war ein Push in eine richtige Richtung ;-) Also, ich bin upvoting und ich werde meine endgültige Lösung als separate Antwort posten. – Plirkee

Verwandte Themen