blob: 5949e8dced418a1a612940338533577116f2b440 [file] [log] [blame]
<?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);
?>