lo que es un .episodio archivo en JAXB..? Es generado por el JAXB o es un archivo de configuración en el que se había manipular para evitar la regeneración de las mismas clases por JAXB..?

InformationsquelleAutor quantumcrypt | 2012-03-18

4 Comentarios

  1. 30

    Nota: yo soy el EclipseLink JAXB (MOXy) de plomo y un miembro de la JAXB 2 (JSR-222) grupo de expertos.

    Una .episodio archivo es generado por el XJC (Esquema XML para Java) compilador. Es un esquema de enlaces que asocia los tipos de esquema con las clases existentes. Es útil cuando se tiene un esquema XML que es importado por otros esquemas como previene el modelo de ser regenerado. A continuación se muestra un ejemplo:

    Producto.xsd

    <?xml version="1.0" encoding="UTF-8"?>
    <schema 
        xmlns="http://www.w3.org/2001/XMLSchema" 
        targetNamespace="http://www.example.org/Product" 
        xmlns:tns="http://www.example.org/Product" 
        elementFormDefault="qualified">
        <element name="product">
            <complexType>
                <sequence>
                    <element name="id" type="string"/>
                    <element name="name" type="string"/>
                </sequence>
            </complexType>
        </element>
    </schema>

    Desde varios esquemas XML de importación del Producto.xsd podemos aprovechar episodio de archivos, de manera que las clases correspondientes al Producto.xsd sólo se generan una vez.

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

    ProductPurchaseRequest.xsd

    A continuación es un ejemplo de un esquema XML que las importaciones del Producto.xsd:

    <?xml version="1.0" encoding="UTF-8"?>
    <schema 
        xmlns="http://www.w3.org/2001/XMLSchema" 
        targetNamespace="http://www.example.org/ProductPurchaseRequest" 
        xmlns:tns="http://www.example.org/ProductPurchaseRequest"
        xmlns:prod="http://www.example.org/Product" 
        elementFormDefault="qualified">
        <import namespace="http://www.example.org/Product" schemaLocation="Product.xsd"/>
        <element name="purchase-request">
            <complexType>
                <sequence>
                    <element ref="prod:product" maxOccurs="unbounded"/>
                </sequence>
            </complexType>
        </element>
    </schema>

    Cuando generamos las clases a partir de este esquema XML vamos a hacer referencia al episodio de archivo que hemos creado, cuando se generaron las clases de Java de Producto.xsd.

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

    ProductQuoteRequest.xsd

    A continuación se muestra otro ejemplo de un esquema XML que las importaciones del Producto.xsd:

    <?xml version="1.0" encoding="UTF-8"?>
    <schema 
        xmlns="http://www.w3.org/2001/XMLSchema" 
        targetNamespace="http://www.example.org/ProductQuoteRequest" 
        xmlns:tns="http://www.example.org/ProductQuoteRequest" 
        xmlns:prod="http://www.example.org/Product" 
        elementFormDefault="qualified">
        <import namespace="http://www.example.org/Product" schemaLocation="Product.xsd"/>
        <element name="quote">
            <complexType>
                <sequence>
                    <element ref="prod:product"/>
                </sequence>
            </complexType>
        </element>
    </schema>

    De nuevo cuando generamos las clases a partir de este esquema XML vamos a hacer referencia al episodio de archivo que hemos creado, cuando se generaron las clases de Java de Producto.xsd.

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

    Para Obtener Más Información

    • Este no es confiable el trabajo con la maven-jaxb2-plugin, a pesar de que puede proporcionar el episodio de archivo, usted tiene que proporcionar el esquema original de archivo también. Cita del plugin guía del usuario: tenga en cuenta que JAXB todavía necesita para tener acceso a AMBOS a y B los esquemas durante la compilación. Usted puede utilizar los catálogos de proporcionar alternativas de ubicación de los esquemas importados.
  2. 7

    Voy a añadir algunas curiosidades.

    • En realidad, .episode archivos son sólo normal de unión de archivos (es por eso que trabajo con xjc -b).
    • Pueden ser generados con una especial incorporada en el plugin (que es lo que -episode hace).
    • Si se coloca en un FRASCO bajo el META-INF/sun-jaxb.episode ruta, puede hacer xjc b.xsd a.jar – XJC escanear los Frascos para el episodio de los archivos, un uso como el enlace de los archivos de forma automática.
    • Toda esta belleza que funciona muy bien con Maven (maven-jaxb2-plugin). Sin embargo, con la versión posterior, puede usar el enlace de los archivos de TARRO de artefactos, incluso sin episodios.
    • Muy bueno. Pero no puedo obligar a una documentación acerca del uso de la JARRA artefactos
    • Ver las entradas de recursos, sólo tiene que utilizar con bindings en lugar de schemas: confluence.highsource.org/display/MJIIP/…
  3. 0

    Al parecer, son para esquema modular de la creación.

    Esto implica que los propios archivos puede ser utilizado tanto como un configurador y como generativo vista de una capa de datos para el procesamiento aguas abajo. Más de contexto sería necesario para determinar que se hace referencia aquí.

  4. 0

    Sólo un complemento a la respuesta, me gustaría dar una entrada sobre cómo evitar que los .episodio archivo generado, mientras que el uso de maven-jaxb2-plugin

             `<plugin>
                <groupId>org.jvnet.jaxb2.maven2</groupId>
                <artifactId>maven-jaxb2-plugin</artifactId>
                <version>0.12.3</version>
                <executions>
                    <execution>
                        <id>schema-conversion</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <schemaDirectory>src/main/schema/myschema</schemaDirectory>
                            <bindingDirectory>src/main/schema/myschema</bindingDirectory>
                            <bindingIncludes>
                                <include>binding_info.xjb</include>
                            </bindingIncludes>
                            <generateDirectory>src/main/java/</generateDirectory>
                            <episode>false</episode>
                        </configuration>
                    </execution>
                </executions>
            </plugin>`

    <episode>false</episode> hará desaparecer.

Dejar respuesta

Please enter your comment!
Please enter your name here