2009-11-10 44 views
13

La documentación de JAXB xjc dice:Cómo escribir un archivo de enlace externo para xjc?

-b especificar uno o más archivos de enlace externos para procesar. (Cada archivo de enlace debe tener su propio interruptor "-b"). La sintaxis de los archivos de enlace externos es extremadamente flexible. Es posible que tenga un archivo de unión única que contiene las personalizaciones para múltiples esquemas o puede romper las personalizaciones en varios archivos de enlaces:

xjc schema1.xsd schema2.xsd schema3.xsd -b bindings123.xjb 

    xjc schema1.xsd schema2.xsd schema3.xsd 
     -b bindings1.xjb -b bindings2.xjb -b bindings3.xjb 

Además, el orden de los archivos de esquema y los archivos que vinculan a la línea de comandos no importa .

¿Pero dónde encuentro la documentación de este "archivo de enlace externo"?

+0

No te ves aquí: https://docs.oracle.com /javaee/5/tutorial/doc/bnbbf.html? El CSS de esa página es espantoso y no se puede distinguir los encabezados de los subcaberadores. Este tutorial está disponible también como PDF con mejor composición tipográfica. También vea esta página: http://archive.oreilly.com/pub/a/onjava/2003/12/10/jaxb.html?page=2 Espero que algo de eso ayude. – diginoise

Respuesta

5

El archivo de enlace externo está documentado en la página Customizing JAXB Bindings en oracle.com

Cita:

unión externa archivos de personalización

Las personalizaciones de los enlaces de JAXB hechas por medio de un archivo externo que contiene declaraciones vinculantes toman la forma general que se muestra a continuación.

<jxb:bindings schemaLocation = "xs:anyURI"> 
    <jxb:bindings node = "xs:string">* 
     <binding declaration> 
    <jxb:bindings> 
</jxb:bindings> 

schemaLocation es una referencia URI al nodo remoto esquema es un 1,0 expresión XPath que identifica el nodo de esquema dentro schemaLocation a la que está asociada la declaración de unión dado. Por ejemplo, la declaración primera schemaLocation/nodo en un archivo de declaraciones de enlace JAXB especifica el nombre de esquema y el nodo esquema de raíz:

<jxb:bindings schemaLocation="po.xsd" node="/xs:schema"> 

una posterior declaración schemaLocation/nodo, dicen que para un elemento simpleType llamado ZipCodeType en el anterior esquema, tendría la forma:

<jxb:bindings node="//xs:simpleType[@name='ZipCodeType']"> 

Véase también; la JAXB Compiler Options


Otra buena fuente de información sobre el archivo de enlace externo es oreilly. Un archivo de enlace de ejemplo oreilly es:

Cita:

Listado 11. Uso de un archivo de enlace externo

<jxb:bindings version="1.0" 
    xmlns:jxb="http://java.sun.com/xml/ns/jaxb" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
    jxb:extensionBindingPrefixes="xjc"> 
    <jxb:bindings schemaLocation="po4.xsd" node="/xs:schema"> 
     <jxb:globalBindings> 
      <xjc:superClass name="com.syh.Shape"/> 
      <xjc:serializable uid="12343"/> 
     </jxb:globalBindings> 
     <jxb:bindings node="//xs:element[@name='Widgets']//xs:complexType//xs:choice"> 
      <jxb:property name="Shapes"/> 
     </jxb:bindings> 
    </jxb:bindings> 
</jxb:bindings> 
Cuestiones relacionadas