carbidecpp20devenv/plugins/org.eclipse.xsd.cheatsheets_2.3.0.v200808251517/cheatsheets/GenerateEMFFromXSD.xml
author cawthron
Wed, 18 Mar 2009 17:21:00 -0500
changeset 1 82d1d1de1a01
permissions -rw-r--r--
import Carbide.c++
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     1
<?xml version="1.0" encoding="UTF-8" ?>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     2
<cheatsheet title="Generating an EMF Model from XML Schema">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     3
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     4
  <intro href="/org.eclipse.emf.doc/tutorials/xlibmod/xlibmod.html">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     5
    <description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     6
      This cheat sheet is a step-by-step description of how to generate an EMF
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     7
      model and editor from an XML Schema.
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     8
    </description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
     9
  </intro>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    10
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    11
  <item title="Set up the environment">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    12
  	<description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    13
  	  Your environment must be set up before you can perform the steps in this cheat sheet.
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    14
  	</description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    15
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    16
    <subitem
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    17
      label="Create an &quot;EMF Cheatsheet Data&quot; project in your workspace with the example &quot;library.xsd&quot; file."
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    18
      skip="true">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    19
      <action
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    20
        pluginId="org.eclipse.emf.cheatsheets"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    21
        class="org.eclipse.emf.cheatsheets.actions.CopyFileFromPluginAction"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    22
        param1="EMF Cheatsheet Data"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    23
        param2=""
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    24
        param3="org.eclipse.xsd.cheatsheets/archive/xsd/library.xsd" 
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    25
        translate="" />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    26
    </subitem>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    27
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    28
    <subitem
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    29
      when="true" 
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    30
      label="Delete or rename the following projects if they exist in your workspace: &quot;library.xsd&quot;, &quot;library.xsd.edit&quot;, &quot;library.xsd.editor&quot;."
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    31
      skip="true" />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    32
  </item>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    33
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    34
  <item
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    35
    title="Import the model from XML Schema"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    36
    href="/org.eclipse.emf.doc/tutorials/xlibmod/xlibmod.html#step1"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    37
    dialog="true"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    38
    skip="true">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    39
    <description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    40
      First, you must create a new &quot;library.xsd&quot; EMF project in your workspace, importing
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    41
      the schema to create the EMF model.
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    42
    </description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    43
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    44
    <subitem label="Select &quot;File &gt; New &gt; Project...&quot;. Expand &quot;Eclipse Modeling Framework&quot; and select &quot;EMF Project&quot;. Then, click &quot;Next&quot;." skip="true">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    45
      	<action
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    46
          pluginId="org.eclipse.emf.cheatsheets"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    47
          class="org.eclipse.emf.cheatsheets.actions.OpenEMFProjectWizardAction"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    48
          param1="library.xsd"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    49
          param2="org.eclipse.xsd.ecore.importer" 
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    50
          translate="" />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    51
    </subitem>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    52
    <subitem label="Enter &quot;library.xsd&quot; as the project name, then click &quot;Next&quot;." skip="false" />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    53
    <subitem label="Select &quot;XML Schema&quot;, then click &quot;Next&quot;." skip="false" />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    54
    <subitem label="Click &quot;Browse Workspace...&quot;, and expand &quot;EMF Cheatsheet Data&quot; to select &quot;library.xsd&quot;. Then click &quot;Next&quot;." skip="false" />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    55
    <subitem label="Select the package &quot;org.eclipse.example.library&quot;, then click &quot;Finish&quot;." skip="false" />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    56
  </item>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    57
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    58
  <item
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    59
    title="Generate the code"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    60
    href="/org.eclipse.emf.doc/tutorials/xlibmod/xlibmod.html#step2"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    61
    dialog="true"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    62
    skip="true">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    63
    <description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    64
      Generate the code to implement the model and an editor for it. The generator is automatically opened on completion of the wizard in the previous step.
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    65
    </description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    66
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    67
    <repeated-subitem values="Model,Edit,Editor">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    68
      <subitem label="In the generator, right click on &quot;Library&quot; and select &quot;Generate ${this} Code&quot;." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    69
    </repeated-subitem>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    70
    <subitem label="If automatic building has been disabled, select &quot;Project &gt; Build All&quot; to compile the generated code." skip="true">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    71
      <action
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    72
        pluginId="org.eclipse.emf.cheatsheets"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    73
        class="org.eclipse.emf.cheatsheets.actions.BuildAllProjectsAction" />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    74
    </subitem>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    75
  </item>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    76
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    77
  <item
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    78
    title="Run the generated editor"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    79
    href="/org.eclipse.emf.doc/tutorials/xlibmod/xlibmod.html#step4"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    80
    dialog="true"
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    81
    skip="true">
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    82
    <description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    83
      Now, you are set to run the generated editor and create a new library instance.
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    84
    </description>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    85
    <onCompletion>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    86
      Congratulations! You have succesfully created an EMF model from an XML Schema, generated the code, and created an instance of the model.
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    87
    </onCompletion> 
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    88
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    89
    <subitem label="Select the &quot;library.xsd&quot; project in the package explorer and invoke the &quot;Run &gt; Run As &gt; Eclipse Application&quot; menu item. This starts a runtime instance of Eclipse with the newly generated plug-ins available." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    90
    <subitem label="In the runtime instance, create a new general project called &quot;librarytest&quot;." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    91
    <subitem label="Right click &quot;librarytest&quot; and select &quot;New &gt; Other...&quot;." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    92
    <subitem label="Expand &quot;Example EMF Model Creation Wizards&quot; and select &quot;Library Model&quot;. Then, click &quot;Next&quot;." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    93
    <subitem label="Enter &quot;My.library&quot; as the file name, then click &quot;Next&quot;." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    94
    <subitem label="Select &quot;Library&quot;; as the model object, then click &quot;Finish&quot;." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    95
    <subitem label="The generated library editor is opened. Expand &quot;platform:/resource/librarytest/My.library&quot;. Right click &quot;Library&quot; and select &quot;New Child &gt; Writer&quot; to create a writer object in the library." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    96
    <subitem label="Create additional writers and books in the library, and edit the objects' properties in the properties view." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    97
    <subitem label="Select &quot;File > Save&quot; to save the instance." />
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    98
  </item>
82d1d1de1a01 import Carbide.c++
cawthron
parents:
diff changeset
    99
</cheatsheet>