| <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop' |
| |
| #***************************************************************************** |
| # |
| # Keys2Nested_AMW2ATL_doc.php |
| # |
| # Author: Marcos Didonet Del Fabro |
| # Date: 2005-05-29 |
| # |
| # Description: Type your page comments here - these are not sent to the browser |
| # |
| # |
| #**************************************************************************** |
| |
| # |
| # Begin: page-specific settings. Change these. |
| $pageTitle = "Transformation of relational tables into nested structures - HowTo"; |
| $pageKeywords = "RDBMS, XML, nesting, AMW, model weaving, model transformations, ATL"; |
| $pageAuthor = "Marcos Didonet Del Fabro"; |
| |
| # Paste your HTML content between the EOHTML markers! |
| $html = <<<EOHTML |
| |
| <!-- Main part --> |
| <div id="midcolumn"> |
| <table width="100%"> |
| <tr> |
| <td width="50%"> |
| <h1>$pageTitle</h1> |
| </td> |
| </tr> |
| </table> |
| |
| <p> |
| This example contains an extension of the core weaving metamodel to create correspondences between a metamodel with flat structures and |
| foreign keys relationshps (as in relational databases) to a metamodel that contains nested structures (as in XML). |
| It provides a HOT (higher-order transformation) that transforms a weaving model into |
| a transformation model. |
| </p> |
| <h3>Instructions</h3> |
| <p/> |
| <h4>Loading the weaving model into AMW:</h4> |
| |
| The weaving model (models/FK2Nested_AMW.amw) can be loaded by double-clicking on the file or by using the wizard. <p/> |
| The following metamodel extension needs to be loaded when using the wizard: |
| <ul class="midlist"> |
| <li> |
| dbtoxmlweavingmm.km3, |
| </li> |
| </ul> |
| </p> |
| There are some choices that need to be done in the wizard: |
| <ul class="midlist"> |
| <li> |
| WModel : DBModel, |
| </li> |
| <li> |
| WModelRefXMI : ModelRefXMILeft, and ModelRefXMIRight, respectively |
| </li> |
| <li> |
| In the page 3/3, it is necessary to select the 'left' and 'right' metamodels to link them with |
| the correponding files. <br/> |
| Left metamodel: FKMetaSchema.ecore.<br/> |
| Right metamodel: NestedMetaSchema.ecore. |
| </li> |
| </ul> |
| <i>Remark:</i> |
| The extensions that do not appear directly in the wizard must be choosen using the "Browse in the workspace" button.<p/> |
| |
| <h4>Executing the higher-order transformation</h4> |
| </br> |
| The file hot/AMWtoATL.atl is a higher-order transformation. |
| There is a launch configuration file (*.launch) with the input and output models.</br> |
| The transformation produces a transformation model output_atl/ATL-model.ecore. |
| The output model must be extracted into the ATL concrete syntax (i.e., produce an ATL file). |
| The model is extracted by right-clicking in the ecore model in the "AM3 Resource Navigator" view and |
| by clicking in "Extract ATL-0.2 model into ATL-0.2 file". This action produces the ATL-model.atl file. |
| </br> |
| |
| <p/> |
| <h4>Executing the produced transformation</h4></br> |
| The ATL-model.atl transformation takes the model models/libraryFK.ecore |
| (conforms to metamodels/FKMetaSchema.ecore) as input and it produces models/libraryNested.ecore (conforms to |
| metamodels/NestedMetaSchema.ecore). There is a launch configuration that preconfigures the transformation settings. |
| </br> |
| <p/> |
| <i>Remark: </i> |
| This use case has been updated to be compatible with the latest releases and sources of ATL (ATL2006). |
| |
| |
| |
| </div> |
| |
| EOHTML; |
| |
| |
| # Generate the web page |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); |
| ?> |