Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Creating an XML Project (ELUG)"

m (added x-ref links)
m
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
[[Image:Elug draft icon.png]] '''For the latest EclipseLink documentation, please see http://www.eclipse.org/eclipselink/documentation/ '''
 +
 +
----
 +
 +
 +
 
<div style="float:right;border:1px solid #000000;padding:5px">__TOC__
 
<div style="float:right;border:1px solid #000000;padding:5px">__TOC__
 
[[Special:Whatlinkshere/Creating an XML Project (ELUG)|Related Topics]]</div>
 
[[Special:Whatlinkshere/Creating an XML Project (ELUG)|Related Topics]]</div>
Line 27: Line 33:
  
  
 +
The EclipseLink JAXB compiler generates [[Introduction%20to%20XML%20Projects%20(ELUG)#Working with JAXB-Specific Generated Files|JAXB-specific files ]] and [[Introduction%20to%20XML%20Projects%20(ELUG)#Working with EclipseLink-Specific Generated Files|EclipseLink-specific files]].
 +
 +
Optionally, open the generated [[Introduction%20to%20XML%20Projects%20(ELUG)#Workbench Project|workbench project]]), customize the generated mappings and descriptors, and reexport the EclipseLink project XML.
 +
 +
 +
{| class="Note oac_no_warn" width="80%" border="1" frame="hsides" rules="groups" cellpadding="3" frame="hsides" rules="groups"
 +
| align="left" |
 +
'''Note:''' Before you compile your generated classes, be sure to configure your IDE classpath to include <tt><</tt>''<tt>ECLIPSELINK_HOME</tt>''<tt>>\jlib\moxy\javax.xml.bind_2.0.0.jar</tt>. For example, see [[Using%20an%20Integrated%20Development%20Environment%20(ELUG)|Using an Integrated Development Environment]].
 +
|}
 +
 +
 +
 +
===How to Create an XML Project from an XML Schema Using the Command Line===
 +
To create a new, mapped Workbench project from an XML schema using JAXB from the command line, use the <tt>jaxb-compiler.cmd</tt> or <tt>jaxb-compiler.sh</tt> file (located in the ''<tt><ECLIPSELINK_HOME></tt>''<tt>/bin</tt> directory) as follows:
 +
<ol>
 +
<li> Using a text editor, edit the <tt>jaxb-compiler.cmd</tt> or <tt>jaxb-compiler.sh</tt> file to set proxy settings (if required).<br>If you are using a schema that imports another schema by URL and you are operating behind a proxy, then you must uncomment the lines shown in the [[#Example 53-1|Proxy Settings in jaxb-compiler.cmd]] or [[#Example 53-2|Proxy Settings in jaxb-compiler.sh]] examples and edit them to set your proxy host (name or IP address) and port:
 +
 +
<br><span id="Example 53-1"></span>
 +
''''' Proxy Settings in jaxb-compiler.cmd'''''
 +
<div class="pre">
 +
@REM set JVM_ARGS=%JVM_ARGS% -DproxySet=true -Dhttp.proxyHost= -Dhttp.proxyPort=
 +
</div>
 +
 +
<br><span id="Example 53-2"></span>
 +
''''' Proxy Settings in jaxb-compiler.sh'''''
 +
<div class="pre">
 +
JVM_ARGS="${JVM_ARGS} -DproxySet=true -Dhttp.proxyHost= -Dhttp.proxyPort="
 +
</div>
 +
</li>
 +
 +
<li> Execute the <tt>jaxb-compiler.cmd</tt> or <tt>jaxb-compiler.sh</tt> file (located in the ''<tt><ECLIPSELINK_HOME></tt>''<tt>/bin</tt> directory).<br>The EclipseLink JAXB compiler generates JAXB-specific files (see [[Introduction%20to%20XML%20Projects%20(ELUG)|Working with JAXB-Specific Generated Files]]) and EclipseLink-specific files (see [[Introduction%20to%20XML%20Projects%20(ELUG)|Working with EclipseLink-Specific Generated Files]]).<br>The [[#Example 53-3|Generating an Object Model from a Schema with jaxb-compiler.cmd]] example illustrates how to generate an object model from a schema using the EclipseLink JAXB compiler. The [[#Table 53-1|EclipseLink JAXB Binding Compiler Arguments]] table lists the compiler arguments.
 +
 +
<br><span id="Example 53-3"></span>
 +
''''' Generating an Object Model from a Schema with jaxb-compiler.cmd'''''
 +
<div class="pre">
 +
jaxb-compiler.cmd [-options...] schemafile [-b bindingfile]
 +
</div>
 +
 +
 +
<span id="Table 53-1"></span>
 +
''''' EclipseLink JAXB Binding Compiler Arguments'''''
 +
{| class="HRuleFormalMax" dir="ltr" title="EclipseLink JAXB Binding Compiler Arguments" summary="This table describes the mandatory and optional arguments used with the EclipseLink JAXB binding compiler." width="100%" border="1" frame="hsides" rules="rows" cellpadding="3" frame="hsides" rules="rows"
 +
|- align="left" valign="top"
 +
! id="r1c1-t6" align="left" valign="bottom" | '''Argument'''
 +
! id="r1c2-t6" align="left" valign="bottom" | '''Description'''
 +
! id="r1c3-t6" align="left" valign="bottom" | '''Optional?'''
 +
|- align="left" valign="top"
 +
| id="r2c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-help</tt>
 +
| headers="r2c1-t6 r1c2-t6" align="left" |
 +
Prints the help and usage information.
 +
| headers="r2c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|- align="left" valign="top"
 +
| id="r3c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-version</tt>
 +
| headers="r3c1-t6 r1c2-t6" align="left" |
 +
Prints the release version of the EclipseLink JAXB compiler.
 +
| headers="r3c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|
 +
|- align="left" valign="top"
 +
| id="r11c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-verbose</tt>
 +
| headers="r11c1-t6 r1c2-t6" align="left" |
 +
The interfaces and classes generated. This argument is optional.
 +
 +
Default: not verbose.
 +
| headers="r11c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|- align="left" valign="top"
 +
| id="r12c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-customize</tt>
 +
| headers="r12c1-t6 r1c2-t6" align="left" |
 +
The fully qualified path and file name of a standard JAXB customization file that you can use to override default JAXB compiler behavior.
 +
| headers="r12c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|
 +
|- align="left" valign="top"
 +
| id="r12c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-nv</tt>
 +
| headers="r12c1-t6 r1c2-t6" align="left" |
 +
Do not preform strict validation of the input schemas.
 +
| headers="r12c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|
 +
|- align="left" valign="top"
 +
| id="r12c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-extension</tt>
 +
| headers="r12c1-t6 r1c2-t6" align="left" |
 +
Allow vendor extensions. The compiler will not strictly follow the Compatibility Rules and Appendix E.2 or the JAXB specification.
 +
| headers="r12c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|
 +
|- align="left" valign="top"
 +
| id="r12c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-b</tt>
 +
| headers="r12c1-t6 r1c2-t6" align="left" |
 +
Specify external bindings files (or directories).  <br>
 +
 +
<tt>-b file1 -b file2 -b file3</tt>
 +
 +
If you include a directory, the compiler will search <tt>**/*.xjb</tt>.
 +
| headers="r12c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|
 +
|- align="left" valign="top"
 +
| id="r12c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-d</tt>
 +
| headers="r12c1-t6 r1c2-t6" align="left" |
 +
The directory for the generated files.
 +
| headers="r12c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|
 +
|- align="left" valign="top"
 +
| id="r12c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-p</tt>
 +
| headers="r12c1-t6 r1c2-t6" align="left" |
 +
The target package.
 +
| headers="r12c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|
 +
|- align="left" valign="top"
 +
| id="r12c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-httpproxy</tt>
 +
| headers="r12c1-t6 r1c2-t6" align="left" |
 +
Set an HTTP/HTTPS proxy.
 +
 +
<tt>-httpproxy [user[:password]@]proxyHost:proxy:Port</tt>
 +
| headers="r12c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|
 +
|- align="left" valign="top"
 +
| id="r12c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-httpproxyfile</tt>
 +
| headers="r12c1-t6 r1c2-t6" align="left" |
 +
Similar to <tt>-httpproxy</tt>, except that it takes a file (to protect the password).
 +
 +
<tt>-httpproxyfile file</tt>
 +
| headers="r12c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|
 +
|- align="left" valign="top"
 +
| id="r12c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-classpath</tt>
 +
| headers="r12c1-t6 r1c2-t6" align="left" |
 +
Specify the location of your class files
 +
| headers="r12c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|
 +
|- align="left" valign="top"
 +
| id="r12c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-catalog</tt>
 +
| headers="r12c1-t6 r1c2-t6" align="left" |
 +
Specify the catalog files to resolve external entity references. The JAXB compiler supports TR9401, XCatalog, and OASIS XML catalog formats.
 +
 +
<tt>-catalog filename</tt>
 +
 +
| headers="r12c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|
 +
|- align="left" valign="top"
 +
| id="r12c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-customize</tt>
 +
| headers="r12c1-t6 r1c2-t6" align="left" |
 +
The fully qualified path and file name of a standard JAXB customization file that you can use to override default JAXB compiler behavior.
 +
| headers="r12c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|
 +
|- align="left" valign="top"
 +
| id="r12c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-readonly</tt>
 +
| headers="r12c1-t6 r1c2-t6" align="left" |
 +
The generated files will be in read-only mode.
 +
| headers="r12c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|
 +
|- align="left" valign="top"
 +
| id="r12c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-npa</tt>
 +
| headers="r12c1-t6 r1c2-t6" align="left" |
 +
The package-level annotations ''''will not'''' be generated (**/package-info.java).
 +
| headers="r12c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|
 +
|- align="left" valign="top"
 +
| id="r12c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-no-header</tt>
 +
| headers="r12c1-t6 r1c2-t6" align="left" |
 +
The file header with timestamp '''will not''' be generated.
 +
| headers="r12c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|
 +
|- align="left" valign="top"
 +
| id="r12c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-xmlschmea</tt>
 +
| headers="r12c1-t6 r1c2-t6" align="left" |
 +
The input schema will be treated as W3C schema (default).
 +
| headers="r12c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|
 +
|- align="left" valign="top"
 +
| id="r12c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-relaxng</tt>
 +
| headers="r12c1-t6 r1c2-t6" align="left" |
 +
The input schema will be treated as RELAX NG
 +
| headers="r12c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|
 +
|- align="left" valign="top"
 +
| id="r12c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-relaxng-compact</tt>
 +
| headers="r12c1-t6 r1c2-t6" align="left" |
 +
The input schmea will be treated as RELAX NG (compact syntax).
 +
| headers="r12c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|
 +
|- align="left" valign="top"
 +
| id="r12c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-wsdl</tt>
 +
| headers="r12c1-t6 r1c2-t6" align="left" |
 +
The input schmea will be treated as WSDL and compile shemas inside of it.
 +
| headers="r12c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|
 +
|- align="left" valign="top"
 +
| id="r12c1-t6" headers="r1c1-t6" align="left" |
 +
<tt>-dtd</tt>
 +
| headers="r12c1-t6 r1c2-t6" align="left" |
 +
The input schmea will be trated as XML DTD.
 +
| headers="r12c1-t6 r1c3-t6" align="left" |
 +
Yes
 +
|}
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
<br>
 +
</li>
 +
<li> Optionally, open the generated [[Introduction%20to%20XML%20Projects%20(ELUG)#Workbench Project|Workbench project]] in Workbench, customize the generated mappings and descriptors, and reexport the EclipseLink project XML.
  
 +
{| class="Note oac_no_warn" width="80%" border="1" frame="hsides" rules="groups" cellpadding="3" frame="hsides" rules="groups"
 +
| align="left" |
 +
'''Note:''' Before you compile your generated classes, be sure to configure your IDE classpath to include <tt><</tt>''<tt>ECLIPSELINK_HOME</tt>''<tt>>\jlib\moxy\javax.xml.bind_2.0.0.jar</tt>. For example, see [[Using%20an%20Integrated%20Development%20Environment%20(ELUG)|Using an Integrated Development Environment]].
 +
|}
 +
</li>
 +
</ol>
  
  

Latest revision as of 15:07, 16 July 2012

Elug draft icon.png For the latest EclipseLink documentation, please see http://www.eclipse.org/eclipselink/documentation/



This section describes the various components that you must configure in order to create an XML project.

For information on how to create more than one type of EclipseLink projects, see Creating a Project.


Introduction to XML Project Creation

You can create a project using the Workbench or Java code.

We recommend using the Workbench to create projects and generate deployment XML or Java source versions of the project for use at run time. For more information on how to create a project using Workbench, see How to Create a Project Using the Workbench. For information on how to create a project using Java, see How to Create a Project Using Java.

You can use EclipseLink to create an XML project, if you have an XML schema (XSD) document, but no object model yet (see Creating an XML Project from an XML Schema). If you have both XSD and object model classes, you can create an XML project using the procedure described in How to Create a Project Using the Workbench

For more information, see Introduction to XML Projects.


Creating an XML Project from an XML Schema

EclipseLink 1.x supports JAXB 2.0 and uses the JAXB 2.0 schema compiler. You can use this JAXB compiler to generate POJO (Plain Old Java Objects) annotated with JAXB 2.0 mapping metadata. You can define and edit this JAXB metadata by embedding these annotations in your source code -- not the Eclipse Workbench.

To use the Eclipse Workbench to define XPath based mappings:

  1. Create an XML project.
  2. Import your schema and classes into the project.
  3. Define the mappings between your classes and schema.


The EclipseLink JAXB compiler generates JAXB-specific files and EclipseLink-specific files.

Optionally, open the generated workbench project), customize the generated mappings and descriptors, and reexport the EclipseLink project XML.


Note: Before you compile your generated classes, be sure to configure your IDE classpath to include <ECLIPSELINK_HOME>\jlib\moxy\javax.xml.bind_2.0.0.jar. For example, see Using an Integrated Development Environment.


How to Create an XML Project from an XML Schema Using the Command Line

To create a new, mapped Workbench project from an XML schema using JAXB from the command line, use the jaxb-compiler.cmd or jaxb-compiler.sh file (located in the <ECLIPSELINK_HOME>/bin directory) as follows:

  1. Using a text editor, edit the jaxb-compiler.cmd or jaxb-compiler.sh file to set proxy settings (if required).
    If you are using a schema that imports another schema by URL and you are operating behind a proxy, then you must uncomment the lines shown in the Proxy Settings in jaxb-compiler.cmd or Proxy Settings in jaxb-compiler.sh examples and edit them to set your proxy host (name or IP address) and port:
    Proxy Settings in jaxb-compiler.cmd

    @REM set JVM_ARGS=%JVM_ARGS% -DproxySet=true -Dhttp.proxyHost= -Dhttp.proxyPort=


    Proxy Settings in jaxb-compiler.sh

    JVM_ARGS="${JVM_ARGS} -DproxySet=true -Dhttp.proxyHost= -Dhttp.proxyPort="

  2. Execute the jaxb-compiler.cmd or jaxb-compiler.sh file (located in the <ECLIPSELINK_HOME>/bin directory).
    The EclipseLink JAXB compiler generates JAXB-specific files (see Working with JAXB-Specific Generated Files) and EclipseLink-specific files (see Working with EclipseLink-Specific Generated Files).
    The Generating an Object Model from a Schema with jaxb-compiler.cmd example illustrates how to generate an object model from a schema using the EclipseLink JAXB compiler. The EclipseLink JAXB Binding Compiler Arguments table lists the compiler arguments.
    Generating an Object Model from a Schema with jaxb-compiler.cmd

    jaxb-compiler.cmd [-options...] schemafile [-b bindingfile]


    EclipseLink JAXB Binding Compiler Arguments

    Argument Description Optional?

    -help

    Prints the help and usage information.

    Yes

    -version

    Prints the release version of the EclipseLink JAXB compiler.

    Yes

    -verbose

    The interfaces and classes generated. This argument is optional.

    Default: not verbose.

    Yes

    -customize

    The fully qualified path and file name of a standard JAXB customization file that you can use to override default JAXB compiler behavior.

    Yes

    -nv

    Do not preform strict validation of the input schemas.

    Yes

    -extension

    Allow vendor extensions. The compiler will not strictly follow the Compatibility Rules and Appendix E.2 or the JAXB specification.

    Yes

    -b

    Specify external bindings files (or directories).

    -b file1 -b file2 -b file3

    If you include a directory, the compiler will search **/*.xjb.

    Yes

    -d

    The directory for the generated files.

    Yes

    -p

    The target package.

    Yes

    -httpproxy

    Set an HTTP/HTTPS proxy.

    -httpproxy [user[:password]@]proxyHost:proxy:Port

    Yes

    -httpproxyfile

    Similar to -httpproxy, except that it takes a file (to protect the password).

    -httpproxyfile file

    Yes

    -classpath

    Specify the location of your class files

    Yes

    -catalog

    Specify the catalog files to resolve external entity references. The JAXB compiler supports TR9401, XCatalog, and OASIS XML catalog formats.

    -catalog filename

    Yes

    -customize

    The fully qualified path and file name of a standard JAXB customization file that you can use to override default JAXB compiler behavior.

    Yes

    -readonly

    The generated files will be in read-only mode.

    Yes

    -npa

    The package-level annotations 'will not' be generated (**/package-info.java).

    Yes

    -no-header

    The file header with timestamp will not be generated.

    Yes

    -xmlschmea

    The input schema will be treated as W3C schema (default).

    Yes

    -relaxng

    The input schema will be treated as RELAX NG

    Yes

    -relaxng-compact

    The input schmea will be treated as RELAX NG (compact syntax).

    Yes

    -wsdl

    The input schmea will be treated as WSDL and compile shemas inside of it.

    Yes

    -dtd

    The input schmea will be trated as XML DTD.

    Yes






  3. Optionally, open the generated Workbench project in Workbench, customize the generated mappings and descriptors, and reexport the EclipseLink project XML.

    Note: Before you compile your generated classes, be sure to configure your IDE classpath to include <ECLIPSELINK_HOME>\jlib\moxy\javax.xml.bind_2.0.0.jar. For example, see Using an Integrated Development Environment.



Copyright Statement

Back to the top