¿Qué es un archivo .episode ..?

¿Qué es un archivo .episode en JAXB ..? ¿Lo genera el JAXB o es un archivo de configuración que manipulamos para evitar la regeneración de las mismas clases por JAXB ..?

Nota: Soy el líder de EclipseLink JAXB (MOXy) y miembro del grupo de expertos JAXB 2 (JSR-222) .

El comstackdor XJC (Esquema XML a Java) genera un archivo .episode. Es un esquema de enlaces que asocia tipos de esquema con clases existentes. Es útil cuando tiene un esquema XML que es importado por otros esquemas ya que impide que el modelo se regenere. A continuación hay un ejemplo:

Producto.xsd

           

Dado que múltiples esquemas XML importan Product.xsd, podemos aprovechar los archivos de episodio para que las clases correspondientes a Product.xsd solo se generen una vez.

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

ProductPurchaseRequest.xsd

A continuación se muestra un ejemplo de un esquema XML que importa Product.xsd:

            

Cuando generamos clases a partir de este esquema XML, haremos referencia al archivo del episodio que creamos cuando generamos clases Java desde Product.xsd.

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

ProductQuoteRequest.xsd

A continuación se muestra otro ejemplo de un esquema XML que importa Product.xsd:

            

De nuevo, cuando generemos clases a partir de este esquema XML, haremos referencia al archivo de episodio que creamos cuando generamos clases Java desde Product.xsd.

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

Para más información

Voy a agregar algunas trivialidades.

  • En realidad, los archivos .episode son solo archivos de enlace normales (es por eso que funcionan con xjc -b ).
  • Se pueden generar con un plugin incorporado especial (eso es lo que hace el -episode ).
  • Si se coloca en un JAR bajo la ruta META-INF/sun-jaxb.episode , puede hacer xjc b.xsd a.jar – XJC escaneará archivos JAR para archivos de episodios y luego los utilizará como archivos vinculantes automáticamente.
  • Toda esta belleza funciona bien con Maven ( maven-jaxb2-plugin ). Sin embargo, con la versión posterior puede usar archivos vinculantes de artefactos JAR incluso sin episodios.

Aparentemente, son para la creación de esquemas modulares .

Esto implica que los propios archivos se pueden usar como un configurador y como una vista generativa de una capa de datos para el procesamiento posterior. Se necesitaría más contexto para determinar a qué se hace referencia aquí.

Solo como un complemento a la respuesta, me gustaría proporcionar una entrada sobre cómo evitar que se genere un archivo .episode al usar 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 hará desaparecer.