Che cos’è un file .episode ..?

che cos’è un file .episode in JAXB ..? Viene generato da JAXB o è un file di configurazione che manipoliamo per evitare la rigenerazione delle stesse classi da parte di JAXB ..?

Nota: sono il capo EclipseLink JAXB (MOXy) e un membro del gruppo di esperti JAXB 2 (JSR-222) .

Un file .episode viene generato dal compilatore XJC (XML Schema to Java). È un collegamento di schemi che associa i tipi di schema alle classi esistenti. È utile quando si ha uno schema XML che viene importato da altri schemi poiché impedisce la rigenerazione del modello. Di seguito è riportato un esempio:

Product.xsd

           

Poiché più schemi XML importano Product.xsd, possiamo sfruttare i file episodi in modo che le classi corrispondenti a Product.xsd vengano generate una sola volta.

 xjc -d out -episode product.episode Product.xsd 

ProductPurchaseRequest.xsd

Di seguito è riportato un esempio di uno schema XML che importa Product.xsd:

            

Quando generiamo classi da questo schema XML faremo riferimento al file episodio che abbiamo creato quando abbiamo generato classi Java da Product.xsd.

 xjc -d out ProductPurchaseRequest.xsd -extension -b product.episode 

ProductQuoteRequest.xsd

Di seguito è riportato un altro esempio di uno schema XML che importa Product.xsd:

            

Ancora una volta quando generiamo le classi da questo schema XML faremo riferimento al file episodio che abbiamo creato quando abbiamo generato classi Java da Product.xsd.

 xjc -d out ProductQuoteRequest.xsd -extension -b product.episode 

Per maggiori informazioni

Aggiungerò qualche curiosità.

  • In realtà, i file .episode sono solo normali file di binding (è per questo che funzionano con xjc -b ).
  • Possono essere generati con uno speciale plug-in integrato (questo è ciò che fa -episode ).
  • Se inserito in un JAR sotto il percorso META-INF/sun-jaxb.episode , è ansible eseguire xjc b.xsd a.jar – XJC analizzerà i file JAR per i file degli episodi, quindi userà automaticamente i file di rilegatura.
  • Tutta questa bellezza funziona bene con Maven ( plugin maven-jaxb2 ). Tuttavia, con la versione successiva è ansible utilizzare file di associazione da artefatti JAR anche senza episodi.

Apparentemente, sono per la creazione di schemi modulari .

Ciò implica che i file stessi possono essere utilizzati sia come configuratore sia come vista generativa di un livello dati per l’elaborazione downstream. Sarebbe necessario un ulteriore contesto per determinare a quale object si fa riferimento qui.

Solo un addon alla risposta, vorrei fornire un input su come evitare di avere il file .episode generato durante l’utilizzo di maven-jaxb2-plugin

  ` org.jvnet.jaxb2.maven2 maven-jaxb2-plugin 0.12.3   schema-conversion  generate   src/main/schema/myschema src/main/schema/myschema  binding_info.xjb  src/main/java/ false    ` 

false lo farà sparire.