2009-11-10 7 views
13

Dokumentacja JAXB xjc mówi:Jak napisać zewnętrzny plik powiązania dla xjc?

-b Określ jeden lub więcej zewnętrznych plików wiążących do procesu. (Każdy plik powiązania musi mieć własny przełącznik "-b"). Składnia zewnętrznych plików powiązań jest wyjątkowo elastyczna. Możesz mieć jeden plik wiążącego, który zawiera dostosowania dla wielu schematów czy można złamać dostosowania do wielu plików wiązań:

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 

Ponadto uporządkowanie plików schematu i pliki wiążące w wierszu poleceń nie ma znaczenia .

Ale gdzie znajdę dokumentację tego "zewnętrznego pliku wiążącego"?

+0

skończyłeś spojrzeć tutaj: https://docs.oracle.com /javaee/5/tutorial/doc/bnbbf.html? CSS tej strony jest przerażający i nie można odróżnić nagłówków od podtytułów. Ten samouczek jest dostępny również w formacie PDF z lepszym składem. Zobacz także tę stronę: http://archive.oreilly.com/pub/a/onjava/2003/12/10/jaxb.html?page=2 Mam nadzieję, że niektóre z nich pomogą. – diginoise

Odpowiedz

5

Plik wiązania zewnętrzny jest udokumentowana na stronie Customizing JAXB Bindings na Oracle.com

Cytat:

Zewnętrzna Binding Customization Pliki

Modyfikacje do powiązań JAXB wykonanych za pomocą zewnętrznego pliku zawierającego wiążące deklaracje przyjmują ogólną formę pokazaną poniżej.

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

schemaLocation jest odniesienia URI zdalnego schemat węzeł jest XPath 1,0 ekspresyjny, który identyfikuje węzeł schematu w schemaLocation, do którego wiąże się ze względu zgłoszenie wiązania. Na przykład deklaracja pierwszy schemaLocation/węzeł w JAXB pliku deklaracji wiążące określa nazwę schematu i węzeł schematu root:

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

późniejsze oświadczenie schemaLocation/node, powiedzmy na elemencie simpleType nazwie ZipCodeType w wyżej schematu, by przybrać formę:

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

Zobacz również; JAXB Compiler Options


Innym dobrym źródłem informacji na temat pliku wiązania zewnętrznego jest oreilly. Przykładowy plik jest wiążąca od oreilly:

Cytat:

Listing 11. Używanie zewnętrznego Binding Plik

<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>