<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>org.eclipse.xsd.ecore.importer Read Me</title>
</head>
<body lang="EN-US">
<h3>Introduction</h3>
<p>This document describes how you can use scripts to generate code from XML Schema (xsd) files.  The 
script can be either a regular shell script that invokes <a href="#headlessApplication">Eclipse headless 
applications</a> or an Ant script that invokes the <a href="#antTasks">task</a> provided by this plugin.</p>

<h3><a name="overallComments">Overall Comments</a></h3>
<ul>
<li>If you didn't extract this plugin from CVS, the &quot;examples&quot; directory mentioned 
in this document is available in the XSD source plugin 
(org.eclipse.xsd.source_<i>&lt;version&gt;</i>/src/org.eclipse.xsd.ecore.importer_<i>&lt;version&gt;</i>).
<br/><br/></li>
<li>Before running your build scripts or the examples provided here, make sure you have the 2 
jar files required by this plugin (&quot;xsd.ecore.importer.jar&quot; and 
&quot;xsd.ecore.importer.tasks.jar&quot;) and also the 2 jar files required by the <tt>org.eclipse.emf.ant</tt> 
plugin (&quot;emf.ant.jar&quot; and &quot;emf.ant.tasks.jar&quot;).  If necessary, Eclipse 
can generate them for you.  All you need to do is to run the Ant script created by PDE when you right click on the manifest file 
and select &quot;PDE Tools&gt;Create Ant Build File&quot;.
<br/><br/></li>
<li>Although the applications and task mentioned here must be executed by Eclipse (usually in headless mode), they can 
work on files located in any directory.  In other words, your models, templates and other files don't need 
to be in the &quot;plugins&quot; directory nor in the workspace.
<br/><br/></li>
<li>In order to preserve the original state of this plugin's &quot;examples&quot; directory, you
should copy it to a different location and run the Ant scripts from there.
<br/><br/></li>
<li>Starting a new JVM process and invoking Eclipse are expensive operations.  Your build will 
perform better if you are able to group the steps that require Eclipse in a few scripts 
(one script would be ideal).  This is probably a reason to use Ant instead of invoking the 
applications - you can generate code for multiple models using one single Ant script.
<br/><br/></li>
<li>The &quot;examples/library&quot; directory contains xsd file, and shell and Ant scripts 
to generate their code.
</li>
</ul>

<h3><a name="headlessApplication">XSD and Generator Applications</a></h3>
<p>The application provided by this plugin generates the ecore and genmodel files from models defined
using XSD files.</p>
<table border="1" cellpadding="2" cellspacing="0" 
summary="Lists the details about the XSD application.">
  <tr><td colspan="2">XSD application details</td></tr>
	<tr><td>ID</td><td><tt>org.eclipse.xsd.ecore.importer.XSD2GenModel</tt></td></tr>
	<tr><td>Class</td><td><tt>org.eclipse.xsd.ecore.importer.XSDImporterApplication</tt></td></tr>
</table>
<p>To generate the actual Java code you will need to use a second application, provided by 
the &quot;org.eclipse.emf.codegen.ecore&quot; plugin.</p>
<table border="1" cellpadding="2" cellspacing="0" 
summary="Lists the details about the Generator application.">
  <tr><td colspan="2">Generator application details</td></tr>
	<tr><td>ID</td><td><tt>org.eclipse.emf.codegen.ecore.Generator</tt></td></tr>
	<tr><td>Class</td><td><tt>org.eclipse.emf.codegen.ecore.Generator</tt></td></tr>
</table>
<p>In order to run these or any other Eclipse application, you need to execute the following 
command (without the line breaks):</p>
<p>
eclipse
<br/>&nbsp;&nbsp;-noSplash
<br/>&nbsp;&nbsp;-data <i>&lt;full path to a workspace - ideally an empty directory&gt;</i>
<br/>&nbsp;&nbsp;-application <i>&lt;application ID&gt;</i>
<br/>&nbsp;&nbsp;<i>&lt;application arguments&gt;</i>
</p>
<p>In Windows you should execute <i>eclipsec</i> instead of <i>eclipse</i> in order to have
access to the application's console output.</p> 
<p>The directory &quot;examples/library/build&quot; has shell scripts that generate the code for
the model provided.  If you have any questions after reading and experimenting with it, look at the 
applications's javadoc for more details.  Also, check the application's class  
&quot;getUsage()&quot; method for the list of possible arguments.</p>


<h3><a name="antTasks">XSD Ant Task</a></h3>
<p>The XSD task details are:</p>
<table border="1" cellpadding="2" cellspacing="0" 
summary="Lists the details about the XSD task.">
	<tr><td>Name</td><td><tt>emf.XSD2Java</tt></td></tr>
	<tr><td>Class</td><td><tt>org.eclipse.xsd.ecore.importer.taskdefs.XSDGeneratorTask</tt></td></tr>
</table>
<p>This is the usual command line to run an Ant script using a headless Eclipse instance (remove the line breaks):</p>
<p>
eclipse
<br/>&nbsp;&nbsp;-noSplash 
<br/>&nbsp;&nbsp;-data <i>&lt;full path to a workspace - ideally an empty directory&gt;</i>
<br/>&nbsp;&nbsp;-application org.eclipse.ant.core.antRunner
<br/>&nbsp;&nbsp;-buildfile <i>&lt;full path to your script&gt;</i>
</p>
<p>In Windows you should execute <i>eclipsec</i> instead of <i>eclipse</i> in order to have
access to the Ant build script console output.</p>
<p>You can also use the Eclipse UI to execute an Ant script containing an EMF task.  This can be 
done by right-clicking the script and selecting 
<i>Run As &gt; Ant Build... &gt; JRE &gt; "Run in the same JRE as the workspace&quot;</i>.</p>
<p>The directory &quot;examples/library/build&quot; has an Ant script that generate the code for
the model provided.  The task's javadoc has lots of information you may find useful.</p>

</body>
</html>