Skip to main content
summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorEd Willink2016-05-25 08:48:14 +0000
committerEd Willink2016-06-07 15:05:34 +0000
commit2b6cebaf10f58640ed6bfcda31afecbed4b2348f (patch)
tree67f57667056d3b57dc4ed3802a82ef13d41ce2fd /doc
parent43742ef948b3303068b2a4497231385a407c7eeb (diff)
downloadorg.eclipse.qvtd-2b6cebaf10f58640ed6bfcda31afecbed4b2348f.tar.gz
org.eclipse.qvtd-2b6cebaf10f58640ed6bfcda31afecbed4b2348f.tar.xz
org.eclipse.qvtd-2b6cebaf10f58640ed6bfcda31afecbed4b2348f.zip
[releng] 0.13.0 documentation0.13.0RC4
Diffstat (limited to 'doc')
-rw-r--r--doc/org.eclipse.qvtd.doc/.settings/QVTd Documentation.launch32
-rw-r--r--doc/org.eclipse.qvtd.doc/build/.gitignore2
-rw-r--r--doc/org.eclipse.qvtd.doc/build/qvtd.textile263
-rw-r--r--doc/org.eclipse.qvtd.doc/build/qvtd.xml423
-rw-r--r--doc/org.eclipse.qvtd.doc/doc/0000-introduction.textile262
-rw-r--r--doc/org.eclipse.qvtd.doc/doc/images/QVThorizontalAlphabet.pngbin0 -> 42469 bytes
-rw-r--r--doc/org.eclipse.qvtd.doc/doc/images/QVTrEditor.pngbin0 -> 31507 bytes
-rw-r--r--doc/org.eclipse.qvtd.doc/doc/images/QVTrLaunch.pngbin0 -> 50267 bytes
-rw-r--r--doc/org.eclipse.qvtd.doc/doc/images/QVTrProject.pngbin0 -> 21076 bytes
-rw-r--r--doc/org.eclipse.qvtd.doc/doc/qvtd-index.txt2
-rw-r--r--doc/org.eclipse.qvtd.doc/help/Extensions.html149
-rw-r--r--doc/org.eclipse.qvtd.doc/help/GettingStarted.html267
-rw-r--r--doc/org.eclipse.qvtd.doc/help/HowDoesItWork.html100
-rw-r--r--doc/org.eclipse.qvtd.doc/help/Overview.html95
-rw-r--r--doc/org.eclipse.qvtd.doc/help/OverviewandGettingStarted.html198
-rw-r--r--doc/org.eclipse.qvtd.doc/help/WhoisBehindEclipseQVTd.html32
-rw-r--r--doc/org.eclipse.qvtd.doc/help/book.css239
-rw-r--r--doc/org.eclipse.qvtd.doc/help/glossary.html48
-rw-r--r--doc/org.eclipse.qvtd.doc/help/images/QVThorizontalAlphabet.pngbin0 -> 42469 bytes
-rw-r--r--doc/org.eclipse.qvtd.doc/help/images/QVTrEditor.pngbin0 -> 31507 bytes
-rw-r--r--doc/org.eclipse.qvtd.doc/help/images/QVTrLaunch.pngbin0 -> 50267 bytes
-rw-r--r--doc/org.eclipse.qvtd.doc/help/images/QVTrProject.pngbin0 -> 21076 bytes
-rw-r--r--doc/org.eclipse.qvtd.doc/help/index.html24
-rw-r--r--doc/org.eclipse.qvtd.doc/help/index.xml1
-rw-r--r--doc/org.eclipse.qvtd.doc/html/book.css239
-rw-r--r--doc/org.eclipse.qvtd.doc/html/images/QVThorizontalAlphabet.pngbin0 -> 42469 bytes
-rw-r--r--doc/org.eclipse.qvtd.doc/html/images/QVTrEditor.pngbin0 -> 31507 bytes
-rw-r--r--doc/org.eclipse.qvtd.doc/html/images/QVTrLaunch.pngbin0 -> 50267 bytes
-rw-r--r--doc/org.eclipse.qvtd.doc/html/images/QVTrProject.pngbin0 -> 21076 bytes
-rw-r--r--doc/org.eclipse.qvtd.doc/html/qvtd.html739
-rw-r--r--doc/org.eclipse.qvtd.doc/manual/qvtd.pdfbin0 -> 143663 bytes
-rw-r--r--doc/org.eclipse.qvtd.doc/styles/book.css239
-rw-r--r--doc/org.eclipse.qvtd.doc/styles/component.xsl29
-rw-r--r--doc/org.eclipse.qvtd.doc/styles/eclipse.xsl360
-rw-r--r--doc/org.eclipse.qvtd.doc/styles/eclipsehelp.xsl58
-rw-r--r--doc/org.eclipse.qvtd.doc/styles/html.xsl44
-rw-r--r--doc/org.eclipse.qvtd.doc/styles/inline.xsl17
-rw-r--r--doc/org.eclipse.qvtd.doc/styles/titlepage.xsl100
-rw-r--r--doc/org.eclipse.qvtd.doc/styles/xmpp.xsl276
-rw-r--r--doc/org.eclipse.qvtd.doc/textileBuild.xml285
-rw-r--r--doc/org.eclipse.qvtd.doc/toc.xml45
41 files changed, 4469 insertions, 99 deletions
diff --git a/doc/org.eclipse.qvtd.doc/.settings/QVTd Documentation.launch b/doc/org.eclipse.qvtd.doc/.settings/QVTd Documentation.launch
new file mode 100644
index 000000000..76da7ef91
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/.settings/QVTd Documentation.launch
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.ant.AntLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.qvtd.doc/textileBuild.xml"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
+<listEntry value="org.eclipse.ui.externaltools.launchGroup"/>
+</listAttribute>
+<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.5.0_22&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#13;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.ant.ui.classpathentry.antHome&quot;&gt;&#13;&#10;&lt;memento default=&quot;true&quot;/&gt;&#13;&#10;&lt;/runtimeClasspathEntry&gt;&#13;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.ant.ui.classpathentry.extraClasspathEntries&quot;&gt;&#13;&#10;&lt;memento/&gt;&#13;&#10;&lt;/runtimeClasspathEntry&gt;&#13;&#10;"/>
+<listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.variableClasspathEntry&quot;&gt;&#13;&#10;&lt;memento path=&quot;3&quot; variableString=&quot;${eclipse_home}/plugins&quot;/&gt;&#13;&#10;&lt;/runtimeClasspathEntry&gt;&#13;&#10;"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ant.internal.launching.remote.InternalAntRunner"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value=""/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx1g"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LAUNCH_CONFIGURATION_BUILD_SCOPE" value="${none}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.qvtd.doc/textileBuild.xml}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-Dtarget.location=${target_home}"/>
+<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
+<stringAttribute key="process_factory_id" value="org.eclipse.ant.ui.remoteAntProcessFactory"/>
+</launchConfiguration>
diff --git a/doc/org.eclipse.qvtd.doc/build/.gitignore b/doc/org.eclipse.qvtd.doc/build/.gitignore
new file mode 100644
index 000000000..4ce74e370
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/build/.gitignore
@@ -0,0 +1,2 @@
+/qvtd.textile
+/qvtd.xml
diff --git a/doc/org.eclipse.qvtd.doc/build/qvtd.textile b/doc/org.eclipse.qvtd.doc/build/qvtd.textile
new file mode 100644
index 000000000..5c33a185d
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/build/qvtd.textile
@@ -0,0 +1,263 @@
+h1. Overview and Getting Started
+
+For a quick demonstration of QVTc or QVTr editing and execution go to "Getting Started":#GettingStarted.
+
+A PDF version of this documentation is available at "QVTd 0.13.0 Documentation":http://download.eclipse.org/qvtd/doc/0.13.0/qvtd.pdf.
+
+h2. What is QVT(Query/View/Transformation)?
+
+The "Query/View/Transformation language":http://www.omg.org/spec/QVT/ is the model transformation language specified by the OMG(Object Management Group) (Object Management Group). Or rather it is three specified languages to which Eclipse QVTd adds five intermediate languages.
+
+* QVTo - Operation Mappings is an imperative transformation language supported by the "Eclipse QVTo project":https://projects.eclipse.org/projects/modeling.mmt.qvt-oml.
+
+* QVTr - Relations is a rich declarative transformation language.
+
+* QVTc - Core is a simple core declarative transformation language.
+
+QVTc and QVTr, generically referred to as QVTd, are supported the "Eclipse QVTd project":https://projects.eclipse.org/projects/modeling.mmt.qvtd (QVT Declarative) and documented here.
+
+!{width:55%}images/QVThorizontalAlphabet.png(QVT Horizontal alphabet)!
+
+The Eclipse QVTd support involves a transformation chain from QVTr via QVTc to executable form. The stages in this chain are:
+
+* QVTu - a unidirectional declarative transformation language - a simplification of QVTc.
+
+* QVTm - a minimal declarative transformation language - a further simplification of QVTc.
+
+* QVTp - a partitioned declarative transformation language - a further simplification of QVTc.
+
+* QVTs - a graphical declarative transformation language suitable for schedule determination.
+
+* QVTi - an executable imperative transformation language - a variant of QVTc.
+
+* Java - the ultimate executable form
+
+Note that QVTu, QVTm, QVTp, QVTs and QVTi are not defined by the current OMG specification. It is possible that they may contribute to a future specification.
+
+h3. Modeling Layers
+
+* _EMF is Modeled Structure_
+
+The Eclipse Modeling Framework (EMF(Eclipse Modeling Framework)) supports the definition of structural meta-models and the subsequent use of models conforming to these meta-models. EMF also supports generating of Java code to represent the meta-models. Additional Java code can be provided to add behavior to the structural meta-models.
+
+* _OCL is EMF and Modeled Behavior_
+
+OCL(Object Constraint Language) provides a modeling language that allows the behavior to be embedded within the structural meta-models or provided as a complement to those meta-models. As a modeling language, OCL understands the models and so OCL code is much more compact than the equivalent Java. OCL code can be statically checked, whereas the corresponding Java code often uses reflection and so cannot be checked.
+
+* _QVT is Modeled Model Execution_
+
+Eclipse QVTd is an implementation of the OMG QVT 1.3 specification for use with Ecore and UML meta-models.
+
+Eclipse QVTd exploits the extensibility of the Eclipse OCL Pivot model.
+
+h2. How Does It Work?
+
+QVTr and QVTc are programming languages, so you will want to edit them, execute them and debug them.
+
+h3. Editing
+
+Eclipse QVTd provides QVTr, QVTc and QVTi editors developed using Xtext. The QVTc editor may be used to view or maintain the intermediate QVTu, QVTm and QVTp models.
+
+The editor may be opened conventionally by double clicking a *.qvtr, *.qvtc, or *.qvti text file name in an Explorer view. This displays the source text with syntax highlighting and an outline of the Abstract Syntax.
+
+The QVTc and QVTi editors may also be used to view *.qvtcas and *.qvtias XMI files as source text.
+
+h4. Status
+
+These editors have been available since QVTd 0.9.0. They are useful, but currently have only limited well-formedness validation.
+
+Editing *.qvtcas and *.qvtias files should be possible but is not recommended in the current release.
+
+Hopefully 1.0.0 (Oxygen) will offer UMLX as a graphical alternative to the QVTr textual exposition of a transformation.
+
+h3. Execution
+
+The 0.13.0 release provides one QVTr and one QVTc example project that be installed and executed. However execution functionality is very new and not suitable for more than experimental use.
+
+h4. Status
+
+QVTi execution has been available since 0.11.0 (Luna). It demonstrates the extensibility of the Eclipse OCL interpreter, Java code generator and debugger. QVTi is a low level intermediate; it is not intended as a primary programming language.
+
+A very preliminary form of QVTc execution was available in 0.12.0 (Mars) using an Epsilon prototype of the transformation chain.
+
+0.13.0 (Neon) introduces a Java re-implementation of the full transformation chain so that QVTr and QVTc transformations can be executed. It is only suitable for researchers.
+
+The current execution supports only creation of output models. Checking, updated, incremental, in-place execution and views are work in progress.
+
+Hopefully 1.0.0 (Oxygen) will have more substantial functionality and will be used internally to replace some of the manual Java transformations by QVTr / UMLX transformations.
+
+h3. Debugger
+
+The QVTi debugger extends the OCL debugger.
+
+h4. Status
+
+The further extension to provide QVTc and QVTr debugging is work in progress.
+
+
+h2. Who is Behind Eclipse QVTd?
+
+Eclipse QVTd is an Open Source project. All code has been developed under the auspices of Eclipse.
+
+Eclipse QVTd is a largely one man development by Ed Willink who has been the OMG QVT RTF(Revision Task Force) (Revision Task Force) chair since QVT 1.2. Expect further revisions of the QVT specification to exploit feedback from the Eclipse QVTo and QVTd projects.
+
+There is now a significant personnel and corporate overlap between the Eclipse QVTd committers and the OMG QVT RTF and so Eclipse OCL is pioneering solutions to many of the under-specification problems in the OCL specification.
+
+Ed Willink is also project lead of the Eclipse OCL where the new pivot-based implementation prototypes solutions to many problems with the OMG OCL specification for which Ed Willink has been the RTF chair since OCL 2.4.
+
+The many aspects of OCL and QVTd are converging; help welcome.
+
+h2(#GettingStarted). Getting Started
+
+*Warning: Eclipse QVTd 0.13.0 execution is not sufficiently mature for more than experimental/research usage.*
+
+For a very quick demonstration of QVTc or QVTr you may install the appropriate example project.
+
+h3. QVTr Example Project
+
+Invoke *File->New->Example...* then select *Examples* then *QVT (Query/View/Transformation Language) Projects* then select either *QVTr HSTM2FSTM Project* then *Finish* to create a small example project called *org.eclipse.qvtd.examples.qvtrelation.hstm2fstm*.
+
+A QVTr or QVTc editor opens to show the transformation.
+
+!{width:50%}images/QVTrEditor.png(QVTr Editor)!
+
+The image shows one of the mappings with hovertext elaborating the declaration referenced by *name*.
+
+The QVT editors extend the OCL editor and so the OCL context menu provides useful functionality such as saving the transformation in Abstyract Syntax form.
+
+A QVTr project is currently just a normal Java project. (A QVTd nature may be added in the future to support auto-building.)
+
+!{width:60%}images/QVTrProject.png(QVTr Project)!
+
+The QVTr Hierarchical to Flat State Machine example contains
+* *HierarchicalStateMachine2FlatStateMachine.qvtr* - the transformation
+* *HierarchicalStateMachine.ecore* - the source metamodel
+* *FlatStateMachine.ecore* - the target metamodel
+* *hier.xmi* - an example model to exercise the execution
+* *expected.xmi* - the expected execution result
+* *HierarchicalStateMachine2FlatStateMachine.qvtr.launch* - a launch configuration for execution
+
+You may execute the transformation on the *hier.xmi* input by invoking *Run->Run Configurations...* then *QVTr (Relations) transformation* then *HierarchicalStateMachine2FlatStateMachine.qvtr*.
+
+!{width:40%}images/QVTrLaunch.png(QVTr Launch)!
+
+The launch is currently cluttered by an excess of development information and not yet implemented facilities. The important fields are:
+
+h4. Project / Transformation
+
+The project name provides a default name against which other filenames are resolved to reduce screen clutter.
+
+The transformation name is the transformation to be executed.
+
+The mode can only be enforce creation/overwrite of the output model at present.
+
+The direction selects the output direction when executing a multi-directional transformation.
+
+h4. Inputs
+
+The file bound to each input domain must be specified.
+
+h4. New outputs
+
+The file bound to each output domain must be specified.
+
+h4. Intermediates
+
+The location of each intermediate file in the transformation chain is identified. Their default location is a *temp* subfolder of the transformation's parent folder. You can change them.
+
+If you click *Compile* you can see the compilation progress as the grey *Stale* texts change to green *Ready* text.
+
+h4. Build
+
+The *Interpreted* check box selects between interpreted execution (fast start, slow run) or code generated execution (slow start, fast run).
+
+The interpreted compilation synthesizes a QVTc middle metamodel and a genmodel.
+
+* *HierarchicalStateMachine2FlatStateMachine.ecore*
+* *HierarchicalStateMachine2FlatStateMachine.genmodel*
+
+The code generated compilation additionally synthesizes a Java class to implement the transformation and the Java classes for the QVTc middle model.
+
+* *HierarchicalStateMachine2FlatStateMachine.java*
+
+The generated files are generated to a distinct *src-gen* tree which you may need to refresh to see all files. Java problem markers come and go during the synthesis and build. The errors should all be gone before execution proceeds. Elimination of warnings is a work in progress.
+
+h5. Run
+
+Clicking on *Run* will *Compile* automatically if you have not already done so.
+
+The result should be a *flat.xmi* file that is similar to the *expected.xmi* file.
+
+h3. QVTc Example Project
+
+The OMG QVTc variant of the traditional UML to RDBMS transformation may be installed by:
+
+Invoke *File->New->Example...* then select *Examples* then *QVT (Query/View/Transformation Language) Projects* then select either *QVTc UML2RDBMS Project* then *Finish* to create a small example project called *org.eclipse.qvtd.examples.qvtcore.uml2rdbms*.
+
+The QVTc editor opens to show the transformation.
+
+The QVTc tooling is very similar to the QVTr tooling. The main difference is that for QVTc the middle model and its genmodel are designed by the user, whereas the QVTr middle model and genmodel are synthesized automatically. If code generated Java execution is required, using the genmodel to generate Java code for the middle model is again a manual user responsibility.
+
+h2(#Extensions). Extensions
+
+h3(#Import). Import
+
+The Eclipse support for OCL, QVTc and QVTr adds an import statement to define the location of the metamodels.
+
+bc.
+import SimpleUML : 'SimpleUml.ecore'::umlMM;
+
+This specifies that the *SimpleUml.ecore* metamodel is loaded. The metamodel root prefixes a navigation to select an imported element. In the example above the *umlMM* package is selected and made available with a *SimpleUML* alias. If alias-name and colon separator are omitted, the imported element is accessible by its own name.
+
+The quoted name may be importing-file-relative file name as above, or a an absolute path such as *platform:/resource/org.eclipse.emf.examples.library/model/extlibrary.ecore* or a registered namespace URI such as *http://www.eclipse.org/emf/2002/Ecore*.
+
+h3(#Packages). Packages
+
+The Eclipse support for QVTc and QVTr supports declaration of transformations within a package hierarchy. A Transformation therefore extends just a Class, not a Class and a Package as specified by OMG. The Transformation is declared nested within one of more Packages by qualifying the transformation name with one of more package names. For compatibility, if no Package is declared, the Transformation is contained by a Package with a blank name.
+
+The package hierarchy declared for the Transformation is re-used to define the Java package hierarchy when Java code is generated from the Transformation.
+
+h3(#QVTc Middle Model). QVTc Middle Model
+
+The QVTc part of the specification is unclear as to how the middle metamodel is defined.
+
+Eclipse QVTc imports the middle metamodel in the same way as any other metamodel. This is then used as a used-package of an unnamed domain.
+
+bc.
+import SimpleUML : 'SimpleUml.ecore'::umlMM;
+import SimpleUMLtoRDBMS : 'SimpleUMLtoRDBMS.ecore'::uml2rdbms;
+import SimpleRDBMS : 'SimpleRdbms.ecore'::rdbmsMM;
+
+bc.
+transformation umlRdbms {
+ uml imports SimpleUML;
+ rdbms imports SimpleRDBMS;
+ imports SimpleUMLtoRDBMS;
+}
+
+h3(#QVTr Middle Model). QVTr Middle Model
+
+The QVTr part of the specification appears to specify how the middle metamodel is synthesized. The specification however ignores details such as Models, Packages and Collections. There is also a lack of clarity as to whether the trace is the minimum required to support non-re-invocation of mappings or whether it should contain everything necessary for minimal incremental re-execution. The Eclipse QVTd implementation is work-in-progress.
+
+h3(#Collection Templates). QVTr Collection Templates
+
+The QVTr part of the specification omits almost all detail of the semantics of Collections and in particular Collection Templates. The implementation in Eclipse QVTd is therefore language design work-in-progress rather than implementation work-in-progress.
+
+h3(#OCL/EMOF Metamodels). OCL/EMOF Metamodels
+
+The QVT specification provides layered metamodels for QVTrelation, QVTtemplate, QVTcore and QVTbase layered on top of EssentialOCL and EMOF. The EssentialOCL and EMOF metamodels are very strongly influenced by OCL and MOF specifications, but are ot formally compliant.
+
+Eclipse QVTd provides layered metamodels for QVTrelation, QVTtemplate, QVTcore and QVTbase layered on top of Pivot which is derived from the UML 2.5 metamodel and work towards a future OCL specification. (QVTimperative shares some QVTcore functionality through a QVTcoreBase abstraction.)
+
+A consequence of extending the Eclipse OCL Pivot is that Eclipse QVTd has preliminary support for templated types, extensible libraries and safe navigation.
+
+h3(#this). this
+
+QVTo defines *this* as a reserved variable for the instance of the executing transformation.
+
+Eclipse QVTd provides *this* for QVTc and QVTr and thereby solves an OCL compatibility problem with respect to the source of an operation call of a query. In Eclipse QVTd, queries, using the Function class, are operations of the Transformation class and are invoked with an implicit *this*. An explicit *this* can be used, and is used when viewing the equivalent source text for the Abstract Syntax model.
+
+
+
+
+
diff --git a/doc/org.eclipse.qvtd.doc/build/qvtd.xml b/doc/org.eclipse.qvtd.doc/build/qvtd.xml
new file mode 100644
index 000000000..0e886e4ed
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/build/qvtd.xml
@@ -0,0 +1,423 @@
+<?xml version='1.0' ?><!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<book>
+ <title>QVT Declarative Documentation</title>
+ <chapter id="OverviewandGettingStarted">
+ <title>Overview and Getting Started</title>
+ <para>For a quick demonstration of QVTc or QVTr editing and execution go to
+ <link linkend="GettingStarted">Getting Started</link>.
+ </para>
+ <para>A PDF version of this documentation is available at
+ <ulink url="http://download.eclipse.org/qvtd/doc/0.13.0/qvtd.pdf">QVTd 0.13.0 Documentation</ulink>.
+ </para>
+ <section id="WhatisQVTQueryViewTransformation">
+ <title>What is
+ <glossterm>QVT</glossterm>?
+ </title>
+ <para>The
+ <ulink url="http://www.omg.org/spec/QVT/">Query/View/Transformation language</ulink> is the model transformation language specified by the
+ <glossterm>OMG</glossterm> (Object Management Group). Or rather it is three specified languages to which Eclipse QVTd adds five intermediate languages.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>QVTo – Operation Mappings is an imperative transformation language supported by the
+ <ulink url="https://projects.eclipse.org/projects/modeling.mmt.qvt-oml">Eclipse QVTo project</ulink>.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>QVTr – Relations is a rich declarative transformation language.</para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>QVTc – Core is a simple core declarative transformation language.</para>
+ </listitem>
+ </itemizedlist>
+ <para>QVTc and QVTr, generically referred to as QVTd, are supported the
+ <ulink url="https://projects.eclipse.org/projects/modeling.mmt.qvtd">Eclipse QVTd project</ulink> (QVT Declarative) and documented here.
+ </para>
+ <para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/QVThorizontalAlphabet.png" scale="55"/>
+ </imageobject>
+ </mediaobject>
+ </para>
+ <para>The Eclipse QVTd support involves a transformation chain from QVTr via QVTc to executable form. The stages in this chain are:</para>
+ <itemizedlist>
+ <listitem>
+ <para>QVTu – a unidirectional declarative transformation language – a simplification of QVTc.</para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>QVTm – a minimal declarative transformation language – a further simplification of QVTc.</para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>QVTp – a partitioned declarative transformation language – a further simplification of QVTc.</para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>QVTs – a graphical declarative transformation language suitable for schedule determination.</para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>QVTi – an executable imperative transformation language – a variant of QVTc.</para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>Java – the ultimate executable form</para>
+ </listitem>
+ </itemizedlist>
+ <para>Note that QVTu, QVTm, QVTp, QVTs and QVTi are not defined by the current OMG specification. It is possible that they may contribute to a future specification.</para>
+ <section id="ModelingLayers">
+ <title>Modeling Layers</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>EMF is Modeled Structure</emphasis>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>The Eclipse Modeling Framework (
+ <glossterm>EMF</glossterm>) supports the definition of structural meta-models and the subsequent use of models conforming to these meta-models. EMF also supports generating of Java code to represent the meta-models. Additional Java code can be provided to add behavior to the structural meta-models.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>OCL is EMF and Modeled Behavior</emphasis>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ <glossterm>OCL</glossterm> provides a modeling language that allows the behavior to be embedded within the structural meta-models or provided as a complement to those meta-models. As a modeling language, OCL understands the models and so OCL code is much more compact than the equivalent Java. OCL code can be statically checked, whereas the corresponding Java code often uses reflection and so cannot be checked.
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>QVT is Modeled Model Execution</emphasis>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>Eclipse QVTd is an implementation of the OMG QVT 1.3 specification for use with Ecore and UML meta-models.</para>
+ <para>Eclipse QVTd exploits the extensibility of the Eclipse OCL Pivot model.</para>
+ </section>
+ </section>
+ <section id="HowDoesItWork">
+ <title>How Does It Work?</title>
+ <para>QVTr and QVTc are programming languages, so you will want to edit them, execute them and debug them.</para>
+ <section id="Editing">
+ <title>Editing</title>
+ <para>Eclipse QVTd provides QVTr, QVTc and QVTi editors developed using Xtext. The QVTc editor may be used to view or maintain the intermediate QVTu, QVTm and QVTp models.</para>
+ <para>The editor may be opened conventionally by double clicking a *.qvtr, *.qvtc, or *.qvti text file name in an Explorer view. This displays the source text with syntax highlighting and an outline of the Abstract Syntax.</para>
+ <para>The QVTc and QVTi editors may also be used to view *.qvtcas and *.qvtias XMI files as source text. </para>
+ <section id="Status">
+ <title>Status</title>
+ <para>These editors have been available since QVTd 0.9.0. They are useful, but currently have only limited well-formedness validation.</para>
+ <para>Editing *.qvtcas and *.qvtias files should be possible but is not recommended in the current release.</para>
+ <para>Hopefully 1.0.0 (Oxygen) will offer UMLX as a graphical alternative to the QVTr textual exposition of a transformation.</para>
+ </section>
+ </section>
+ <section id="Execution">
+ <title>Execution</title>
+ <para>The 0.13.0 release provides one QVTr and one QVTc example project that be installed and executed. However execution functionality is very new and not suitable for more than experimental use.</para>
+ <section id="Status2">
+ <title>Status</title>
+ <para>QVTi execution has been available since 0.11.0 (Luna). It demonstrates the extensibility of the Eclipse OCL interpreter, Java code generator and debugger. QVTi is a low level intermediate; it is not intended as a primary programming language.</para>
+ <para>A very preliminary form of QVTc execution was available in 0.12.0 (Mars) using an Epsilon prototype of the transformation chain.</para>
+ <para>0.13.0 (Neon) introduces a Java re-implementation of the full transformation chain so that QVTr and QVTc transformations can be executed. It is only suitable for researchers.</para>
+ <para>The current execution supports only creation of output models. Checking, updated, incremental, in-place execution and views are work in progress.</para>
+ <para>Hopefully 1.0.0 (Oxygen) will have more substantial functionality and will be used internally to replace some of the manual Java transformations by QVTr / UMLX transformations.</para>
+ </section>
+ </section>
+ <section id="Debugger">
+ <title>Debugger</title>
+ <para>The QVTi debugger extends the OCL debugger.</para>
+ <section id="Status3">
+ <title>Status</title>
+ <para>The further extension to provide QVTc and QVTr debugging is work in progress.</para>
+ </section>
+ </section>
+ </section>
+ <section id="WhoisBehindEclipseQVTd">
+ <title>Who is Behind Eclipse QVTd?</title>
+ <para>Eclipse QVTd is an Open Source project. All code has been developed under the auspices of Eclipse.</para>
+ <para>Eclipse QVTd is a largely one man development by Ed Willink who has been the OMG QVT
+ <glossterm>RTF</glossterm> (Revision Task Force) chair since QVT 1.2. Expect further revisions of the QVT specification to exploit feedback from the Eclipse QVTo and QVTd projects.
+ </para>
+ <para>There is now a significant personnel and corporate overlap between the Eclipse QVTd committers and the OMG QVT RTF and so Eclipse OCL is pioneering solutions to many of the under-specification problems in the OCL specification.</para>
+ <para>Ed Willink is also project lead of the Eclipse OCL where the new pivot-based implementation prototypes solutions to many problems with the OMG OCL specification for which Ed Willink has been the RTF chair since OCL 2.4.</para>
+ <para>The many aspects of OCL and QVTd are converging; help welcome.</para>
+ </section>
+ <section id="GettingStarted">
+ <title>Getting Started</title>
+ <para>
+ <emphasis role="bold">Warning: Eclipse QVTd 0.13.0 execution is not sufficiently mature for more than experimental/research usage.</emphasis>
+ </para>
+ <para>For a very quick demonstration of QVTc or QVTr you may install the appropriate example project.</para>
+ <section id="QVTrExampleProject">
+ <title>QVTr Example Project</title>
+ <para>Invoke
+ <emphasis role="bold">File-&gt;New-&gt;Example...</emphasis> then select
+ <emphasis role="bold">Examples</emphasis> then
+ <emphasis role="bold">QVT (Query/View/Transformation Language) Projects</emphasis> then select either
+ <emphasis role="bold">QVTr HSTM2FSTM Project</emphasis> then
+ <emphasis role="bold">Finish</emphasis> to create a small example project called
+ <emphasis role="bold">org.eclipse.qvtd.examples.qvtrelation.hstm2fstm</emphasis>.
+ </para>
+ <para>A QVTr or QVTc editor opens to show the transformation.</para>
+ <para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/QVTrEditor.png" scale="50"/>
+ </imageobject>
+ </mediaobject>
+ </para>
+ <para>The image shows one of the mappings with hovertext elaborating the declaration referenced by
+ <emphasis role="bold">name</emphasis>.
+ </para>
+ <para>The QVT editors extend the OCL editor and so the OCL context menu provides useful functionality such as saving the transformation in Abstyract Syntax form.</para>
+ <para>A QVTr project is currently just a normal Java project. (A QVTd nature may be added in the future to support auto-building.)</para>
+ <para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/QVTrProject.png" scale="60"/>
+ </imageobject>
+ </mediaobject>
+ </para>
+ <para>The QVTr Hierarchical to Flat State Machine example contains</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="bold">HierarchicalStateMachine2FlatStateMachine.qvtr</emphasis> - the transformation
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">HierarchicalStateMachine.ecore</emphasis> - the source metamodel
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">FlatStateMachine.ecore</emphasis> - the target metamodel
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">hier.xmi</emphasis> - an example model to exercise the execution
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">expected.xmi</emphasis> - the expected execution result
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">HierarchicalStateMachine2FlatStateMachine.qvtr.launch</emphasis> - a launch configuration for execution
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>You may execute the transformation on the
+ <emphasis role="bold">hier.xmi</emphasis> input by invoking
+ <emphasis role="bold">Run-&gt;Run Configurations...</emphasis> then
+ <emphasis role="bold">QVTr (Relations) transformation</emphasis> then
+ <emphasis role="bold">HierarchicalStateMachine2FlatStateMachine.qvtr</emphasis>.
+ </para>
+ <para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/QVTrLaunch.png" scale="40"/>
+ </imageobject>
+ </mediaobject>
+ </para>
+ <para>The launch is currently cluttered by an excess of development information and not yet implemented facilities. The important fields are:</para>
+ <section id="ProjectTransformation">
+ <title>Project / Transformation</title>
+ <para>The project name provides a default name against which other filenames are resolved to reduce screen clutter.</para>
+ <para>The transformation name is the transformation to be executed.</para>
+ <para>The mode can only be enforce creation/overwrite of the output model at present.</para>
+ <para>The direction selects the output direction when executing a multi-directional transformation.</para>
+ </section>
+ <section id="Inputs">
+ <title>Inputs</title>
+ <para>The file bound to each input domain must be specified.</para>
+ </section>
+ <section id="Newoutputs">
+ <title>New outputs</title>
+ <para>The file bound to each output domain must be specified.</para>
+ </section>
+ <section id="Intermediates">
+ <title>Intermediates</title>
+ <para>The location of each intermediate file in the transformation chain is identified. Their default location is a
+ <emphasis role="bold">temp</emphasis> subfolder of the transformation’s parent folder. You can change them.
+ </para>
+ <para>If you click
+ <emphasis role="bold">Compile</emphasis> you can see the compilation progress as the grey
+ <emphasis role="bold">Stale</emphasis> texts change to green
+ <emphasis role="bold">Ready</emphasis> text.
+ </para>
+ </section>
+ <section id="Build">
+ <title>Build</title>
+ <para>The
+ <emphasis role="bold">Interpreted</emphasis> check box selects between interpreted execution (fast start, slow run) or code generated execution (slow start, fast run).
+ </para>
+ <para>The interpreted compilation synthesizes a QVTc middle metamodel and a genmodel.</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="bold">HierarchicalStateMachine2FlatStateMachine.ecore</emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="bold">HierarchicalStateMachine2FlatStateMachine.genmodel</emphasis>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>The code generated compilation additionally synthesizes a Java class to implement the transformation and the Java classes for the QVTc middle model.</para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="bold">HierarchicalStateMachine2FlatStateMachine.java</emphasis>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>The generated files are generated to a distinct
+ <emphasis role="bold">src-gen</emphasis> tree which you may need to refresh to see all files. Java problem markers come and go during the synthesis and build. The errors should all be gone before execution proceeds. Elimination of warnings is a work in progress.
+ </para>
+ <section id="Run">
+ <title>Run</title>
+ <para>Clicking on
+ <emphasis role="bold">Run</emphasis> will
+ <emphasis role="bold">Compile</emphasis> automatically if you have not already done so.
+ </para>
+ <para>The result should be a
+ <emphasis role="bold">flat.xmi</emphasis> file that is similar to the
+ <emphasis role="bold">expected.xmi</emphasis> file.
+ </para>
+ </section>
+ </section>
+ </section>
+ <section id="QVTcExampleProject">
+ <title>QVTc Example Project</title>
+ <para>The OMG QVTc variant of the traditional UML to RDBMS transformation may be installed by:</para>
+ <para>Invoke
+ <emphasis role="bold">File-&gt;New-&gt;Example...</emphasis> then select
+ <emphasis role="bold">Examples</emphasis> then
+ <emphasis role="bold">QVT (Query/View/Transformation Language) Projects</emphasis> then select either
+ <emphasis role="bold">QVTc UML2RDBMS Project</emphasis> then
+ <emphasis role="bold">Finish</emphasis> to create a small example project called
+ <emphasis role="bold">org.eclipse.qvtd.examples.qvtcore.uml2rdbms</emphasis>.
+ </para>
+ <para>The QVTc editor opens to show the transformation.</para>
+ <para>The QVTc tooling is very similar to the QVTr tooling. The main difference is that for QVTc the middle model and its genmodel are designed by the user, whereas the QVTr middle model and genmodel are synthesized automatically. If code generated Java execution is required, using the genmodel to generate Java code for the middle model is again a manual user responsibility. </para>
+ </section>
+ </section>
+ <section id="Extensions">
+ <title>Extensions</title>
+ <section id="Import">
+ <title>Import</title>
+ <para>The Eclipse support for OCL, QVTc and QVTr adds an import statement to define the location of the metamodels.</para>
+ <literallayout><code>import SimpleUML : 'SimpleUml.ecore'::umlMM;
+</code></literallayout>
+ <para>This specifies that the
+ <emphasis role="bold">SimpleUml.ecore</emphasis> metamodel is loaded. The metamodel root prefixes a navigation to select an imported element. In the example above the
+ <emphasis role="bold">umlMM</emphasis> package is selected and made available with a
+ <emphasis role="bold">SimpleUML</emphasis> alias. If alias-name and colon separator are omitted, the imported element is accessible by its own name.
+ </para>
+ <para>The quoted name may be importing-file-relative file name as above, or a an absolute path such as
+ <emphasis role="bold">platform:/resource/org.eclipse.emf.examples.library/model/extlibrary.ecore</emphasis> or a registered namespace URI such as
+ <emphasis role="bold">http://www.eclipse.org/emf/2002/Ecore</emphasis>.
+ </para>
+ </section>
+ <section id="Packages">
+ <title>Packages</title>
+ <para>The Eclipse support for QVTc and QVTr supports declaration of transformations within a package hierarchy. A Transformation therefore extends just a Class, not a Class and a Package as specified by OMG. The Transformation is declared nested within one of more Packages by qualifying the transformation name with one of more package names. For compatibility, if no Package is declared, the Transformation is contained by a Package with a blank name.</para>
+ <para>The package hierarchy declared for the Transformation is re-used to define the Java package hierarchy when Java code is generated from the Transformation.</para>
+ </section>
+ <section id="QVTc Middle Model">
+ <title>QVTc Middle Model</title>
+ <para>The QVTc part of the specification is unclear as to how the middle metamodel is defined.</para>
+ <para>Eclipse QVTc imports the middle metamodel in the same way as any other metamodel. This is then used as a used-package of an unnamed domain.</para>
+ <literallayout><code>import SimpleUML : 'SimpleUml.ecore'::umlMM;
+import SimpleUMLtoRDBMS : 'SimpleUMLtoRDBMS.ecore'::uml2rdbms;
+import SimpleRDBMS : 'SimpleRdbms.ecore'::rdbmsMM;
+</code></literallayout>
+ <literallayout><code>transformation umlRdbms {
+ uml imports SimpleUML;
+ rdbms imports SimpleRDBMS;
+ imports SimpleUMLtoRDBMS;
+}
+</code></literallayout>
+ </section>
+ <section id="QVTr Middle Model">
+ <title>QVTr Middle Model</title>
+ <para>The QVTr part of the specification appears to specify how the middle metamodel is synthesized. The specification however ignores details such as Models, Packages and Collections. There is also a lack of clarity as to whether the trace is the minimum required to support non-re-invocation of mappings or whether it should contain everything necessary for minimal incremental re-execution. The Eclipse QVTd implementation is work-in-progress.</para>
+ </section>
+ <section id="Collection Templates">
+ <title>QVTr Collection Templates</title>
+ <para>The QVTr part of the specification omits almost all detail of the semantics of Collections and in particular Collection Templates. The implementation in Eclipse QVTd is therefore language design work-in-progress rather than implementation work-in-progress.</para>
+ </section>
+ <section id="OCL/EMOF Metamodels">
+ <title>OCL/EMOF Metamodels</title>
+ <para>The QVT specification provides layered metamodels for QVTrelation, QVTtemplate, QVTcore and QVTbase layered on top of EssentialOCL and EMOF. The EssentialOCL and EMOF metamodels are very strongly influenced by OCL and MOF specifications, but are ot formally compliant.</para>
+ <para>Eclipse QVTd provides layered metamodels for QVTrelation, QVTtemplate, QVTcore and QVTbase layered on top of Pivot which is derived from the UML 2.5 metamodel and work towards a future OCL specification. (QVTimperative shares some QVTcore functionality through a QVTcoreBase abstraction.)</para>
+ <para>A consequence of extending the Eclipse OCL Pivot is that Eclipse QVTd has preliminary support for templated types, extensible libraries and safe navigation.</para>
+ </section>
+ <section id="this">
+ <title>this</title>
+ <para>QVTo defines
+ <emphasis role="bold">this</emphasis> as a reserved variable for the instance of the executing transformation.
+ </para>
+ <para>Eclipse QVTd provides
+ <emphasis role="bold">this</emphasis> for QVTc and QVTr and thereby solves an OCL compatibility problem with respect to the source of an operation call of a query. In Eclipse QVTd, queries, using the Function class, are operations of the Transformation class and are invoked with an implicit
+ <emphasis role="bold">this</emphasis>. An explicit
+ <emphasis role="bold">this</emphasis> can be used, and is used when viewing the equivalent source text for the Abstract Syntax model.
+ </para>
+ </section>
+ </section>
+ </chapter>
+ <appendix id="glossary">
+ <title id="glossary-end">Glossary</title>
+ <glosslist>
+ <glossentry>
+ <glossterm>EMF</glossterm>
+ <glossdef>
+ <para>Eclipse Modeling Framework</para>
+ </glossdef>
+ </glossentry>
+ <glossentry>
+ <glossterm>OCL</glossterm>
+ <glossdef>
+ <para>Object Constraint Language</para>
+ </glossdef>
+ </glossentry>
+ <glossentry>
+ <glossterm>OMG</glossterm>
+ <glossdef>
+ <para>Object Management Group</para>
+ </glossdef>
+ </glossentry>
+ <glossentry>
+ <glossterm>QVT</glossterm>
+ <glossdef>
+ <para>Query/View/Transformation</para>
+ </glossdef>
+ </glossentry>
+ <glossentry>
+ <glossterm>RTF</glossterm>
+ <glossdef>
+ <para>Revision Task Force</para>
+ </glossdef>
+ </glossentry>
+ </glosslist>
+ </appendix>
+</book> \ No newline at end of file
diff --git a/doc/org.eclipse.qvtd.doc/doc/0000-introduction.textile b/doc/org.eclipse.qvtd.doc/doc/0000-introduction.textile
new file mode 100644
index 000000000..6ab1c85e9
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/doc/0000-introduction.textile
@@ -0,0 +1,262 @@
+h1. Overview and Getting Started
+
+For a quick demonstration of QVTc or QVTr editing and execution go to "Getting Started":#GettingStarted.
+
+A PDF version of this documentation is available at "QVTd 0.13.0 Documentation":http://download.eclipse.org/qvtd/doc/0.13.0/qvtd.pdf.
+
+h2. What is QVT(Query/View/Transformation)?
+
+The "Query/View/Transformation language":http://www.omg.org/spec/QVT/ is the model transformation language specified by the OMG(Object Management Group) (Object Management Group). Or rather it is three specified languages to which Eclipse QVTd adds five intermediate languages.
+
+* QVTo - Operation Mappings is an imperative transformation language supported by the "Eclipse QVTo project":https://projects.eclipse.org/projects/modeling.mmt.qvt-oml.
+
+* QVTr - Relations is a rich declarative transformation language.
+
+* QVTc - Core is a simple core declarative transformation language.
+
+QVTc and QVTr, generically referred to as QVTd, are supported the "Eclipse QVTd project":https://projects.eclipse.org/projects/modeling.mmt.qvtd (QVT Declarative) and documented here.
+
+!{width:55%}images/QVThorizontalAlphabet.png(QVT Horizontal alphabet)!
+
+The Eclipse QVTd support involves a transformation chain from QVTr via QVTc to executable form. The stages in this chain are:
+
+* QVTu - a unidirectional declarative transformation language - a simplification of QVTc.
+
+* QVTm - a minimal declarative transformation language - a further simplification of QVTc.
+
+* QVTp - a partitioned declarative transformation language - a further simplification of QVTc.
+
+* QVTs - a graphical declarative transformation language suitable for schedule determination.
+
+* QVTi - an executable imperative transformation language - a variant of QVTc.
+
+* Java - the ultimate executable form
+
+Note that QVTu, QVTm, QVTp, QVTs and QVTi are not defined by the current OMG specification. It is possible that they may contribute to a future specification.
+
+h3. Modeling Layers
+
+* _EMF is Modeled Structure_
+
+The Eclipse Modeling Framework (EMF(Eclipse Modeling Framework)) supports the definition of structural meta-models and the subsequent use of models conforming to these meta-models. EMF also supports generating of Java code to represent the meta-models. Additional Java code can be provided to add behavior to the structural meta-models.
+
+* _OCL is EMF and Modeled Behavior_
+
+OCL(Object Constraint Language) provides a modeling language that allows the behavior to be embedded within the structural meta-models or provided as a complement to those meta-models. As a modeling language, OCL understands the models and so OCL code is much more compact than the equivalent Java. OCL code can be statically checked, whereas the corresponding Java code often uses reflection and so cannot be checked.
+
+* _QVT is Modeled Model Execution_
+
+Eclipse QVTd is an implementation of the OMG QVT 1.3 specification for use with Ecore and UML meta-models.
+
+Eclipse QVTd exploits the extensibility of the Eclipse OCL Pivot model.
+
+h2. How Does It Work?
+
+QVTr and QVTc are programming languages, so you will want to edit them, execute them and debug them.
+
+h3. Editing
+
+Eclipse QVTd provides QVTr, QVTc and QVTi editors developed using Xtext. The QVTc editor may be used to view or maintain the intermediate QVTu, QVTm and QVTp models.
+
+The editor may be opened conventionally by double clicking a *.qvtr, *.qvtc, or *.qvti text file name in an Explorer view. This displays the source text with syntax highlighting and an outline of the Abstract Syntax.
+
+The QVTc and QVTi editors may also be used to view *.qvtcas and *.qvtias XMI files as source text.
+
+h4. Status
+
+These editors have been available since QVTd 0.9.0. They are useful, but currently have only limited well-formedness validation.
+
+Editing *.qvtcas and *.qvtias files should be possible but is not recommended in the current release.
+
+Hopefully 1.0.0 (Oxygen) will offer UMLX as a graphical alternative to the QVTr textual exposition of a transformation.
+
+h3. Execution
+
+The 0.13.0 release provides one QVTr and one QVTc example project that be installed and executed. However execution functionality is very new and not suitable for more than experimental use.
+
+h4. Status
+
+QVTi execution has been available since 0.11.0 (Luna). It demonstrates the extensibility of the Eclipse OCL interpreter, Java code generator and debugger. QVTi is a low level intermediate; it is not intended as a primary programming language.
+
+A very preliminary form of QVTc execution was available in 0.12.0 (Mars) using an Epsilon prototype of the transformation chain.
+
+0.13.0 (Neon) introduces a Java re-implementation of the full transformation chain so that QVTr and QVTc transformations can be executed. It is only suitable for researchers.
+
+The current execution supports only creation of output models. Checking, updated, incremental, in-place execution and views are work in progress.
+
+Hopefully 1.0.0 (Oxygen) will have more substantial functionality and will be used internally to replace some of the manual Java transformations by QVTr / UMLX transformations.
+
+h3. Debugger
+
+The QVTi debugger extends the OCL debugger.
+
+h4. Status
+
+The further extension to provide QVTc and QVTr debugging is work in progress.
+
+
+h2. Who is Behind Eclipse QVTd?
+
+Eclipse QVTd is an Open Source project. All code has been developed under the auspices of Eclipse.
+
+Eclipse QVTd is a largely one man development by Ed Willink who has been the OMG QVT RTF(Revision Task Force) (Revision Task Force) chair since QVT 1.2. Expect further revisions of the QVT specification to exploit feedback from the Eclipse QVTo and QVTd projects.
+
+There is now a significant personnel and corporate overlap between the Eclipse QVTd committers and the OMG QVT RTF and so Eclipse OCL is pioneering solutions to many of the under-specification problems in the OCL specification.
+
+Ed Willink is also project lead of the Eclipse OCL where the new pivot-based implementation prototypes solutions to many problems with the OMG OCL specification for which Ed Willink has been the RTF chair since OCL 2.4.
+
+The many aspects of OCL and QVTd are converging; help welcome.
+
+h2(#GettingStarted). Getting Started
+
+*Warning: Eclipse QVTd 0.13.0 execution is not sufficiently mature for more than experimental/research usage.*
+
+For a very quick demonstration of QVTc or QVTr you may install the appropriate example project.
+
+h3. QVTr Example Project
+
+Invoke *File->New->Example...* then select *Examples* then *QVT (Query/View/Transformation Language) Projects* then select either *QVTr HSTM2FSTM Project* then *Finish* to create a small example project called *org.eclipse.qvtd.examples.qvtrelation.hstm2fstm*.
+
+A QVTr or QVTc editor opens to show the transformation.
+
+!{width:50%}images/QVTrEditor.png(QVTr Editor)!
+
+The image shows one of the mappings with hovertext elaborating the declaration referenced by *name*.
+
+The QVT editors extend the OCL editor and so the OCL context menu provides useful functionality such as saving the transformation in Abstyract Syntax form.
+
+A QVTr project is currently just a normal Java project. (A QVTd nature may be added in the future to support auto-building.)
+
+!{width:60%}images/QVTrProject.png(QVTr Project)!
+
+The QVTr Hierarchical to Flat State Machine example contains
+* *HierarchicalStateMachine2FlatStateMachine.qvtr* - the transformation
+* *HierarchicalStateMachine.ecore* - the source metamodel
+* *FlatStateMachine.ecore* - the target metamodel
+* *hier.xmi* - an example model to exercise the execution
+* *expected.xmi* - the expected execution result
+* *HierarchicalStateMachine2FlatStateMachine.qvtr.launch* - a launch configuration for execution
+
+You may execute the transformation on the *hier.xmi* input by invoking *Run->Run Configurations...* then *QVTr (Relations) transformation* then *HierarchicalStateMachine2FlatStateMachine.qvtr*.
+
+!{width:40%}images/QVTrLaunch.png(QVTr Launch)!
+
+The launch is currently cluttered by an excess of development information and not yet implemented facilities. The important fields are:
+
+h4. Project / Transformation
+
+The project name provides a default name against which other filenames are resolved to reduce screen clutter.
+
+The transformation name is the transformation to be executed.
+
+The mode can only be enforce creation/overwrite of the output model at present.
+
+The direction selects the output direction when executing a multi-directional transformation.
+
+h4. Inputs
+
+The file bound to each input domain must be specified.
+
+h4. New outputs
+
+The file bound to each output domain must be specified.
+
+h4. Intermediates
+
+The location of each intermediate file in the transformation chain is identified. Their default location is a *temp* subfolder of the transformation's parent folder. You can change them.
+
+If you click *Compile* you can see the compilation progress as the grey *Stale* texts change to green *Ready* text.
+
+h4. Build
+
+The *Interpreted* check box selects between interpreted execution (fast start, slow run) or code generated execution (slow start, fast run).
+
+The interpreted compilation synthesizes a QVTc middle metamodel and a genmodel.
+
+* *HierarchicalStateMachine2FlatStateMachine.ecore*
+* *HierarchicalStateMachine2FlatStateMachine.genmodel*
+
+The code generated compilation additionally synthesizes a Java class to implement the transformation and the Java classes for the QVTc middle model.
+
+* *HierarchicalStateMachine2FlatStateMachine.java*
+
+The generated files are generated to a distinct *src-gen* tree which you may need to refresh to see all files. Java problem markers come and go during the synthesis and build. The errors should all be gone before execution proceeds. Elimination of warnings is a work in progress.
+
+h5. Run
+
+Clicking on *Run* will *Compile* automatically if you have not already done so.
+
+The result should be a *flat.xmi* file that is similar to the *expected.xmi* file.
+
+h3. QVTc Example Project
+
+The OMG QVTc variant of the traditional UML to RDBMS transformation may be installed by:
+
+Invoke *File->New->Example...* then select *Examples* then *QVT (Query/View/Transformation Language) Projects* then select either *QVTc UML2RDBMS Project* then *Finish* to create a small example project called *org.eclipse.qvtd.examples.qvtcore.uml2rdbms*.
+
+The QVTc editor opens to show the transformation.
+
+The QVTc tooling is very similar to the QVTr tooling. The main difference is that for QVTc the middle model and its genmodel are designed by the user, whereas the QVTr middle model and genmodel are synthesized automatically. If code generated Java execution is required, using the genmodel to generate Java code for the middle model is again a manual user responsibility.
+
+h2(#Extensions). Extensions
+
+h3(#Import). Import
+
+The Eclipse support for OCL, QVTc and QVTr adds an import statement to define the location of the metamodels.
+
+bc.
+import SimpleUML : 'SimpleUml.ecore'::umlMM;
+
+This specifies that the *SimpleUml.ecore* metamodel is loaded. The metamodel root prefixes a navigation to select an imported element. In the example above the *umlMM* package is selected and made available with a *SimpleUML* alias. If alias-name and colon separator are omitted, the imported element is accessible by its own name.
+
+The quoted name may be importing-file-relative file name as above, or a an absolute path such as *platform:/resource/org.eclipse.emf.examples.library/model/extlibrary.ecore* or a registered namespace URI such as *http://www.eclipse.org/emf/2002/Ecore*.
+
+h3(#Packages). Packages
+
+The Eclipse support for QVTc and QVTr supports declaration of transformations within a package hierarchy. A Transformation therefore extends just a Class, not a Class and a Package as specified by OMG. The Transformation is declared nested within one of more Packages by qualifying the transformation name with one of more package names. For compatibility, if no Package is declared, the Transformation is contained by a Package with a blank name.
+
+The package hierarchy declared for the Transformation is re-used to define the Java package hierarchy when Java code is generated from the Transformation.
+
+h3(#QVTc Middle Model). QVTc Middle Model
+
+The QVTc part of the specification is unclear as to how the middle metamodel is defined.
+
+Eclipse QVTc imports the middle metamodel in the same way as any other metamodel. This is then used as a used-package of an unnamed domain.
+
+bc.
+import SimpleUML : 'SimpleUml.ecore'::umlMM;
+import SimpleUMLtoRDBMS : 'SimpleUMLtoRDBMS.ecore'::uml2rdbms;
+import SimpleRDBMS : 'SimpleRdbms.ecore'::rdbmsMM;
+
+bc.
+transformation umlRdbms {
+ uml imports SimpleUML;
+ rdbms imports SimpleRDBMS;
+ imports SimpleUMLtoRDBMS;
+}
+
+h3(#QVTr Middle Model). QVTr Middle Model
+
+The QVTr part of the specification appears to specify how the middle metamodel is synthesized. The specification however ignores details such as Models, Packages and Collections. There is also a lack of clarity as to whether the trace is the minimum required to support non-re-invocation of mappings or whether it should contain everything necessary for minimal incremental re-execution. The Eclipse QVTd implementation is work-in-progress.
+
+h3(#Collection Templates). QVTr Collection Templates
+
+The QVTr part of the specification omits almost all detail of the semantics of Collections and in particular Collection Templates. The implementation in Eclipse QVTd is therefore language design work-in-progress rather than implementation work-in-progress.
+
+h3(#OCL/EMOF Metamodels). OCL/EMOF Metamodels
+
+The QVT specification provides layered metamodels for QVTrelation, QVTtemplate, QVTcore and QVTbase layered on top of EssentialOCL and EMOF. The EssentialOCL and EMOF metamodels are very strongly influenced by OCL and MOF specifications, but are ot formally compliant.
+
+Eclipse QVTd provides layered metamodels for QVTrelation, QVTtemplate, QVTcore and QVTbase layered on top of Pivot which is derived from the UML 2.5 metamodel and work towards a future OCL specification. (QVTimperative shares some QVTcore functionality through a QVTcoreBase abstraction.)
+
+A consequence of extending the Eclipse OCL Pivot is that Eclipse QVTd has preliminary support for templated types, extensible libraries and safe navigation.
+
+h3(#this). this
+
+QVTo defines *this* as a reserved variable for the instance of the executing transformation.
+
+Eclipse QVTd provides *this* for QVTc and QVTr and thereby solves an OCL compatibility problem with respect to the source of an operation call of a query. In Eclipse QVTd, queries, using the Function class, are operations of the Transformation class and are invoked with an implicit *this*. An explicit *this* can be used, and is used when viewing the equivalent source text for the Abstract Syntax model.
+
+
+
+
diff --git a/doc/org.eclipse.qvtd.doc/doc/images/QVThorizontalAlphabet.png b/doc/org.eclipse.qvtd.doc/doc/images/QVThorizontalAlphabet.png
new file mode 100644
index 000000000..5393a46e5
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/doc/images/QVThorizontalAlphabet.png
Binary files differ
diff --git a/doc/org.eclipse.qvtd.doc/doc/images/QVTrEditor.png b/doc/org.eclipse.qvtd.doc/doc/images/QVTrEditor.png
new file mode 100644
index 000000000..b81b441b2
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/doc/images/QVTrEditor.png
Binary files differ
diff --git a/doc/org.eclipse.qvtd.doc/doc/images/QVTrLaunch.png b/doc/org.eclipse.qvtd.doc/doc/images/QVTrLaunch.png
new file mode 100644
index 000000000..e6321027e
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/doc/images/QVTrLaunch.png
Binary files differ
diff --git a/doc/org.eclipse.qvtd.doc/doc/images/QVTrProject.png b/doc/org.eclipse.qvtd.doc/doc/images/QVTrProject.png
new file mode 100644
index 000000000..66d01fe02
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/doc/images/QVTrProject.png
Binary files differ
diff --git a/doc/org.eclipse.qvtd.doc/doc/qvtd-index.txt b/doc/org.eclipse.qvtd.doc/doc/qvtd-index.txt
new file mode 100644
index 000000000..c25621f35
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/doc/qvtd-index.txt
@@ -0,0 +1,2 @@
+0000-introduction.textile
+
diff --git a/doc/org.eclipse.qvtd.doc/help/Extensions.html b/doc/org.eclipse.qvtd.doc/help/Extensions.html
new file mode 100644
index 000000000..0bcfe7a8c
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/help/Extensions.html
@@ -0,0 +1,149 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Extensions</title>
+<link href="book.css" rel="stylesheet" type="text/css">
+<meta content="DocBook XSL Stylesheets V1.75.1" name="generator">
+<link rel="home" href="index.html" title="QVT Declarative Documentation">
+<link rel="up" href="OverviewandGettingStarted.html" title="Overview and Getting Started">
+<link rel="prev" href="GettingStarted.html" title="Getting Started">
+<link rel="next" href="glossary.html" title="Appendix&nbsp;A.&nbsp;Glossary">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<h1 xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">Extensions</h1>
+<div class="section" title="Extensions">
+<div class="titlepage">
+<div>
+<div>
+<h2 class="title" style="clear: both">
+<a name="Extensions"></a>Extensions</h2>
+</div>
+</div>
+</div>
+<div class="section" title="Import">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="Import"></a>Import</h3>
+</div>
+</div>
+</div>
+<p>The Eclipse support for OCL, QVTc and QVTr adds an import statement to define the location of the metamodels.</p>
+<div class="literallayout">
+<p>
+<code class="code">import&nbsp;SimpleUML&nbsp;:&nbsp;'SimpleUml.ecore'::umlMM;<br>
+
+</code>
+</p>
+</div>
+<p>This specifies that the
+ <span class="bold"><strong>SimpleUml.ecore</strong></span> metamodel is loaded. The metamodel root prefixes a navigation to select an imported element. In the example above the
+ <span class="bold"><strong>umlMM</strong></span> package is selected and made available with a
+ <span class="bold"><strong>SimpleUML</strong></span> alias. If alias-name and colon separator are omitted, the imported element is accessible by its own name.
+ </p>
+<p>The quoted name may be importing-file-relative file name as above, or a an absolute path such as
+ <span class="bold"><strong>platform:/resource/org.eclipse.emf.examples.library/model/extlibrary.ecore</strong></span> or a registered namespace URI such as
+ <span class="bold"><strong>http://www.eclipse.org/emf/2002/Ecore</strong></span>.
+ </p>
+</div>
+<div class="section" title="Packages">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="Packages"></a>Packages</h3>
+</div>
+</div>
+</div>
+<p>The Eclipse support for QVTc and QVTr supports declaration of transformations within a package hierarchy. A Transformation therefore extends just a Class, not a Class and a Package as specified by OMG. The Transformation is declared nested within one of more Packages by qualifying the transformation name with one of more package names. For compatibility, if no Package is declared, the Transformation is contained by a Package with a blank name.</p>
+<p>The package hierarchy declared for the Transformation is re-used to define the Java package hierarchy when Java code is generated from the Transformation.</p>
+</div>
+<div class="section" title="QVTc Middle Model">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="QVTc Middle Model"></a>QVTc Middle Model</h3>
+</div>
+</div>
+</div>
+<p>The QVTc part of the specification is unclear as to how the middle metamodel is defined.</p>
+<p>Eclipse QVTc imports the middle metamodel in the same way as any other metamodel. This is then used as a used-package of an unnamed domain.</p>
+<div class="literallayout">
+<p>
+<code class="code">import&nbsp;SimpleUML&nbsp;:&nbsp;'SimpleUml.ecore'::umlMM;<br>
+import&nbsp;SimpleUMLtoRDBMS&nbsp;:&nbsp;'SimpleUMLtoRDBMS.ecore'::uml2rdbms;<br>
+import&nbsp;SimpleRDBMS&nbsp;:&nbsp;'SimpleRdbms.ecore'::rdbmsMM;<br>
+
+</code>
+</p>
+</div>
+<div class="literallayout">
+<p>
+<code class="code">transformation&nbsp;umlRdbms&nbsp;{<br>
+ uml&nbsp;imports&nbsp;SimpleUML;<br>
+ rdbms&nbsp;imports&nbsp;SimpleRDBMS;<br>
+ imports&nbsp;SimpleUMLtoRDBMS;<br>
+}<br>
+
+</code>
+</p>
+</div>
+</div>
+<div class="section" title="QVTr Middle Model">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="QVTr Middle Model"></a>QVTr Middle Model</h3>
+</div>
+</div>
+</div>
+<p>The QVTr part of the specification appears to specify how the middle metamodel is synthesized. The specification however ignores details such as Models, Packages and Collections. There is also a lack of clarity as to whether the trace is the minimum required to support non-re-invocation of mappings or whether it should contain everything necessary for minimal incremental re-execution. The Eclipse QVTd implementation is work-in-progress.</p>
+</div>
+<div class="section" title="QVTr Collection Templates">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="Collection Templates"></a>QVTr Collection Templates</h3>
+</div>
+</div>
+</div>
+<p>The QVTr part of the specification omits almost all detail of the semantics of Collections and in particular Collection Templates. The implementation in Eclipse QVTd is therefore language design work-in-progress rather than implementation work-in-progress.</p>
+</div>
+<div class="section" title="OCL/EMOF Metamodels">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="OCL/EMOF Metamodels"></a>OCL/EMOF Metamodels</h3>
+</div>
+</div>
+</div>
+<p>The QVT specification provides layered metamodels for QVTrelation, QVTtemplate, QVTcore and QVTbase layered on top of EssentialOCL and EMOF. The EssentialOCL and EMOF metamodels are very strongly influenced by OCL and MOF specifications, but are ot formally compliant.</p>
+<p>Eclipse QVTd provides layered metamodels for QVTrelation, QVTtemplate, QVTcore and QVTbase layered on top of Pivot which is derived from the UML 2.5 metamodel and work towards a future OCL specification. (QVTimperative shares some QVTcore functionality through a QVTcoreBase abstraction.)</p>
+<p>A consequence of extending the Eclipse OCL Pivot is that Eclipse QVTd has preliminary support for templated types, extensible libraries and safe navigation.</p>
+</div>
+<div class="section" title="this">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="this"></a>this</h3>
+</div>
+</div>
+</div>
+<p>QVTo defines
+ <span class="bold"><strong>this</strong></span> as a reserved variable for the instance of the executing transformation.
+ </p>
+<p>Eclipse QVTd provides
+ <span class="bold"><strong>this</strong></span> for QVTc and QVTr and thereby solves an OCL compatibility problem with respect to the source of an operation call of a query. In Eclipse QVTd, queries, using the Function class, are operations of the Transformation class and are invoked with an implicit
+ <span class="bold"><strong>this</strong></span>. An explicit
+ <span class="bold"><strong>this</strong></span> can be used, and is used when viewing the equivalent source text for the Abstract Syntax model.
+ </p>
+</div>
+</div>
+</body>
+</html>
diff --git a/doc/org.eclipse.qvtd.doc/help/GettingStarted.html b/doc/org.eclipse.qvtd.doc/help/GettingStarted.html
new file mode 100644
index 000000000..c72dc712b
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/help/GettingStarted.html
@@ -0,0 +1,267 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Getting Started</title>
+<link href="book.css" rel="stylesheet" type="text/css">
+<meta content="DocBook XSL Stylesheets V1.75.1" name="generator">
+<link rel="home" href="index.html" title="QVT Declarative Documentation">
+<link rel="up" href="OverviewandGettingStarted.html" title="Overview and Getting Started">
+<link rel="prev" href="WhoisBehindEclipseQVTd.html" title="Who is Behind Eclipse QVTd?">
+<link rel="next" href="Extensions.html" title="Extensions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<h1 xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">Getting Started</h1>
+<div class="section" title="Getting Started">
+<div class="titlepage">
+<div>
+<div>
+<h2 class="title" style="clear: both">
+<a name="GettingStarted"></a>Getting Started</h2>
+</div>
+</div>
+</div>
+<p>
+
+<span class="bold"><strong>Warning: Eclipse QVTd 0.13.0 execution is not sufficiently mature for more than experimental/research usage.</strong></span>
+
+</p>
+<p>For a very quick demonstration of QVTc or QVTr you may install the appropriate example project.</p>
+<div class="section" title="QVTr Example Project">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="QVTrExampleProject"></a>QVTr Example Project</h3>
+</div>
+</div>
+</div>
+<p>Invoke
+ <span class="bold"><strong>File-&gt;New-&gt;Example...</strong></span> then select
+ <span class="bold"><strong>Examples</strong></span> then
+ <span class="bold"><strong>QVT (Query/View/Transformation Language) Projects</strong></span> then select either
+ <span class="bold"><strong>QVTr HSTM2FSTM Project</strong></span> then
+ <span class="bold"><strong>Finish</strong></span> to create a small example project called
+ <span class="bold"><strong>org.eclipse.qvtd.examples.qvtrelation.hstm2fstm</strong></span>.
+ </p>
+<p>A QVTr or QVTc editor opens to show the transformation.</p>
+<p>
+
+</p>
+<div class="mediaobject">
+<img src="images/QVTrEditor.png"></div>
+<p>
+
+</p>
+<p>The image shows one of the mappings with hovertext elaborating the declaration referenced by
+ <span class="bold"><strong>name</strong></span>.
+ </p>
+<p>The QVT editors extend the OCL editor and so the OCL context menu provides useful functionality such as saving the transformation in Abstyract Syntax form.</p>
+<p>A QVTr project is currently just a normal Java project. (A QVTd nature may be added in the future to support auto-building.)</p>
+<p>
+
+</p>
+<div class="mediaobject">
+<img src="images/QVTrProject.png"></div>
+<p>
+
+</p>
+<p>The QVTr Hierarchical to Flat State Machine example contains</p>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>
+
+<span class="bold"><strong>HierarchicalStateMachine2FlatStateMachine.qvtr</strong></span> - the transformation
+ </p>
+</li>
+<li class="listitem">
+<p>
+
+<span class="bold"><strong>HierarchicalStateMachine.ecore</strong></span> - the source metamodel
+ </p>
+</li>
+<li class="listitem">
+<p>
+
+<span class="bold"><strong>FlatStateMachine.ecore</strong></span> - the target metamodel
+ </p>
+</li>
+<li class="listitem">
+<p>
+
+<span class="bold"><strong>hier.xmi</strong></span> - an example model to exercise the execution
+ </p>
+</li>
+<li class="listitem">
+<p>
+
+<span class="bold"><strong>expected.xmi</strong></span> - the expected execution result
+ </p>
+</li>
+<li class="listitem">
+<p>
+
+<span class="bold"><strong>HierarchicalStateMachine2FlatStateMachine.qvtr.launch</strong></span> - a launch configuration for execution
+ </p>
+</li>
+</ul>
+</div>
+<p>You may execute the transformation on the
+ <span class="bold"><strong>hier.xmi</strong></span> input by invoking
+ <span class="bold"><strong>Run-&gt;Run Configurations...</strong></span> then
+ <span class="bold"><strong>QVTr (Relations) transformation</strong></span> then
+ <span class="bold"><strong>HierarchicalStateMachine2FlatStateMachine.qvtr</strong></span>.
+ </p>
+<p>
+
+</p>
+<div class="mediaobject">
+<img src="images/QVTrLaunch.png"></div>
+<p>
+
+</p>
+<p>The launch is currently cluttered by an excess of development information and not yet implemented facilities. The important fields are:</p>
+<div class="section" title="Project / Transformation">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="ProjectTransformation"></a>Project / Transformation</h4>
+</div>
+</div>
+</div>
+<p>The project name provides a default name against which other filenames are resolved to reduce screen clutter.</p>
+<p>The transformation name is the transformation to be executed.</p>
+<p>The mode can only be enforce creation/overwrite of the output model at present.</p>
+<p>The direction selects the output direction when executing a multi-directional transformation.</p>
+</div>
+<div class="section" title="Inputs">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="Inputs"></a>Inputs</h4>
+</div>
+</div>
+</div>
+<p>The file bound to each input domain must be specified.</p>
+</div>
+<div class="section" title="New outputs">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="Newoutputs"></a>New outputs</h4>
+</div>
+</div>
+</div>
+<p>The file bound to each output domain must be specified.</p>
+</div>
+<div class="section" title="Intermediates">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="Intermediates"></a>Intermediates</h4>
+</div>
+</div>
+</div>
+<p>The location of each intermediate file in the transformation chain is identified. Their default location is a
+ <span class="bold"><strong>temp</strong></span> subfolder of the transformation&rsquo;s parent folder. You can change them.
+ </p>
+<p>If you click
+ <span class="bold"><strong>Compile</strong></span> you can see the compilation progress as the grey
+ <span class="bold"><strong>Stale</strong></span> texts change to green
+ <span class="bold"><strong>Ready</strong></span> text.
+ </p>
+</div>
+<div class="section" title="Build">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="Build"></a>Build</h4>
+</div>
+</div>
+</div>
+<p>The
+ <span class="bold"><strong>Interpreted</strong></span> check box selects between interpreted execution (fast start, slow run) or code generated execution (slow start, fast run).
+ </p>
+<p>The interpreted compilation synthesizes a QVTc middle metamodel and a genmodel.</p>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>
+
+<span class="bold"><strong>HierarchicalStateMachine2FlatStateMachine.ecore</strong></span>
+
+</p>
+</li>
+<li class="listitem">
+<p>
+
+<span class="bold"><strong>HierarchicalStateMachine2FlatStateMachine.genmodel</strong></span>
+
+</p>
+</li>
+</ul>
+</div>
+<p>The code generated compilation additionally synthesizes a Java class to implement the transformation and the Java classes for the QVTc middle model.</p>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>
+
+<span class="bold"><strong>HierarchicalStateMachine2FlatStateMachine.java</strong></span>
+
+</p>
+</li>
+</ul>
+</div>
+<p>The generated files are generated to a distinct
+ <span class="bold"><strong>src-gen</strong></span> tree which you may need to refresh to see all files. Java problem markers come and go during the synthesis and build. The errors should all be gone before execution proceeds. Elimination of warnings is a work in progress.
+ </p>
+<div class="section" title="Run">
+<div class="titlepage">
+<div>
+<div>
+<h5 class="title">
+<a name="Run"></a>Run</h5>
+</div>
+</div>
+</div>
+<p>Clicking on
+ <span class="bold"><strong>Run</strong></span> will
+ <span class="bold"><strong>Compile</strong></span> automatically if you have not already done so.
+ </p>
+<p>The result should be a
+ <span class="bold"><strong>flat.xmi</strong></span> file that is similar to the
+ <span class="bold"><strong>expected.xmi</strong></span> file.
+ </p>
+</div>
+</div>
+</div>
+<div class="section" title="QVTc Example Project">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="QVTcExampleProject"></a>QVTc Example Project</h3>
+</div>
+</div>
+</div>
+<p>The OMG QVTc variant of the traditional UML to RDBMS transformation may be installed by:</p>
+<p>Invoke
+ <span class="bold"><strong>File-&gt;New-&gt;Example...</strong></span> then select
+ <span class="bold"><strong>Examples</strong></span> then
+ <span class="bold"><strong>QVT (Query/View/Transformation Language) Projects</strong></span> then select either
+ <span class="bold"><strong>QVTc UML2RDBMS Project</strong></span> then
+ <span class="bold"><strong>Finish</strong></span> to create a small example project called
+ <span class="bold"><strong>org.eclipse.qvtd.examples.qvtcore.uml2rdbms</strong></span>.
+ </p>
+<p>The QVTc editor opens to show the transformation.</p>
+<p>The QVTc tooling is very similar to the QVTr tooling. The main difference is that for QVTc the middle model and its genmodel are designed by the user, whereas the QVTr middle model and genmodel are synthesized automatically. If code generated Java execution is required, using the genmodel to generate Java code for the middle model is again a manual user responsibility. </p>
+</div>
+</div>
+</body>
+</html>
diff --git a/doc/org.eclipse.qvtd.doc/help/HowDoesItWork.html b/doc/org.eclipse.qvtd.doc/help/HowDoesItWork.html
new file mode 100644
index 000000000..bace90dcd
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/help/HowDoesItWork.html
@@ -0,0 +1,100 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>How Does It Work?</title>
+<link href="book.css" rel="stylesheet" type="text/css">
+<meta content="DocBook XSL Stylesheets V1.75.1" name="generator">
+<link rel="home" href="index.html" title="QVT Declarative Documentation">
+<link rel="up" href="OverviewandGettingStarted.html" title="Overview and Getting Started">
+<link rel="prev" href="OverviewandGettingStarted.html" title="Overview and Getting Started">
+<link rel="next" href="WhoisBehindEclipseQVTd.html" title="Who is Behind Eclipse QVTd?">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<h1 xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">How Does It Work?</h1>
+<div class="section" title="How Does It Work?">
+<div class="titlepage">
+<div>
+<div>
+<h2 class="title" style="clear: both">
+<a name="HowDoesItWork"></a>How Does It Work?</h2>
+</div>
+</div>
+</div>
+<p>QVTr and QVTc are programming languages, so you will want to edit them, execute them and debug them.</p>
+<div class="section" title="Editing">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="Editing"></a>Editing</h3>
+</div>
+</div>
+</div>
+<p>Eclipse QVTd provides QVTr, QVTc and QVTi editors developed using Xtext. The QVTc editor may be used to view or maintain the intermediate QVTu, QVTm and QVTp models.</p>
+<p>The editor may be opened conventionally by double clicking a *.qvtr, *.qvtc, or *.qvti text file name in an Explorer view. This displays the source text with syntax highlighting and an outline of the Abstract Syntax.</p>
+<p>The QVTc and QVTi editors may also be used to view *.qvtcas and *.qvtias XMI files as source text. </p>
+<div class="section" title="Status">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="Status"></a>Status</h4>
+</div>
+</div>
+</div>
+<p>These editors have been available since QVTd 0.9.0. They are useful, but currently have only limited well-formedness validation.</p>
+<p>Editing *.qvtcas and *.qvtias files should be possible but is not recommended in the current release.</p>
+<p>Hopefully 1.0.0 (Oxygen) will offer UMLX as a graphical alternative to the QVTr textual exposition of a transformation.</p>
+</div>
+</div>
+<div class="section" title="Execution">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="Execution"></a>Execution</h3>
+</div>
+</div>
+</div>
+<p>The 0.13.0 release provides one QVTr and one QVTc example project that be installed and executed. However execution functionality is very new and not suitable for more than experimental use.</p>
+<div class="section" title="Status">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="Status2"></a>Status</h4>
+</div>
+</div>
+</div>
+<p>QVTi execution has been available since 0.11.0 (Luna). It demonstrates the extensibility of the Eclipse OCL interpreter, Java code generator and debugger. QVTi is a low level intermediate; it is not intended as a primary programming language.</p>
+<p>A very preliminary form of QVTc execution was available in 0.12.0 (Mars) using an Epsilon prototype of the transformation chain.</p>
+<p>0.13.0 (Neon) introduces a Java re-implementation of the full transformation chain so that QVTr and QVTc transformations can be executed. It is only suitable for researchers.</p>
+<p>The current execution supports only creation of output models. Checking, updated, incremental, in-place execution and views are work in progress.</p>
+<p>Hopefully 1.0.0 (Oxygen) will have more substantial functionality and will be used internally to replace some of the manual Java transformations by QVTr / UMLX transformations.</p>
+</div>
+</div>
+<div class="section" title="Debugger">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="Debugger"></a>Debugger</h3>
+</div>
+</div>
+</div>
+<p>The QVTi debugger extends the OCL debugger.</p>
+<div class="section" title="Status">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="Status3"></a>Status</h4>
+</div>
+</div>
+</div>
+<p>The further extension to provide QVTc and QVTr debugging is work in progress.</p>
+</div>
+</div>
+</div>
+</body>
+</html>
diff --git a/doc/org.eclipse.qvtd.doc/help/Overview.html b/doc/org.eclipse.qvtd.doc/help/Overview.html
deleted file mode 100644
index c2a2658e8..000000000
--- a/doc/org.eclipse.qvtd.doc/help/Overview.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<html>
-<head>
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Overview</title>
-<link href="book.css" rel="stylesheet" type="text/css">
-<meta content="DocBook XSL Stylesheets V1.75.1" name="generator">
-<link rel="home" href="index.html" title="OCL Documentation">
-<link rel="up" href="index.html" title="OCL Documentation">
-<link rel="prev" href="index.html" title="OCL Documentation">
-<link rel="next" href="GettingStarted.html" title="Getting Started">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<h1 xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">Overview</h1>
-<div class="chapter" title="Overview">
-<div class="titlepage">
-<div>
-<div>
-<h2 class="title">
-<a name="Overview"></a>Overview</h2>
-</div>
-</div>
-</div>
-
-
-<div class="toc">
-<dl>
-<dt>
-<span class="section"><a href="Overview.html#WhatisQVTd">What is QVT Declarative?</a></span>
-</dt>
-<dt>
-<span class="section"><a href="Overview.html#WhatisQVTd">Syntax Clarification</a></span>
-</dt>
-</dl>
-</div>
-
-<div class="section" title="What is QVT Declarative?">
-<div class="titlepage">
-<div>
-<div>
-<h2><a name="WhatisQVTd"></a>What is QVT Declarative?</h2>
-</div>
-</div>
-</div>
-<p>
-The QVT Declarative Project provides the Eclipse implementations of the OMG QVT Core and Relations languages.
-</p>
-(The QVT Operational project provides the QVT Operational language.)
-</div>
-</div>
-
-<div class="section" title="Syntax Clarification">
-<div class="titlepage">
-<div>
-<div>
-<h2><a name="Syntax"></a>Syntax Clarification</h2>
-</div>
-</div>
-</div>
-<p>
-The Core and Relations languages require an additional import statement to bind the metamodel name to an external package.
-</p>
-<pre>
-import SimpleUML : 'SimpleUml.ecore'::umlMM;
-</pre>
-specifies that a metamodel will be obtained from the SimpleUml.ecore file and then navigating from the document root
-to the nested element named umlMM, which should be a package. The referenced package is then associated with the SimpleUML
-metamodel identifier.
-<pre>
-import SimpleUML : 'SimpleUml.ecore#/';
-</pre>
-specifies that a metamodel will be obtained from the SimpleUml.ecore file and then navigating
-to the / fragment id, which should be a package. The referenced package is then associated with the SimpleUML
-metamodel identifier.
-
-<h3>QVT core middle metamodel</h3>
-The middle metamodel is the unnamed metamodel used in where clauses. This may be bound to an external metamodel by an anonymous import.
-<pre>
-import SimpleUML : 'SimpleUml.ecore'::umlMM;
-import SimpleUMLtoRDBMS : 'SimpleUMLtoRDBMS.ecore'::uml2rdbms;
-import SimpleRDBMS : 'SimpleRdbms.ecore'::rdbmsMM;
-
-transformation umlRdbms {
- uml imports SimpleUML;
- rdbms imports SimpleRDBMS;
- imports SimpleUMLtoRDBMS;
-}
-</pre>
-
-</div>
-</div>
-
-
-
-</body>
-</html>
diff --git a/doc/org.eclipse.qvtd.doc/help/OverviewandGettingStarted.html b/doc/org.eclipse.qvtd.doc/help/OverviewandGettingStarted.html
new file mode 100644
index 000000000..7b6319655
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/help/OverviewandGettingStarted.html
@@ -0,0 +1,198 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Overview and Getting Started</title>
+<link href="book.css" rel="stylesheet" type="text/css">
+<meta content="DocBook XSL Stylesheets V1.75.1" name="generator">
+<link rel="home" href="index.html" title="QVT Declarative Documentation">
+<link rel="up" href="index.html" title="QVT Declarative Documentation">
+<link rel="prev" href="index.html" title="QVT Declarative Documentation">
+<link rel="next" href="HowDoesItWork.html" title="How Does It Work?">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<h1 xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">Overview and Getting Started</h1>
+<div class="chapter" title="Overview and Getting Started">
+<div class="titlepage">
+<div>
+<div>
+<h2 class="title">
+<a name="OverviewandGettingStarted"></a>Overview and Getting Started</h2>
+</div>
+</div>
+</div>
+<div class="toc">
+<dl>
+<dt>
+<span class="section"><a href="OverviewandGettingStarted.html#WhatisQVTQueryViewTransformation">What is
+ <em class="glossterm">QVT</em>?
+ </a></span>
+</dt>
+<dt>
+<span class="section"><a href="HowDoesItWork.html">How Does It Work?</a></span>
+</dt>
+<dt>
+<span class="section"><a href="WhoisBehindEclipseQVTd.html">Who is Behind Eclipse QVTd?</a></span>
+</dt>
+<dt>
+<span class="section"><a href="GettingStarted.html">Getting Started</a></span>
+</dt>
+<dt>
+<span class="section"><a href="Extensions.html">Extensions</a></span>
+</dt>
+</dl>
+</div>
+<p>For a quick demonstration of QVTc or QVTr editing and execution go to
+ <a class="link" href="GettingStarted.html" title="Getting Started">Getting Started</a>.
+ </p>
+<p>A PDF version of this documentation is available at
+ <a class="ulink" href="http://download.eclipse.org/qvtd/doc/0.13.0/qvtd.pdf" target="_new">QVTd 0.13.0 Documentation</a>.
+ </p>
+<div class="section" title="What is QVT?">
+<div class="titlepage">
+<div>
+<div>
+<h2 class="title" style="clear: both">
+<a name="WhatisQVTQueryViewTransformation"></a>What is
+ <em class="glossterm">QVT</em>?
+ </h2>
+</div>
+</div>
+</div>
+<p>The
+ <a class="ulink" href="http://www.omg.org/spec/QVT/" target="_new">Query/View/Transformation language</a> is the model transformation language specified by the
+ <em class="glossterm">OMG</em> (Object Management Group). Or rather it is three specified languages to which Eclipse QVTd adds five intermediate languages.
+ </p>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>QVTo &ndash; Operation Mappings is an imperative transformation language supported by the
+ <a class="ulink" href="https://projects.eclipse.org/projects/modeling.mmt.qvt-oml" target="_new">Eclipse QVTo project</a>.
+ </p>
+</li>
+</ul>
+</div>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>QVTr &ndash; Relations is a rich declarative transformation language.</p>
+</li>
+</ul>
+</div>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>QVTc &ndash; Core is a simple core declarative transformation language.</p>
+</li>
+</ul>
+</div>
+<p>QVTc and QVTr, generically referred to as QVTd, are supported the
+ <a class="ulink" href="https://projects.eclipse.org/projects/modeling.mmt.qvtd" target="_new">Eclipse QVTd project</a> (QVT Declarative) and documented here.
+ </p>
+<p>
+
+</p>
+<div class="mediaobject">
+<img src="images/QVThorizontalAlphabet.png"></div>
+<p>
+
+</p>
+<p>The Eclipse QVTd support involves a transformation chain from QVTr via QVTc to executable form. The stages in this chain are:</p>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>QVTu &ndash; a unidirectional declarative transformation language &ndash; a simplification of QVTc.</p>
+</li>
+</ul>
+</div>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>QVTm &ndash; a minimal declarative transformation language &ndash; a further simplification of QVTc.</p>
+</li>
+</ul>
+</div>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>QVTp &ndash; a partitioned declarative transformation language &ndash; a further simplification of QVTc.</p>
+</li>
+</ul>
+</div>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>QVTs &ndash; a graphical declarative transformation language suitable for schedule determination.</p>
+</li>
+</ul>
+</div>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>QVTi &ndash; an executable imperative transformation language &ndash; a variant of QVTc.</p>
+</li>
+</ul>
+</div>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>Java &ndash; the ultimate executable form</p>
+</li>
+</ul>
+</div>
+<p>Note that QVTu, QVTm, QVTp, QVTs and QVTi are not defined by the current OMG specification. It is possible that they may contribute to a future specification.</p>
+<div class="section" title="Modeling Layers">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="ModelingLayers"></a>Modeling Layers</h3>
+</div>
+</div>
+</div>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>
+
+<span class="emphasis"><em>EMF is Modeled Structure</em></span>
+
+</p>
+</li>
+</ul>
+</div>
+<p>The Eclipse Modeling Framework (
+ <em class="glossterm">EMF</em>) supports the definition of structural meta-models and the subsequent use of models conforming to these meta-models. EMF also supports generating of Java code to represent the meta-models. Additional Java code can be provided to add behavior to the structural meta-models.
+ </p>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>
+
+<span class="emphasis"><em>OCL is EMF and Modeled Behavior</em></span>
+
+</p>
+</li>
+</ul>
+</div>
+<p>
+
+<em class="glossterm">OCL</em> provides a modeling language that allows the behavior to be embedded within the structural meta-models or provided as a complement to those meta-models. As a modeling language, OCL understands the models and so OCL code is much more compact than the equivalent Java. OCL code can be statically checked, whereas the corresponding Java code often uses reflection and so cannot be checked.
+ </p>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>
+
+<span class="emphasis"><em>QVT is Modeled Model Execution</em></span>
+
+</p>
+</li>
+</ul>
+</div>
+<p>Eclipse QVTd is an implementation of the OMG QVT 1.3 specification for use with Ecore and UML meta-models.</p>
+<p>Eclipse QVTd exploits the extensibility of the Eclipse OCL Pivot model.</p>
+</div>
+</div>
+</div>
+</body>
+</html>
diff --git a/doc/org.eclipse.qvtd.doc/help/WhoisBehindEclipseQVTd.html b/doc/org.eclipse.qvtd.doc/help/WhoisBehindEclipseQVTd.html
new file mode 100644
index 000000000..a4e8c0319
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/help/WhoisBehindEclipseQVTd.html
@@ -0,0 +1,32 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Who is Behind Eclipse QVTd?</title>
+<link href="book.css" rel="stylesheet" type="text/css">
+<meta content="DocBook XSL Stylesheets V1.75.1" name="generator">
+<link rel="home" href="index.html" title="QVT Declarative Documentation">
+<link rel="up" href="OverviewandGettingStarted.html" title="Overview and Getting Started">
+<link rel="prev" href="HowDoesItWork.html" title="How Does It Work?">
+<link rel="next" href="GettingStarted.html" title="Getting Started">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<h1 xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">Who is Behind Eclipse QVTd?</h1>
+<div class="section" title="Who is Behind Eclipse QVTd?">
+<div class="titlepage">
+<div>
+<div>
+<h2 class="title" style="clear: both">
+<a name="WhoisBehindEclipseQVTd"></a>Who is Behind Eclipse QVTd?</h2>
+</div>
+</div>
+</div>
+<p>Eclipse QVTd is an Open Source project. All code has been developed under the auspices of Eclipse.</p>
+<p>Eclipse QVTd is a largely one man development by Ed Willink who has been the OMG QVT
+ <em class="glossterm">RTF</em> (Revision Task Force) chair since QVT 1.2. Expect further revisions of the QVT specification to exploit feedback from the Eclipse QVTo and QVTd projects.
+ </p>
+<p>There is now a significant personnel and corporate overlap between the Eclipse QVTd committers and the OMG QVT RTF and so Eclipse OCL is pioneering solutions to many of the under-specification problems in the OCL specification.</p>
+<p>Ed Willink is also project lead of the Eclipse OCL where the new pivot-based implementation prototypes solutions to many problems with the OMG OCL specification for which Ed Willink has been the RTF chair since OCL 2.4.</p>
+<p>The many aspects of OCL and QVTd are converging; help welcome.</p>
+</div>
+</body>
+</html>
diff --git a/doc/org.eclipse.qvtd.doc/help/book.css b/doc/org.eclipse.qvtd.doc/help/book.css
new file mode 100644
index 000000000..8ea5bb4da
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/help/book.css
@@ -0,0 +1,239 @@
+.literallayout .code {
+ display: block;
+ border: 1px solid gray;
+ margin: 1em;
+ padding: 1em;
+ background-color: #F0F0F0;
+}
+
+code {
+ display: inline;
+}
+
+pre.programlisting {
+ display: block;
+ text-align: left;
+ text-indent: 0.00pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 15pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #4444CC;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+
+P.Code {
+ display: block;
+ text-align: left;
+ text-indent: 0.00pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 15pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #4444CC;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+
+H6.CaptionFigColumn {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 3.000000pt;
+ margin-bottom: 11.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+
+P.Note {
+ display: block;
+ text-align: left;
+ text-indent: 0pt;
+ margin-top: 19.500000pt;
+ margin-bottom: 19.500000pt;
+ margin-right: 0.000000pt;
+ margin-left: 30pt;
+ font-size: 11.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+
+EM.UILabel {
+ font-weight: Bold;
+ font-style: Regular;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+}
+
+EM.CodeName {
+ font-weight: Bold;
+ font-style: Regular;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+
+SPAN.NoWrap {
+ white-space: nowrap;
+}
+
+/* following font face declarations need to be removed for DBCS */
+body,h1,h2,h3,h4,h5,h6,p,table,td,caption,th,ul,ol,dl,li,dd,dt {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #000000
+}
+
+pre {
+ font-family: Courier, monospace
+}
+
+/* end font face declarations */
+ /* following font size declarations should be OK for DBCS */
+body,h1,h2,h3,h4,h5,h6,p,table,td,caption,th,ul,ol,dl,li,dd,dt {
+ font-size: 10pt;
+}
+
+pre {
+ font-size: 10pt
+}
+
+/* end font size declarations */
+body {
+ background: #FFFFFF
+}
+
+h1 {
+ font-size: 18pt;
+ margin-top: 5;
+ margin-bottom: 1
+}
+
+h2 {
+ font-size: 14pt;
+ margin-top: 25;
+ margin-bottom: 3
+}
+
+h3 {
+ font-size: 11pt;
+ margin-top: 20;
+ margin-bottom: 3
+}
+
+h4 {
+ font-size: 10pt;
+ margin-top: 20;
+ margin-bottom: 3;
+ font-style: italic
+}
+
+p {
+ margin-top: 10px;
+ margin-bottom: 10px
+}
+
+pre {
+ margin-left: 6;
+ font-size: 9pt
+}
+
+a:link {
+ color: #0000FF
+}
+
+a:hover {
+ color: #000080
+}
+
+a:visited {
+ text-decoration: underline
+}
+
+ul {
+ margin-top: 0;
+ margin-bottom: 10
+}
+
+li {
+ margin-top: 0;
+ margin-bottom: 0
+}
+
+li p {
+ margin-top: 0;
+ margin-bottom: 0
+}
+
+ol {
+ margin-top: 0;
+ margin-bottom: 10
+}
+
+dl {
+ margin-top: 0;
+ margin-bottom: 10
+}
+
+dt {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-weight: bold
+}
+
+dd {
+ margin-top: 0;
+ margin-bottom: 0
+}
+
+strong {
+ font-weight: bold
+}
+
+em {
+ font-style: italic
+}
+
+var {
+ font-style: italic
+}
+
+div.revision {
+ border-left-style: solid;
+ border-left-width: thin;
+ border-left-color: #7B68EE;
+ padding-left: 5
+}
+
+th {
+ font-weight: bold
+}
+
+xxtd{
+ border-top:2px solid black;
+} \ No newline at end of file
diff --git a/doc/org.eclipse.qvtd.doc/help/glossary.html b/doc/org.eclipse.qvtd.doc/help/glossary.html
new file mode 100644
index 000000000..5481e9eb6
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/help/glossary.html
@@ -0,0 +1,48 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Appendix&nbsp;A.&nbsp;Glossary</title>
+<link href="book.css" rel="stylesheet" type="text/css">
+<meta content="DocBook XSL Stylesheets V1.75.1" name="generator">
+<link rel="home" href="index.html" title="QVT Declarative Documentation">
+<link rel="up" href="index.html" title="QVT Declarative Documentation">
+<link rel="prev" href="Extensions.html" title="Extensions">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<h1 xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">Glossary</h1>
+<div class="appendix" title="Appendix&nbsp;A.&nbsp;Glossary">
+<div class="titlepage">
+<div>
+<div>
+<h2 class="title">
+<a name="glossary"></a>Appendix&nbsp;A.&nbsp;Glossary</h2>
+</div>
+</div>
+</div>
+<div class="glosslist">
+<dl>
+<dt>EMF</dt>
+<dd>
+<p>Eclipse Modeling Framework</p>
+</dd>
+<dt>OCL</dt>
+<dd>
+<p>Object Constraint Language</p>
+</dd>
+<dt>OMG</dt>
+<dd>
+<p>Object Management Group</p>
+</dd>
+<dt>QVT</dt>
+<dd>
+<p>Query/View/Transformation</p>
+</dd>
+<dt>RTF</dt>
+<dd>
+<p>Revision Task Force</p>
+</dd>
+</dl>
+</div>
+</div>
+</body>
+</html>
diff --git a/doc/org.eclipse.qvtd.doc/help/images/QVThorizontalAlphabet.png b/doc/org.eclipse.qvtd.doc/help/images/QVThorizontalAlphabet.png
new file mode 100644
index 000000000..5393a46e5
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/help/images/QVThorizontalAlphabet.png
Binary files differ
diff --git a/doc/org.eclipse.qvtd.doc/help/images/QVTrEditor.png b/doc/org.eclipse.qvtd.doc/help/images/QVTrEditor.png
new file mode 100644
index 000000000..b81b441b2
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/help/images/QVTrEditor.png
Binary files differ
diff --git a/doc/org.eclipse.qvtd.doc/help/images/QVTrLaunch.png b/doc/org.eclipse.qvtd.doc/help/images/QVTrLaunch.png
new file mode 100644
index 000000000..e6321027e
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/help/images/QVTrLaunch.png
Binary files differ
diff --git a/doc/org.eclipse.qvtd.doc/help/images/QVTrProject.png b/doc/org.eclipse.qvtd.doc/help/images/QVTrProject.png
new file mode 100644
index 000000000..66d01fe02
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/help/images/QVTrProject.png
Binary files differ
diff --git a/doc/org.eclipse.qvtd.doc/help/index.html b/doc/org.eclipse.qvtd.doc/help/index.html
new file mode 100644
index 000000000..d88a2f000
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/help/index.html
@@ -0,0 +1,24 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>QVT Declarative Documentation</title>
+<link href="book.css" rel="stylesheet" type="text/css">
+<meta content="DocBook XSL Stylesheets V1.75.1" name="generator">
+<link rel="home" href="index.html" title="QVT Declarative Documentation">
+<link rel="next" href="OverviewandGettingStarted.html" title="Overview and Getting Started">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<h1 xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">QVT Declarative Documentation</h1>
+<div class="book" title="QVT Declarative Documentation">
+<div class="titlepage">
+<div>
+<div>
+<h1 class="title">
+<a name="N10001"></a>QVT Declarative Documentation</h1>
+</div>
+</div>
+<hr>
+</div>
+</div>
+</body>
+</html>
diff --git a/doc/org.eclipse.qvtd.doc/help/index.xml b/doc/org.eclipse.qvtd.doc/help/index.xml
new file mode 100644
index 000000000..d9dfaa0fb
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/help/index.xml
@@ -0,0 +1 @@
+<index></index>
diff --git a/doc/org.eclipse.qvtd.doc/html/book.css b/doc/org.eclipse.qvtd.doc/html/book.css
new file mode 100644
index 000000000..8ea5bb4da
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/html/book.css
@@ -0,0 +1,239 @@
+.literallayout .code {
+ display: block;
+ border: 1px solid gray;
+ margin: 1em;
+ padding: 1em;
+ background-color: #F0F0F0;
+}
+
+code {
+ display: inline;
+}
+
+pre.programlisting {
+ display: block;
+ text-align: left;
+ text-indent: 0.00pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 15pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #4444CC;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+
+P.Code {
+ display: block;
+ text-align: left;
+ text-indent: 0.00pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 15pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #4444CC;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+
+H6.CaptionFigColumn {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 3.000000pt;
+ margin-bottom: 11.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+
+P.Note {
+ display: block;
+ text-align: left;
+ text-indent: 0pt;
+ margin-top: 19.500000pt;
+ margin-bottom: 19.500000pt;
+ margin-right: 0.000000pt;
+ margin-left: 30pt;
+ font-size: 11.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+
+EM.UILabel {
+ font-weight: Bold;
+ font-style: Regular;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+}
+
+EM.CodeName {
+ font-weight: Bold;
+ font-style: Regular;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+
+SPAN.NoWrap {
+ white-space: nowrap;
+}
+
+/* following font face declarations need to be removed for DBCS */
+body,h1,h2,h3,h4,h5,h6,p,table,td,caption,th,ul,ol,dl,li,dd,dt {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #000000
+}
+
+pre {
+ font-family: Courier, monospace
+}
+
+/* end font face declarations */
+ /* following font size declarations should be OK for DBCS */
+body,h1,h2,h3,h4,h5,h6,p,table,td,caption,th,ul,ol,dl,li,dd,dt {
+ font-size: 10pt;
+}
+
+pre {
+ font-size: 10pt
+}
+
+/* end font size declarations */
+body {
+ background: #FFFFFF
+}
+
+h1 {
+ font-size: 18pt;
+ margin-top: 5;
+ margin-bottom: 1
+}
+
+h2 {
+ font-size: 14pt;
+ margin-top: 25;
+ margin-bottom: 3
+}
+
+h3 {
+ font-size: 11pt;
+ margin-top: 20;
+ margin-bottom: 3
+}
+
+h4 {
+ font-size: 10pt;
+ margin-top: 20;
+ margin-bottom: 3;
+ font-style: italic
+}
+
+p {
+ margin-top: 10px;
+ margin-bottom: 10px
+}
+
+pre {
+ margin-left: 6;
+ font-size: 9pt
+}
+
+a:link {
+ color: #0000FF
+}
+
+a:hover {
+ color: #000080
+}
+
+a:visited {
+ text-decoration: underline
+}
+
+ul {
+ margin-top: 0;
+ margin-bottom: 10
+}
+
+li {
+ margin-top: 0;
+ margin-bottom: 0
+}
+
+li p {
+ margin-top: 0;
+ margin-bottom: 0
+}
+
+ol {
+ margin-top: 0;
+ margin-bottom: 10
+}
+
+dl {
+ margin-top: 0;
+ margin-bottom: 10
+}
+
+dt {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-weight: bold
+}
+
+dd {
+ margin-top: 0;
+ margin-bottom: 0
+}
+
+strong {
+ font-weight: bold
+}
+
+em {
+ font-style: italic
+}
+
+var {
+ font-style: italic
+}
+
+div.revision {
+ border-left-style: solid;
+ border-left-width: thin;
+ border-left-color: #7B68EE;
+ padding-left: 5
+}
+
+th {
+ font-weight: bold
+}
+
+xxtd{
+ border-top:2px solid black;
+} \ No newline at end of file
diff --git a/doc/org.eclipse.qvtd.doc/html/images/QVThorizontalAlphabet.png b/doc/org.eclipse.qvtd.doc/html/images/QVThorizontalAlphabet.png
new file mode 100644
index 000000000..5393a46e5
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/html/images/QVThorizontalAlphabet.png
Binary files differ
diff --git a/doc/org.eclipse.qvtd.doc/html/images/QVTrEditor.png b/doc/org.eclipse.qvtd.doc/html/images/QVTrEditor.png
new file mode 100644
index 000000000..b81b441b2
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/html/images/QVTrEditor.png
Binary files differ
diff --git a/doc/org.eclipse.qvtd.doc/html/images/QVTrLaunch.png b/doc/org.eclipse.qvtd.doc/html/images/QVTrLaunch.png
new file mode 100644
index 000000000..e6321027e
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/html/images/QVTrLaunch.png
Binary files differ
diff --git a/doc/org.eclipse.qvtd.doc/html/images/QVTrProject.png b/doc/org.eclipse.qvtd.doc/html/images/QVTrProject.png
new file mode 100644
index 000000000..66d01fe02
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/html/images/QVTrProject.png
Binary files differ
diff --git a/doc/org.eclipse.qvtd.doc/html/qvtd.html b/doc/org.eclipse.qvtd.doc/html/qvtd.html
new file mode 100644
index 000000000..f3720a111
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/html/qvtd.html
@@ -0,0 +1,739 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>QVT Declarative Documentation</title>
+<link href="book.css" rel="stylesheet" type="text/css">
+<meta content="DocBook XSL Stylesheets V1.75.1" name="generator">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<div class="book" title="QVT Declarative Documentation">
+<div class="titlepage">
+<div>
+<div>
+<h1 class="title">
+<a name="N10001"></a>QVT Declarative Documentation</h1>
+</div>
+</div>
+<hr>
+</div>
+<div class="toc">
+<p>
+<b>Table of Contents</b>
+</p>
+<dl>
+<dt>
+<span class="chapter"><a href="#OverviewandGettingStarted">1. Overview and Getting Started</a></span>
+</dt>
+<dd>
+<dl>
+<dt>
+<span class="section"><a href="#WhatisQVTQueryViewTransformation">What is
+ <em class="glossterm">QVT</em>?
+ </a></span>
+</dt>
+<dt>
+<span class="section"><a href="#HowDoesItWork">How Does It Work?</a></span>
+</dt>
+<dt>
+<span class="section"><a href="#WhoisBehindEclipseQVTd">Who is Behind Eclipse QVTd?</a></span>
+</dt>
+<dt>
+<span class="section"><a href="#GettingStarted">Getting Started</a></span>
+</dt>
+<dt>
+<span class="section"><a href="#Extensions">Extensions</a></span>
+</dt>
+</dl>
+</dd>
+<dt>
+<span class="appendix"><a href="#glossary">A. Glossary</a></span>
+</dt>
+</dl>
+</div>
+<div class="chapter" title="Chapter&nbsp;1.&nbsp;Overview and Getting Started">
+<div class="titlepage">
+<div>
+<div>
+<h2 class="title">
+<a name="OverviewandGettingStarted"></a>Chapter&nbsp;1.&nbsp;Overview and Getting Started</h2>
+</div>
+</div>
+</div>
+<p>For a quick demonstration of QVTc or QVTr editing and execution go to
+ <a class="link" href="#GettingStarted" title="Getting Started">Getting Started</a>.
+ </p>
+<p>A PDF version of this documentation is available at
+ <a class="ulink" href="http://download.eclipse.org/qvtd/doc/0.13.0/qvtd.pdf" target="_new">QVTd 0.13.0 Documentation</a>.
+ </p>
+<div class="section" title="What is QVT?">
+<div class="titlepage">
+<div>
+<div>
+<h2 class="title" style="clear: both">
+<a name="WhatisQVTQueryViewTransformation"></a>What is
+ <em class="glossterm">QVT</em>?
+ </h2>
+</div>
+</div>
+</div>
+<p>The
+ <a class="ulink" href="http://www.omg.org/spec/QVT/" target="_new">Query/View/Transformation language</a> is the model transformation language specified by the
+ <em class="glossterm">OMG</em> (Object Management Group). Or rather it is three specified languages to which Eclipse QVTd adds five intermediate languages.
+ </p>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>QVTo &ndash; Operation Mappings is an imperative transformation language supported by the
+ <a class="ulink" href="https://projects.eclipse.org/projects/modeling.mmt.qvt-oml" target="_new">Eclipse QVTo project</a>.
+ </p>
+</li>
+</ul>
+</div>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>QVTr &ndash; Relations is a rich declarative transformation language.</p>
+</li>
+</ul>
+</div>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>QVTc &ndash; Core is a simple core declarative transformation language.</p>
+</li>
+</ul>
+</div>
+<p>QVTc and QVTr, generically referred to as QVTd, are supported the
+ <a class="ulink" href="https://projects.eclipse.org/projects/modeling.mmt.qvtd" target="_new">Eclipse QVTd project</a> (QVT Declarative) and documented here.
+ </p>
+<p>
+
+</p>
+<div class="mediaobject">
+<img src="images/QVThorizontalAlphabet.png"></div>
+<p>
+
+</p>
+<p>The Eclipse QVTd support involves a transformation chain from QVTr via QVTc to executable form. The stages in this chain are:</p>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>QVTu &ndash; a unidirectional declarative transformation language &ndash; a simplification of QVTc.</p>
+</li>
+</ul>
+</div>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>QVTm &ndash; a minimal declarative transformation language &ndash; a further simplification of QVTc.</p>
+</li>
+</ul>
+</div>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>QVTp &ndash; a partitioned declarative transformation language &ndash; a further simplification of QVTc.</p>
+</li>
+</ul>
+</div>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>QVTs &ndash; a graphical declarative transformation language suitable for schedule determination.</p>
+</li>
+</ul>
+</div>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>QVTi &ndash; an executable imperative transformation language &ndash; a variant of QVTc.</p>
+</li>
+</ul>
+</div>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>Java &ndash; the ultimate executable form</p>
+</li>
+</ul>
+</div>
+<p>Note that QVTu, QVTm, QVTp, QVTs and QVTi are not defined by the current OMG specification. It is possible that they may contribute to a future specification.</p>
+<div class="section" title="Modeling Layers">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="ModelingLayers"></a>Modeling Layers</h3>
+</div>
+</div>
+</div>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>
+
+<span class="emphasis"><em>EMF is Modeled Structure</em></span>
+
+</p>
+</li>
+</ul>
+</div>
+<p>The Eclipse Modeling Framework (
+ <em class="glossterm">EMF</em>) supports the definition of structural meta-models and the subsequent use of models conforming to these meta-models. EMF also supports generating of Java code to represent the meta-models. Additional Java code can be provided to add behavior to the structural meta-models.
+ </p>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>
+
+<span class="emphasis"><em>OCL is EMF and Modeled Behavior</em></span>
+
+</p>
+</li>
+</ul>
+</div>
+<p>
+
+<em class="glossterm">OCL</em> provides a modeling language that allows the behavior to be embedded within the structural meta-models or provided as a complement to those meta-models. As a modeling language, OCL understands the models and so OCL code is much more compact than the equivalent Java. OCL code can be statically checked, whereas the corresponding Java code often uses reflection and so cannot be checked.
+ </p>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>
+
+<span class="emphasis"><em>QVT is Modeled Model Execution</em></span>
+
+</p>
+</li>
+</ul>
+</div>
+<p>Eclipse QVTd is an implementation of the OMG QVT 1.3 specification for use with Ecore and UML meta-models.</p>
+<p>Eclipse QVTd exploits the extensibility of the Eclipse OCL Pivot model.</p>
+</div>
+</div>
+<div class="section" title="How Does It Work?">
+<div class="titlepage">
+<div>
+<div>
+<h2 class="title" style="clear: both">
+<a name="HowDoesItWork"></a>How Does It Work?</h2>
+</div>
+</div>
+</div>
+<p>QVTr and QVTc are programming languages, so you will want to edit them, execute them and debug them.</p>
+<div class="section" title="Editing">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="Editing"></a>Editing</h3>
+</div>
+</div>
+</div>
+<p>Eclipse QVTd provides QVTr, QVTc and QVTi editors developed using Xtext. The QVTc editor may be used to view or maintain the intermediate QVTu, QVTm and QVTp models.</p>
+<p>The editor may be opened conventionally by double clicking a *.qvtr, *.qvtc, or *.qvti text file name in an Explorer view. This displays the source text with syntax highlighting and an outline of the Abstract Syntax.</p>
+<p>The QVTc and QVTi editors may also be used to view *.qvtcas and *.qvtias XMI files as source text. </p>
+<div class="section" title="Status">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="Status"></a>Status</h4>
+</div>
+</div>
+</div>
+<p>These editors have been available since QVTd 0.9.0. They are useful, but currently have only limited well-formedness validation.</p>
+<p>Editing *.qvtcas and *.qvtias files should be possible but is not recommended in the current release.</p>
+<p>Hopefully 1.0.0 (Oxygen) will offer UMLX as a graphical alternative to the QVTr textual exposition of a transformation.</p>
+</div>
+</div>
+<div class="section" title="Execution">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="Execution"></a>Execution</h3>
+</div>
+</div>
+</div>
+<p>The 0.13.0 release provides one QVTr and one QVTc example project that be installed and executed. However execution functionality is very new and not suitable for more than experimental use.</p>
+<div class="section" title="Status">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="Status2"></a>Status</h4>
+</div>
+</div>
+</div>
+<p>QVTi execution has been available since 0.11.0 (Luna). It demonstrates the extensibility of the Eclipse OCL interpreter, Java code generator and debugger. QVTi is a low level intermediate; it is not intended as a primary programming language.</p>
+<p>A very preliminary form of QVTc execution was available in 0.12.0 (Mars) using an Epsilon prototype of the transformation chain.</p>
+<p>0.13.0 (Neon) introduces a Java re-implementation of the full transformation chain so that QVTr and QVTc transformations can be executed. It is only suitable for researchers.</p>
+<p>The current execution supports only creation of output models. Checking, updated, incremental, in-place execution and views are work in progress.</p>
+<p>Hopefully 1.0.0 (Oxygen) will have more substantial functionality and will be used internally to replace some of the manual Java transformations by QVTr / UMLX transformations.</p>
+</div>
+</div>
+<div class="section" title="Debugger">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="Debugger"></a>Debugger</h3>
+</div>
+</div>
+</div>
+<p>The QVTi debugger extends the OCL debugger.</p>
+<div class="section" title="Status">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="Status3"></a>Status</h4>
+</div>
+</div>
+</div>
+<p>The further extension to provide QVTc and QVTr debugging is work in progress.</p>
+</div>
+</div>
+</div>
+<div class="section" title="Who is Behind Eclipse QVTd?">
+<div class="titlepage">
+<div>
+<div>
+<h2 class="title" style="clear: both">
+<a name="WhoisBehindEclipseQVTd"></a>Who is Behind Eclipse QVTd?</h2>
+</div>
+</div>
+</div>
+<p>Eclipse QVTd is an Open Source project. All code has been developed under the auspices of Eclipse.</p>
+<p>Eclipse QVTd is a largely one man development by Ed Willink who has been the OMG QVT
+ <em class="glossterm">RTF</em> (Revision Task Force) chair since QVT 1.2. Expect further revisions of the QVT specification to exploit feedback from the Eclipse QVTo and QVTd projects.
+ </p>
+<p>There is now a significant personnel and corporate overlap between the Eclipse QVTd committers and the OMG QVT RTF and so Eclipse OCL is pioneering solutions to many of the under-specification problems in the OCL specification.</p>
+<p>Ed Willink is also project lead of the Eclipse OCL where the new pivot-based implementation prototypes solutions to many problems with the OMG OCL specification for which Ed Willink has been the RTF chair since OCL 2.4.</p>
+<p>The many aspects of OCL and QVTd are converging; help welcome.</p>
+</div>
+<div class="section" title="Getting Started">
+<div class="titlepage">
+<div>
+<div>
+<h2 class="title" style="clear: both">
+<a name="GettingStarted"></a>Getting Started</h2>
+</div>
+</div>
+</div>
+<p>
+
+<span class="bold"><strong>Warning: Eclipse QVTd 0.13.0 execution is not sufficiently mature for more than experimental/research usage.</strong></span>
+
+</p>
+<p>For a very quick demonstration of QVTc or QVTr you may install the appropriate example project.</p>
+<div class="section" title="QVTr Example Project">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="QVTrExampleProject"></a>QVTr Example Project</h3>
+</div>
+</div>
+</div>
+<p>Invoke
+ <span class="bold"><strong>File-&gt;New-&gt;Example...</strong></span> then select
+ <span class="bold"><strong>Examples</strong></span> then
+ <span class="bold"><strong>QVT (Query/View/Transformation Language) Projects</strong></span> then select either
+ <span class="bold"><strong>QVTr HSTM2FSTM Project</strong></span> then
+ <span class="bold"><strong>Finish</strong></span> to create a small example project called
+ <span class="bold"><strong>org.eclipse.qvtd.examples.qvtrelation.hstm2fstm</strong></span>.
+ </p>
+<p>A QVTr or QVTc editor opens to show the transformation.</p>
+<p>
+
+</p>
+<div class="mediaobject">
+<img src="images/QVTrEditor.png"></div>
+<p>
+
+</p>
+<p>The image shows one of the mappings with hovertext elaborating the declaration referenced by
+ <span class="bold"><strong>name</strong></span>.
+ </p>
+<p>The QVT editors extend the OCL editor and so the OCL context menu provides useful functionality such as saving the transformation in Abstyract Syntax form.</p>
+<p>A QVTr project is currently just a normal Java project. (A QVTd nature may be added in the future to support auto-building.)</p>
+<p>
+
+</p>
+<div class="mediaobject">
+<img src="images/QVTrProject.png"></div>
+<p>
+
+</p>
+<p>The QVTr Hierarchical to Flat State Machine example contains</p>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>
+
+<span class="bold"><strong>HierarchicalStateMachine2FlatStateMachine.qvtr</strong></span> - the transformation
+ </p>
+</li>
+<li class="listitem">
+<p>
+
+<span class="bold"><strong>HierarchicalStateMachine.ecore</strong></span> - the source metamodel
+ </p>
+</li>
+<li class="listitem">
+<p>
+
+<span class="bold"><strong>FlatStateMachine.ecore</strong></span> - the target metamodel
+ </p>
+</li>
+<li class="listitem">
+<p>
+
+<span class="bold"><strong>hier.xmi</strong></span> - an example model to exercise the execution
+ </p>
+</li>
+<li class="listitem">
+<p>
+
+<span class="bold"><strong>expected.xmi</strong></span> - the expected execution result
+ </p>
+</li>
+<li class="listitem">
+<p>
+
+<span class="bold"><strong>HierarchicalStateMachine2FlatStateMachine.qvtr.launch</strong></span> - a launch configuration for execution
+ </p>
+</li>
+</ul>
+</div>
+<p>You may execute the transformation on the
+ <span class="bold"><strong>hier.xmi</strong></span> input by invoking
+ <span class="bold"><strong>Run-&gt;Run Configurations...</strong></span> then
+ <span class="bold"><strong>QVTr (Relations) transformation</strong></span> then
+ <span class="bold"><strong>HierarchicalStateMachine2FlatStateMachine.qvtr</strong></span>.
+ </p>
+<p>
+
+</p>
+<div class="mediaobject">
+<img src="images/QVTrLaunch.png"></div>
+<p>
+
+</p>
+<p>The launch is currently cluttered by an excess of development information and not yet implemented facilities. The important fields are:</p>
+<div class="section" title="Project / Transformation">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="ProjectTransformation"></a>Project / Transformation</h4>
+</div>
+</div>
+</div>
+<p>The project name provides a default name against which other filenames are resolved to reduce screen clutter.</p>
+<p>The transformation name is the transformation to be executed.</p>
+<p>The mode can only be enforce creation/overwrite of the output model at present.</p>
+<p>The direction selects the output direction when executing a multi-directional transformation.</p>
+</div>
+<div class="section" title="Inputs">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="Inputs"></a>Inputs</h4>
+</div>
+</div>
+</div>
+<p>The file bound to each input domain must be specified.</p>
+</div>
+<div class="section" title="New outputs">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="Newoutputs"></a>New outputs</h4>
+</div>
+</div>
+</div>
+<p>The file bound to each output domain must be specified.</p>
+</div>
+<div class="section" title="Intermediates">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="Intermediates"></a>Intermediates</h4>
+</div>
+</div>
+</div>
+<p>The location of each intermediate file in the transformation chain is identified. Their default location is a
+ <span class="bold"><strong>temp</strong></span> subfolder of the transformation&rsquo;s parent folder. You can change them.
+ </p>
+<p>If you click
+ <span class="bold"><strong>Compile</strong></span> you can see the compilation progress as the grey
+ <span class="bold"><strong>Stale</strong></span> texts change to green
+ <span class="bold"><strong>Ready</strong></span> text.
+ </p>
+</div>
+<div class="section" title="Build">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="Build"></a>Build</h4>
+</div>
+</div>
+</div>
+<p>The
+ <span class="bold"><strong>Interpreted</strong></span> check box selects between interpreted execution (fast start, slow run) or code generated execution (slow start, fast run).
+ </p>
+<p>The interpreted compilation synthesizes a QVTc middle metamodel and a genmodel.</p>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>
+
+<span class="bold"><strong>HierarchicalStateMachine2FlatStateMachine.ecore</strong></span>
+
+</p>
+</li>
+<li class="listitem">
+<p>
+
+<span class="bold"><strong>HierarchicalStateMachine2FlatStateMachine.genmodel</strong></span>
+
+</p>
+</li>
+</ul>
+</div>
+<p>The code generated compilation additionally synthesizes a Java class to implement the transformation and the Java classes for the QVTc middle model.</p>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>
+
+<span class="bold"><strong>HierarchicalStateMachine2FlatStateMachine.java</strong></span>
+
+</p>
+</li>
+</ul>
+</div>
+<p>The generated files are generated to a distinct
+ <span class="bold"><strong>src-gen</strong></span> tree which you may need to refresh to see all files. Java problem markers come and go during the synthesis and build. The errors should all be gone before execution proceeds. Elimination of warnings is a work in progress.
+ </p>
+<div class="section" title="Run">
+<div class="titlepage">
+<div>
+<div>
+<h5 class="title">
+<a name="Run"></a>Run</h5>
+</div>
+</div>
+</div>
+<p>Clicking on
+ <span class="bold"><strong>Run</strong></span> will
+ <span class="bold"><strong>Compile</strong></span> automatically if you have not already done so.
+ </p>
+<p>The result should be a
+ <span class="bold"><strong>flat.xmi</strong></span> file that is similar to the
+ <span class="bold"><strong>expected.xmi</strong></span> file.
+ </p>
+</div>
+</div>
+</div>
+<div class="section" title="QVTc Example Project">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="QVTcExampleProject"></a>QVTc Example Project</h3>
+</div>
+</div>
+</div>
+<p>The OMG QVTc variant of the traditional UML to RDBMS transformation may be installed by:</p>
+<p>Invoke
+ <span class="bold"><strong>File-&gt;New-&gt;Example...</strong></span> then select
+ <span class="bold"><strong>Examples</strong></span> then
+ <span class="bold"><strong>QVT (Query/View/Transformation Language) Projects</strong></span> then select either
+ <span class="bold"><strong>QVTc UML2RDBMS Project</strong></span> then
+ <span class="bold"><strong>Finish</strong></span> to create a small example project called
+ <span class="bold"><strong>org.eclipse.qvtd.examples.qvtcore.uml2rdbms</strong></span>.
+ </p>
+<p>The QVTc editor opens to show the transformation.</p>
+<p>The QVTc tooling is very similar to the QVTr tooling. The main difference is that for QVTc the middle model and its genmodel are designed by the user, whereas the QVTr middle model and genmodel are synthesized automatically. If code generated Java execution is required, using the genmodel to generate Java code for the middle model is again a manual user responsibility. </p>
+</div>
+</div>
+<div class="section" title="Extensions">
+<div class="titlepage">
+<div>
+<div>
+<h2 class="title" style="clear: both">
+<a name="Extensions"></a>Extensions</h2>
+</div>
+</div>
+</div>
+<div class="section" title="Import">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="Import"></a>Import</h3>
+</div>
+</div>
+</div>
+<p>The Eclipse support for OCL, QVTc and QVTr adds an import statement to define the location of the metamodels.</p>
+<div class="literallayout">
+<p>
+<code class="code">import&nbsp;SimpleUML&nbsp;:&nbsp;'SimpleUml.ecore'::umlMM;<br>
+
+</code>
+</p>
+</div>
+<p>This specifies that the
+ <span class="bold"><strong>SimpleUml.ecore</strong></span> metamodel is loaded. The metamodel root prefixes a navigation to select an imported element. In the example above the
+ <span class="bold"><strong>umlMM</strong></span> package is selected and made available with a
+ <span class="bold"><strong>SimpleUML</strong></span> alias. If alias-name and colon separator are omitted, the imported element is accessible by its own name.
+ </p>
+<p>The quoted name may be importing-file-relative file name as above, or a an absolute path such as
+ <span class="bold"><strong>platform:/resource/org.eclipse.emf.examples.library/model/extlibrary.ecore</strong></span> or a registered namespace URI such as
+ <span class="bold"><strong>http://www.eclipse.org/emf/2002/Ecore</strong></span>.
+ </p>
+</div>
+<div class="section" title="Packages">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="Packages"></a>Packages</h3>
+</div>
+</div>
+</div>
+<p>The Eclipse support for QVTc and QVTr supports declaration of transformations within a package hierarchy. A Transformation therefore extends just a Class, not a Class and a Package as specified by OMG. The Transformation is declared nested within one of more Packages by qualifying the transformation name with one of more package names. For compatibility, if no Package is declared, the Transformation is contained by a Package with a blank name.</p>
+<p>The package hierarchy declared for the Transformation is re-used to define the Java package hierarchy when Java code is generated from the Transformation.</p>
+</div>
+<div class="section" title="QVTc Middle Model">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="QVTc Middle Model"></a>QVTc Middle Model</h3>
+</div>
+</div>
+</div>
+<p>The QVTc part of the specification is unclear as to how the middle metamodel is defined.</p>
+<p>Eclipse QVTc imports the middle metamodel in the same way as any other metamodel. This is then used as a used-package of an unnamed domain.</p>
+<div class="literallayout">
+<p>
+<code class="code">import&nbsp;SimpleUML&nbsp;:&nbsp;'SimpleUml.ecore'::umlMM;<br>
+import&nbsp;SimpleUMLtoRDBMS&nbsp;:&nbsp;'SimpleUMLtoRDBMS.ecore'::uml2rdbms;<br>
+import&nbsp;SimpleRDBMS&nbsp;:&nbsp;'SimpleRdbms.ecore'::rdbmsMM;<br>
+
+</code>
+</p>
+</div>
+<div class="literallayout">
+<p>
+<code class="code">transformation&nbsp;umlRdbms&nbsp;{<br>
+ uml&nbsp;imports&nbsp;SimpleUML;<br>
+ rdbms&nbsp;imports&nbsp;SimpleRDBMS;<br>
+ imports&nbsp;SimpleUMLtoRDBMS;<br>
+}<br>
+
+</code>
+</p>
+</div>
+</div>
+<div class="section" title="QVTr Middle Model">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="QVTr Middle Model"></a>QVTr Middle Model</h3>
+</div>
+</div>
+</div>
+<p>The QVTr part of the specification appears to specify how the middle metamodel is synthesized. The specification however ignores details such as Models, Packages and Collections. There is also a lack of clarity as to whether the trace is the minimum required to support non-re-invocation of mappings or whether it should contain everything necessary for minimal incremental re-execution. The Eclipse QVTd implementation is work-in-progress.</p>
+</div>
+<div class="section" title="QVTr Collection Templates">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="Collection Templates"></a>QVTr Collection Templates</h3>
+</div>
+</div>
+</div>
+<p>The QVTr part of the specification omits almost all detail of the semantics of Collections and in particular Collection Templates. The implementation in Eclipse QVTd is therefore language design work-in-progress rather than implementation work-in-progress.</p>
+</div>
+<div class="section" title="OCL/EMOF Metamodels">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="OCL/EMOF Metamodels"></a>OCL/EMOF Metamodels</h3>
+</div>
+</div>
+</div>
+<p>The QVT specification provides layered metamodels for QVTrelation, QVTtemplate, QVTcore and QVTbase layered on top of EssentialOCL and EMOF. The EssentialOCL and EMOF metamodels are very strongly influenced by OCL and MOF specifications, but are ot formally compliant.</p>
+<p>Eclipse QVTd provides layered metamodels for QVTrelation, QVTtemplate, QVTcore and QVTbase layered on top of Pivot which is derived from the UML 2.5 metamodel and work towards a future OCL specification. (QVTimperative shares some QVTcore functionality through a QVTcoreBase abstraction.)</p>
+<p>A consequence of extending the Eclipse OCL Pivot is that Eclipse QVTd has preliminary support for templated types, extensible libraries and safe navigation.</p>
+</div>
+<div class="section" title="this">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="this"></a>this</h3>
+</div>
+</div>
+</div>
+<p>QVTo defines
+ <span class="bold"><strong>this</strong></span> as a reserved variable for the instance of the executing transformation.
+ </p>
+<p>Eclipse QVTd provides
+ <span class="bold"><strong>this</strong></span> for QVTc and QVTr and thereby solves an OCL compatibility problem with respect to the source of an operation call of a query. In Eclipse QVTd, queries, using the Function class, are operations of the Transformation class and are invoked with an implicit
+ <span class="bold"><strong>this</strong></span>. An explicit
+ <span class="bold"><strong>this</strong></span> can be used, and is used when viewing the equivalent source text for the Abstract Syntax model.
+ </p>
+</div>
+</div>
+</div>
+<div class="appendix" title="Appendix&nbsp;A.&nbsp;Glossary">
+<div class="titlepage">
+<div>
+<div>
+<h2 class="title">
+<a name="glossary"></a>Appendix&nbsp;A.&nbsp;Glossary</h2>
+</div>
+</div>
+</div>
+<div class="glosslist">
+<dl>
+<dt>EMF</dt>
+<dd>
+<p>Eclipse Modeling Framework</p>
+</dd>
+<dt>OCL</dt>
+<dd>
+<p>Object Constraint Language</p>
+</dd>
+<dt>OMG</dt>
+<dd>
+<p>Object Management Group</p>
+</dd>
+<dt>QVT</dt>
+<dd>
+<p>Query/View/Transformation</p>
+</dd>
+<dt>RTF</dt>
+<dd>
+<p>Revision Task Force</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</body>
+</html>
diff --git a/doc/org.eclipse.qvtd.doc/manual/qvtd.pdf b/doc/org.eclipse.qvtd.doc/manual/qvtd.pdf
new file mode 100644
index 000000000..c83aa8183
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/manual/qvtd.pdf
Binary files differ
diff --git a/doc/org.eclipse.qvtd.doc/styles/book.css b/doc/org.eclipse.qvtd.doc/styles/book.css
new file mode 100644
index 000000000..8ea5bb4da
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/styles/book.css
@@ -0,0 +1,239 @@
+.literallayout .code {
+ display: block;
+ border: 1px solid gray;
+ margin: 1em;
+ padding: 1em;
+ background-color: #F0F0F0;
+}
+
+code {
+ display: inline;
+}
+
+pre.programlisting {
+ display: block;
+ text-align: left;
+ text-indent: 0.00pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 15pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #4444CC;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+
+P.Code {
+ display: block;
+ text-align: left;
+ text-indent: 0.00pt;
+ margin-top: 0.000000pt;
+ margin-bottom: 0.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 15pt;
+ font-size: 10.000000pt;
+ font-weight: medium;
+ font-style: Regular;
+ color: #4444CC;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+
+H6.CaptionFigColumn {
+ display: block;
+ text-align: left;
+ text-indent: 0.000000pt;
+ margin-top: 3.000000pt;
+ margin-bottom: 11.000000pt;
+ margin-right: 0.000000pt;
+ margin-left: 0.000000pt;
+ font-size: 9.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+
+P.Note {
+ display: block;
+ text-align: left;
+ text-indent: 0pt;
+ margin-top: 19.500000pt;
+ margin-bottom: 19.500000pt;
+ margin-right: 0.000000pt;
+ margin-left: 30pt;
+ font-size: 11.000000pt;
+ font-weight: medium;
+ font-style: Italic;
+ color: #000000;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Arial";
+}
+
+EM.UILabel {
+ font-weight: Bold;
+ font-style: Regular;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+}
+
+EM.CodeName {
+ font-weight: Bold;
+ font-style: Regular;
+ text-decoration: none;
+ vertical-align: baseline;
+ text-transform: none;
+ font-family: "Courier New";
+}
+
+SPAN.NoWrap {
+ white-space: nowrap;
+}
+
+/* following font face declarations need to be removed for DBCS */
+body,h1,h2,h3,h4,h5,h6,p,table,td,caption,th,ul,ol,dl,li,dd,dt {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #000000
+}
+
+pre {
+ font-family: Courier, monospace
+}
+
+/* end font face declarations */
+ /* following font size declarations should be OK for DBCS */
+body,h1,h2,h3,h4,h5,h6,p,table,td,caption,th,ul,ol,dl,li,dd,dt {
+ font-size: 10pt;
+}
+
+pre {
+ font-size: 10pt
+}
+
+/* end font size declarations */
+body {
+ background: #FFFFFF
+}
+
+h1 {
+ font-size: 18pt;
+ margin-top: 5;
+ margin-bottom: 1
+}
+
+h2 {
+ font-size: 14pt;
+ margin-top: 25;
+ margin-bottom: 3
+}
+
+h3 {
+ font-size: 11pt;
+ margin-top: 20;
+ margin-bottom: 3
+}
+
+h4 {
+ font-size: 10pt;
+ margin-top: 20;
+ margin-bottom: 3;
+ font-style: italic
+}
+
+p {
+ margin-top: 10px;
+ margin-bottom: 10px
+}
+
+pre {
+ margin-left: 6;
+ font-size: 9pt
+}
+
+a:link {
+ color: #0000FF
+}
+
+a:hover {
+ color: #000080
+}
+
+a:visited {
+ text-decoration: underline
+}
+
+ul {
+ margin-top: 0;
+ margin-bottom: 10
+}
+
+li {
+ margin-top: 0;
+ margin-bottom: 0
+}
+
+li p {
+ margin-top: 0;
+ margin-bottom: 0
+}
+
+ol {
+ margin-top: 0;
+ margin-bottom: 10
+}
+
+dl {
+ margin-top: 0;
+ margin-bottom: 10
+}
+
+dt {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-weight: bold
+}
+
+dd {
+ margin-top: 0;
+ margin-bottom: 0
+}
+
+strong {
+ font-weight: bold
+}
+
+em {
+ font-style: italic
+}
+
+var {
+ font-style: italic
+}
+
+div.revision {
+ border-left-style: solid;
+ border-left-width: thin;
+ border-left-color: #7B68EE;
+ padding-left: 5
+}
+
+th {
+ font-weight: bold
+}
+
+xxtd{
+ border-top:2px solid black;
+} \ No newline at end of file
diff --git a/doc/org.eclipse.qvtd.doc/styles/component.xsl b/doc/org.eclipse.qvtd.doc/styles/component.xsl
new file mode 100644
index 000000000..ac71e7b82
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/styles/component.xsl
@@ -0,0 +1,29 @@
+<?xml version='1.0'?>
+<xsl:stylesheet
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<xsl:template match="colophon">
+ <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="colophon.titlepage.recto.style" margin-left="{$title.margin.left}" font-size="24.8832pt" font-family="{$title.fontset}" font-weight="bold">
+ <xsl:call-template name="colophon.titlepage"/>
+ </fo:block>
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template name="colophon.titlepage.recto">
+ <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="colophon.titlepage.recto.style" margin-left="{$title.margin.left}" font-size="24.8832pt" font-family="{$title.fontset}" font-weight="bold">
+<xsl:call-template name="component.colophon.title">
+<xsl:with-param name="node" select="ancestor-or-self::colophon[1]"/>
+</xsl:call-template></fo:block>
+</xsl:template>
+
+<xsl:template name="component.colophon.title">
+ <fo:block xsl:use-attribute-sets="component.title.properties" text-align="left">
+ <xsl:apply-templates select="." mode="object.title.markup">
+ <xsl:with-param name="allow-anchors" select="1"/>
+ </xsl:apply-templates>
+ </fo:block>
+</xsl:template>
+
+</xsl:stylesheet> \ No newline at end of file
diff --git a/doc/org.eclipse.qvtd.doc/styles/eclipse.xsl b/doc/org.eclipse.qvtd.doc/styles/eclipse.xsl
new file mode 100644
index 000000000..7112e643b
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/styles/eclipse.xsl
@@ -0,0 +1,360 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:ng="http://docbook.org/docbook-ng"
+ xmlns:db="http://docbook.org/ns/docbook"
+ xmlns:exsl="http://exslt.org/common"
+ version="1.0"
+ exclude-result-prefixes="exsl db ng">
+
+<xsl:import href="chunk.xsl"/>
+
+<!-- ********************************************************************
+ This file is part of the XSL DocBook Stylesheet distribution.
+ See ../README or http://docbook.sf.net/release/xsl/current/ for
+ copyright and other information.
+
+ Redistribution of this file by Eclipse OCL is approved by CQ 5268
+ ******************************************************************** -->
+
+<xsl:template match="/">
+ <!-- * Get a title for current doc so that we let the user -->
+ <!-- * know what document we are processing at this point. -->
+ <xsl:variable name="doc.title">
+ <xsl:call-template name="get.doc.title"/>
+ </xsl:variable>
+ <xsl:choose>
+ <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
+ toss the namespace and continue. Use the docbook5 namespaced
+ stylesheets for DocBook5 if you don't want to use this feature.-->
+ <!-- include extra test for Xalan quirk -->
+ <xsl:when test="$exsl.node.set.available != 0
+ and (*/self::ng:* or */self::db:*)">
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$doc.title"/>
+ <xsl:with-param name="context-desc">
+ <xsl:text>namesp. cut</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>stripped namespace before processing</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:variable name="nons">
+ <xsl:apply-templates mode="stripNS"/>
+ </xsl:variable>
+ <xsl:call-template name="log.message">
+ <xsl:with-param name="level">Note</xsl:with-param>
+ <xsl:with-param name="source" select="$doc.title"/>
+ <xsl:with-param name="context-desc">
+ <xsl:text>namesp. cut</xsl:text>
+ </xsl:with-param>
+ <xsl:with-param name="message">
+ <xsl:text>processing stripped document</xsl:text>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:apply-templates select="exsl:node-set($nons)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$rootid != ''">
+ <xsl:choose>
+ <xsl:when test="count(key('id',$rootid)) = 0">
+ <xsl:message terminate="yes">
+ <xsl:text>ID '</xsl:text>
+ <xsl:value-of select="$rootid"/>
+ <xsl:text>' not found in document.</xsl:text>
+ </xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$collect.xref.targets = 'yes' or
+ $collect.xref.targets = 'only'">
+ <xsl:apply-templates select="key('id', $rootid)"
+ mode="collect.targets"/>
+ </xsl:if>
+ <xsl:if test="$collect.xref.targets != 'only'">
+ <xsl:message>Formatting from <xsl:value-of
+ select="$rootid"/></xsl:message>
+ <xsl:apply-templates select="key('id',$rootid)"
+ mode="process.root"/>
+ <xsl:call-template name="etoc"/>
+ <!-- <xsl:call-template name="plugin.xml"/> -->
+ <xsl:call-template name="helpidx"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$collect.xref.targets = 'yes' or
+ $collect.xref.targets = 'only'">
+ <xsl:apply-templates select="/" mode="collect.targets"/>
+ </xsl:if>
+ <xsl:if test="$collect.xref.targets != 'only'">
+ <xsl:apply-templates select="/" mode="process.root"/>
+ <xsl:call-template name="etoc"/>
+ <!-- <xsl:call-template name="plugin.xml"/> -->
+ <xsl:call-template name="helpidx"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<xsl:template name="etoc">
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename">
+ <xsl:if test="$manifest.in.base.dir != 0">
+ <xsl:value-of select="$base.dir"/>
+ </xsl:if>
+ <xsl:value-of select="'toc.xml'"/>
+ </xsl:with-param>
+ <xsl:with-param name="method" select="'xml'"/>
+ <xsl:with-param name="encoding" select="'utf-8'"/>
+ <xsl:with-param name="indent" select="'yes'"/>
+ <xsl:with-param name="quiet" select="$chunk.quietly"/>
+ <xsl:with-param name="content">
+ <xsl:choose>
+
+ <xsl:when test="$rootid != ''">
+ <xsl:variable name="title">
+ <xsl:if test="$eclipse.autolabel=1">
+ <xsl:variable name="label.markup">
+ <xsl:apply-templates select="key('id',$rootid)" mode="label.markup"/>
+ </xsl:variable>
+ <xsl:if test="normalize-space($label.markup)">
+ <xsl:value-of select="concat($label.markup,$autotoc.label.separator)"/>
+ </xsl:if>
+ </xsl:if>
+ <xsl:apply-templates select="key('id',$rootid)" mode="title.markup"/>
+ </xsl:variable>
+ <xsl:variable name="href">
+ <xsl:call-template name="href.target.with.base.dir">
+ <xsl:with-param name="object" select="key('id',$rootid)"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <toc label="{normalize-space($title)}">
+ <xsl:apply-templates select="key('id',$rootid)/*" mode="etoc"/>
+ </toc>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:variable name="title">
+ <xsl:if test="$eclipse.autolabel=1">
+ <xsl:variable name="label.markup">
+ <xsl:apply-templates select="/*" mode="label.markup"/>
+ </xsl:variable>
+ <xsl:if test="normalize-space($label.markup)">
+ <xsl:value-of select="concat($label.markup,$autotoc.label.separator)"/>
+ </xsl:if>
+ </xsl:if>
+ <xsl:apply-templates select="/*" mode="title.markup"/>
+ </xsl:variable>
+ <xsl:variable name="href">
+ <xsl:call-template name="href.target.with.base.dir">
+ <xsl:with-param name="object" select="/"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <toc label="{normalize-space($title)}">
+ <xsl:apply-templates select="/*/*" mode="etoc"/>
+ </toc>
+ </xsl:otherwise>
+
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="book|part|reference|preface|chapter|bibliography|appendix|article|glossary|section|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv|index" mode="etoc">
+ <xsl:variable name="title">
+ <xsl:if test="$eclipse.autolabel=1">
+ <xsl:variable name="label.markup">
+ <xsl:apply-templates select="." mode="label.markup"/>
+ </xsl:variable>
+ <xsl:if test="normalize-space($label.markup)">
+ <xsl:value-of select="concat($label.markup,$autotoc.label.separator)"/>
+ </xsl:if>
+ </xsl:if>
+ <xsl:apply-templates select="." mode="title.markup"/>
+ </xsl:variable>
+
+ <xsl:variable name="href">
+ <xsl:call-template name="href.target.with.base.dir">
+ <xsl:with-param name="context" select="/"/> <!-- Generate links relative to the location of root file/toc.xml file -->
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="label">
+ <xsl:call-template name="normalize-xml">
+ <xsl:with-param name="original" select="$title"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <topic label="{normalize-space($label)}" href="{$href}">
+ <xsl:apply-templates select="part|reference|preface|chapter|bibliography|appendix|article|glossary|section|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv|index" mode="etoc"/>
+ </topic>
+
+</xsl:template>
+
+<xsl:template match="text()" mode="etoc"/>
+
+<!--
+<xsl:template name="plugin.xml">
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename">
+ <xsl:if test="$manifest.in.base.dir != 0">
+ <xsl:value-of select="$base.dir"/>
+ </xsl:if>
+ <xsl:value-of select="'plugin.xml'"/>
+ </xsl:with-param>
+ <xsl:with-param name="method" select="'xml'"/>
+ <xsl:with-param name="encoding" select="'utf-8'"/>
+ <xsl:with-param name="indent" select="'yes'"/>
+ <xsl:with-param name="quiet" select="$chunk.quietly"/>
+ <xsl:with-param name="content">
+ <plugin name="{$eclipse.plugin.name}"
+ id="{$eclipse.plugin.id}"
+ version="1.0"
+ provider-name="{$eclipse.plugin.provider}">
+
+ <extension point="org.eclipse.help.toc">
+ <toc file="toc.xml" primary="true"/>
+ </extension>
+ <extension point="org.eclipse.help.index">
+ <index file="index.xml"/>
+ </extension>
+ </plugin>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+-->
+
+<!-- ==================================================================== -->
+<!-- The following templates come from the javahelp xsls with modifications needed to make them generate and ecilpse index.xml file -->
+
+<xsl:template name="helpidx">
+ <xsl:call-template name="write.chunk.with.doctype">
+ <xsl:with-param name="filename" select="concat($base.dir, 'index.xml')"/>
+ <xsl:with-param name="method" select="'xml'"/>
+ <xsl:with-param name="indent" select="'yes'"/>
+ <xsl:with-param name="doctype-public" select="''"/>
+ <xsl:with-param name="doctype-system" select="''"/>
+ <xsl:with-param name="encoding" select="'utf-8'"/>
+ <xsl:with-param name="quiet" select="$chunk.quietly"/>
+ <xsl:with-param name="content">
+ <xsl:call-template name="helpidx.content"/>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
+ <xsl:template name="helpidx.content">
+ <index>
+ <xsl:choose>
+ <xsl:when test="$rootid != ''">
+ <xsl:apply-templates select="key('id',$rootid)//indexterm" mode="idx">
+ <xsl:sort select="normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = '']))"/>
+ <xsl:sort select="normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = '']))"/>
+ <xsl:sort select="normalize-space(concat(tertiary/@sortas, tertiary[not(@sortas) or @sortas = '']))"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="//indexterm" mode="idx">
+ <xsl:sort select="normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = '']))"/>
+ <xsl:sort select="normalize-space(concat(secondary/@sortas, secondary[not(@sortas) or @sortas = '']))"/>
+ <xsl:sort select="normalize-space(concat(tertiary/@sortas, tertiary[not(@sortas) or @sortas = '']))"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </index>
+ </xsl:template>
+
+ <xsl:template match="indexterm[@class='endofrange']" mode="idx"/>
+
+ <xsl:template match="indexterm|primary|secondary|tertiary" mode="idx">
+
+ <xsl:variable name="href">
+ <xsl:call-template name="href.target.with.base.dir">
+ <xsl:with-param name="context" select="/"/> <!-- Generate links relative to the location of root file/toc.xml file -->
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="text">
+ <xsl:value-of select="normalize-space(.)"/>
+ <xsl:if test="following-sibling::*[1][self::see]">
+ <xsl:text> (</xsl:text><xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'see'"/>
+ </xsl:call-template><xsl:text> </xsl:text>
+ <xsl:value-of select="following-sibling::*[1][self::see]"/>)</xsl:if>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="self::indexterm">
+ <xsl:apply-templates select="primary" mode="idx"/>
+ </xsl:when>
+ <xsl:when test="self::primary">
+ <entry keyword="{$text}">
+ <topic href="{$href}"/>
+ <xsl:apply-templates select="following-sibling::secondary" mode="idx"/>
+ </entry>
+ </xsl:when>
+ <xsl:otherwise>
+ <entry keyword="{$text}">
+ <topic href="{$href}"/>
+ <xsl:apply-templates select="following-sibling::tertiary" mode="idx"/>
+ </entry>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+<xsl:template name="normalize-xml">
+<xsl:param name="original"/>
+<xsl:choose>
+ <xsl:when test="contains($original, '&lt;')">
+ <xsl:value-of select="substring-before($original, '&lt;')"/>
+ <xsl:copy-of select="'_lt_'"/>
+ <xsl:call-template name="normalize-xml">
+ <xsl:with-param name="original" select="substring-after($original, '&lt;')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="contains($original, '&gt;')">
+ <xsl:value-of select="substring-before($original, '&gt;')"/>
+ <xsl:copy-of select="'_gt_'"/>
+ <xsl:call-template name="normalize-xml">
+ <xsl:with-param name="original" select="substring-after($original, '&gt;')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test='contains($original, "&apos;")'>
+ <xsl:value-of select='substring-before($original, "&apos;")'/>
+ <xsl:copy-of select="'_apos_'"/>
+ <xsl:call-template name="normalize-xml">
+ <xsl:with-param name="original" select='substring-after($original, "&apos;")'/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="contains($original, '&quot;')">
+ <xsl:value-of select="substring-before($original, '&quot;')"/>
+ <xsl:copy-of select="'_quot_'"/>
+ <xsl:call-template name="normalize-xml">
+ <xsl:with-param name="original" select="substring-after($original, '&quot;')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$original"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+ <!-- ==================================================================== -->
+
+</xsl:stylesheet>
diff --git a/doc/org.eclipse.qvtd.doc/styles/eclipsehelp.xsl b/doc/org.eclipse.qvtd.doc/styles/eclipsehelp.xsl
new file mode 100644
index 000000000..2d9368d91
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/styles/eclipsehelp.xsl
@@ -0,0 +1,58 @@
+<?xml version='1.0'?>
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"
+ version="1.0">
+
+ <xsl:import href="eclipse.xsl" />
+ <xsl:output method="html" indent="yes" encoding="ISO-8859-1" omit-xml-declaration="yes" />
+
+ <xsl:param name="manifest.in.base.dir" select="0" />
+ <xsl:param name="eclipse.autolabel" select="1" />
+
+ <xsl:param name="html.stylesheet">book.css</xsl:param>
+ <xsl:param name="chunk.first.sections" select="0" />
+ <xsl:param name="chunk.section.depth" select="1" />
+ <xsl:param name="base.dir" select="'help/'"></xsl:param>
+ <xsl:param name="use.id.as.filename" select="1" />
+ <xsl:param name="suppress.navigation" select="1" />
+ <xsl:param name="chapter.autolabel" select="0" />
+ <xsl:param name="generate.section.toc.level" select="1"></xsl:param>
+ <xsl:param name="toc.max.depth">1</xsl:param>
+ <xsl:param name="table.borders.with.css" select="1"></xsl:param>
+ <xsl:param name="table.cell.border.color" select="'#000000'"></xsl:param>
+ <xsl:param name="table.cell.border.thickness" select="'2'"></xsl:param>
+ <xsl:param name="html.cellspacing" select="'0'"></xsl:param>
+ <xsl:param name="html.cellpadding" select="'10'"></xsl:param>
+
+ <xsl:param name="html.cleanup" select="1"></xsl:param>
+
+ <xsl:param name="generate.toc">
+ appendix toc,title
+ article/appendix nop
+ article toc,title
+ book nop
+ chapter toc
+ part toc
+ preface toc,title
+ qandadiv toc
+ qandaset toc
+ reference toc,title
+ sect1 nop
+ sect2 nop
+ sect3 nop
+ sect4 nop
+ sect5 nop
+ section nop
+ set toc,title
+ </xsl:param>
+
+ <xsl:param name="ulink.target" select="'_new'"/>
+
+ <!-- Make sure each chunk has a decent (visible!) heading -->
+ <xsl:template name="user.header.content">
+ <h1><xsl:value-of select="./title"/></h1>
+ </xsl:template>
+
+
+</xsl:stylesheet> \ No newline at end of file
diff --git a/doc/org.eclipse.qvtd.doc/styles/html.xsl b/doc/org.eclipse.qvtd.doc/styles/html.xsl
new file mode 100644
index 000000000..253de6fc7
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/styles/html.xsl
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+ <xsl:import href="docbook.xsl" />
+ <xsl:output method="html" indent="yes" encoding="ISO-8859-1" omit-xml-declaration="yes" />
+
+ <xsl:param name="html.stylesheet">book.css</xsl:param>
+ <xsl:param name="chunk.first.sections" select="0" />
+ <xsl:param name="chunk.section.depth" select="0" />
+ <xsl:param name="base.dir" select="'contents/'"></xsl:param>
+ <xsl:param name="use.id.as.filename" select="1" />
+ <xsl:param name="suppress.navigation" select="0" />
+ <xsl:param name="chapter.autolabel" select="1" />
+ <xsl:param name="generate.section.toc.level" select="2"></xsl:param>
+ <xsl:param name="toc.max.depth">2</xsl:param>
+ <xsl:param name="table.borders.with.css" select="1"></xsl:param>
+ <xsl:param name="table.cell.border.color" select="'#000000'"></xsl:param>
+ <xsl:param name="table.cell.border.thickness" select="'2'"></xsl:param>
+ <xsl:param name="html.cellspacing" select="'0'"></xsl:param>
+ <xsl:param name="html.cellpadding" select="'10'"></xsl:param>
+
+ <xsl:param name="html.cleanup" select="1"></xsl:param>
+
+ <xsl:param name="generate.toc">
+ appendix nop
+ article/appendix nop
+ article nop
+ book toc,title,figure,table,example,equation
+ chapter nop
+ part nop
+ preface nop
+ qandadiv nop
+ qandaset nop
+ reference nop
+ sect1 nop
+ sect2 nop
+ sect3 nop
+ sect4 nop
+ sect5 nop
+ section nop
+ set nop
+ </xsl:param>
+
+</xsl:stylesheet> \ No newline at end of file
diff --git a/doc/org.eclipse.qvtd.doc/styles/inline.xsl b/doc/org.eclipse.qvtd.doc/styles/inline.xsl
new file mode 100644
index 000000000..230409fcb
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/styles/inline.xsl
@@ -0,0 +1,17 @@
+<?xml version='1.0'?>
+<xsl:stylesheet
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+ <xsl:template match="comment|remark">
+ <!--xsl:if test="$show.comments != 0">
+ <fo:block font-style="italic">
+ <fo:inline background-color="#FFEE30">
+ <xsl:call-template name="inline.charseq"/>
+ </fo:inline>
+ </fo:block>
+ </xsl:if-->
+ </xsl:template>
+
+</xsl:stylesheet> \ No newline at end of file
diff --git a/doc/org.eclipse.qvtd.doc/styles/titlepage.xsl b/doc/org.eclipse.qvtd.doc/styles/titlepage.xsl
new file mode 100644
index 000000000..e25c22cb0
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/styles/titlepage.xsl
@@ -0,0 +1,100 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0"
+ xmlns="http://www.w3.org/TR/xhtml1/transitional"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ exclude-result-prefixes="#default">
+
+<!--###################################################
+ Custom Title Page
+ ################################################### -->
+<!-- Define the margins, background image for the cover page -->
+ <xsl:template name="user.pagemasters">
+ <fo:page-sequence-master master-name="coversequence">
+ <fo:repeatable-page-master-alternatives>
+ <fo:conditional-page-master-reference master-reference="my.titlepage" page-position="first"/>
+ <fo:conditional-page-master-reference master-reference="my.titlepage" odd-or-even="odd"/>
+ <fo:conditional-page-master-reference master-reference="my.titlepage" odd-or-even="even"/>
+ <fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/>
+ </fo:repeatable-page-master-alternatives>
+ </fo:page-sequence-master>
+ <fo:simple-page-master master-name="my.titlepage"
+ page-width="{$page.width}"
+ page-height="{$page.height}"
+ margin-top="20mm"
+ margin-bottom="20mm"
+ margin-left="{$page.margin.inner}"
+ margin-right="{$page.margin.outer}">
+ <fo:region-body margin-bottom="20"
+ margin-top="20"
+ column-count="{$column.count.titlepage}">
+ </fo:region-body>
+ <fo:region-before region-name="xsl-region-before-even"
+ extent="0"
+ display-align="before"/>
+ <fo:region-after region-name="xsl-region-after-even"
+ extent="0"
+ display-align="after"/>
+ </fo:simple-page-master>
+ </xsl:template>
+
+ <xsl:template name="select.user.pagemaster">
+ <xsl:param name="element"/>
+ <xsl:param name="pageclass"/>
+ <xsl:param name="default-pagemaster"/>
+ <xsl:choose>
+ <xsl:when test="$element = 'book' and $pageclass = 'titlepage'">
+ <xsl:value-of select="'coversequence'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$default-pagemaster"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="book.titlepage.recto">
+ <fo:block>
+ <fo:table table-layout="fixed" width="175mm">
+ <fo:table-column column-width="175mm"/>
+ <fo:table-body>
+ <fo:table-row height="20pc">
+ <fo:table-cell text-align="center">
+ <fo:block> </fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell text-align="center">
+ <fo:block>
+ <fo:external-graphic src="file:images/logo/Xtext-logo-dark-1600.png" content-width="10cm"/>
+ <!-- <fo:external-graphic src="file:images/logo/Xtext-logo-dark.pdf" content-width="5cm"/>-->
+ </fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell text-align="center">
+ <fo:block font-family="Helvetica" font-size="24pt" padding-before="25mm">
+ <xsl:value-of select="title"/>
+ </fo:block>
+ <fo:block font-family="Helvetica" font-size="12pt">
+ <!-- <xsl:value-of select="bookinfo/releaseinfo"/> -->
+ <xsl:text>Edward Willink and contributors</xsl:text>
+ </fo:block>
+ <fo:block font-family="Helvetica" font-size="12pt" padding="10mm">
+ <xsl:text>Copyright 2009 - 2016</xsl:text>
+ </fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table>
+ </fo:block>
+ </xsl:template>
+
+ <!-- Prevent blank pages in output -->
+ <xsl:template name="book.titlepage.before.verso">
+ </xsl:template>
+
+ <xsl:template name="book.titlepage.verso">
+ </xsl:template>
+ <xsl:template name="book.titlepage.separator">
+ </xsl:template>
+
+</xsl:stylesheet> \ No newline at end of file
diff --git a/doc/org.eclipse.qvtd.doc/styles/xmpp.xsl b/doc/org.eclipse.qvtd.doc/styles/xmpp.xsl
new file mode 100644
index 000000000..39318bd86
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/styles/xmpp.xsl
@@ -0,0 +1,276 @@
+<?xml version='1.0'?>
+<xsl:stylesheet
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ version="1.0">
+
+ <!-- Include other stylesheets -->
+ <xsl:import href="docbook.xsl"/>
+ <xsl:include href="inline.xsl" />
+ <xsl:include href="component.xsl" />
+ <xsl:include href="titlepage.xsl"/>
+
+ <!-- Images -->
+ <xsl:param name="draft.watermark.image" select="''"/>
+
+ <!-- Enable bookmarks -->
+ <xsl:param name="fop1.extensions" select="1"/>
+
+ <!-- Do not print out URLs -->
+ <xsl:param name="ulink.show" select="0"/>
+
+ <!-- Paper type, no headers on blank pages, no double sided printing -->
+ <xsl:param name="paper.type" select="'A4'"/>
+ <xsl:param name="double.sided">0</xsl:param>
+ <xsl:param name="headers.on.blank.pages">0</xsl:param>
+ <xsl:param name="footers.on.blank.pages">0</xsl:param>
+
+ <!-- Custom page footers -->
+ <xsl:template name="footer.content">
+ <xsl:param name="pageclass" select="''"/>
+ <xsl:param name="sequence" select="''"/>
+ <xsl:param name="position" select="''"/>
+ <xsl:param name="gentext-key" select="''"/>
+
+ <xsl:variable name="Version">
+ <xsl:choose>
+ <xsl:when test="//releaseinfo">
+ <xsl:text>Eclipse QVTd </xsl:text><xsl:value-of select="//releaseinfo"/>
+ </xsl:when>
+ <xsl:otherwise>
+ Eclipse QVTd 0.13.0
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$sequence='blank'">
+ <xsl:choose>
+ <xsl:when test="$double.sided != 0 and $position = 'left'">
+ <xsl:value-of select="$Version"/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided = 0 and $position = 'center'">
+ <!-- nop -->
+ </xsl:when>
+
+ <xsl:otherwise>
+ <fo:page-number/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+
+ <xsl:when test="$pageclass='titlepage'">
+ <!-- nop: other titlepage sequences have no footer -->
+ </xsl:when>
+
+ <xsl:when test="$double.sided != 0 and $sequence = 'even' and $position='left'">
+ <fo:page-number/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided != 0 and $sequence = 'odd' and $position='right'">
+ <fo:page-number/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided = 0 and $position='right'">
+ <fo:page-number/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided != 0 and $sequence = 'odd' and $position='left'">
+ <xsl:value-of select="$Version"/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided != 0 and $sequence = 'even' and $position='right'">
+ <xsl:value-of select="$Version"/>
+ </xsl:when>
+
+ <xsl:when test="$double.sided = 0 and $position='left'">
+ <xsl:value-of select="$Version"/>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <!-- nop -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <!--<xsl:param name="header.column.widths">0 1 0</xsl:param>-->
+ <!--<xsl:attribute-set name="header.content.properties">
+ <xsl:attribute name="font-family">Helvetica</xsl:attribute>
+ <xsl:attribute name="font-size">12pt</xsl:attribute>
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
+ </xsl:attribute-set>-->
+
+ <!--<xsl:attribute-set name="footer.content.properties">
+ <xsl:attribute name="font-family">Helvetica</xsl:attribute>
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
+ </xsl:attribute-set>
+ <xsl:param name="footer.rule" select="0"/>-->
+
+ <!--
+ <xsl:param name="page.margin.top" select="'3.9cm'"/>
+ <xsl:param name="page.margin.bottom" select="'3.9cm'"/>
+ <xsl:param name="page.margin.inner" select="'4cm'"/>
+ <xsl:param name="page.margin.outer" select="'4cm'"/>
+ -->
+
+ <xsl:param name="body.start.indent" select="'0'"/>
+ <xsl:param name="body.margin.bottom" select="'1.2cm'"/>
+
+ <xsl:attribute-set name="normal.para.spacing">
+ <xsl:attribute name="space-before.optimum">0.4em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.3em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0.5em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="list.block.spacing">
+ <xsl:attribute name="space-before.optimum">0.4em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.3em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0.5em</xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.4em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.3em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.5em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="list.item.spacing">
+ <xsl:attribute name="space-before.optimum">0.4em</xsl:attribute>
+ <xsl:attribute name="space-before.minimum">0.3em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0.5em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="verbatim.properties">
+ <xsl:attribute name="space-before.minimum">0.3em</xsl:attribute>
+ <xsl:attribute name="space-before.optimum">0.4em</xsl:attribute>
+ <xsl:attribute name="space-before.maximum">0.5em</xsl:attribute>
+ <xsl:attribute name="space-after.minimum">0.3em</xsl:attribute>
+ <xsl:attribute name="space-after.optimum">0.4em</xsl:attribute>
+ <xsl:attribute name="space-after.maximum">0.5em</xsl:attribute>
+ <xsl:attribute name="hyphenate">false</xsl:attribute>
+ <xsl:attribute name="wrap-option">no-wrap</xsl:attribute>
+ <xsl:attribute name="white-space-collapse">false</xsl:attribute>
+ <xsl:attribute name="white-space-treatment">preserve</xsl:attribute>
+ <xsl:attribute name="linefeed-treatment">preserve</xsl:attribute>
+ <xsl:attribute name="text-align">start</xsl:attribute>
+ <xsl:attribute name="start-indent">3pc</xsl:attribute>
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
+ <xsl:attribute name="keep-together.within-column">always</xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- PETER -->
+ <!-- <xsl:param name="title.margin.left">-3pc</xsl:param> -->
+ <xsl:param name="body.start.indent">3pc</xsl:param>
+ <xsl:param name="part.autolabel" select="1"/>
+ <xsl:param name="chapter.autolabel" select="1"/>
+ <xsl:param name="section.autolabel" select="1"/>
+ <xsl:param name="section.autolabel.max.depth" select="3"/>
+ <xsl:param name="section.label.includes.component.label" select="1"/>
+
+ <xsl:attribute-set name="section.title.level1.properties" use-attribute-sets="section.properties">
+ <xsl:attribute name="border-bottom-style">solid</xsl:attribute>
+ <xsl:attribute name="border-bottom-width">1pt</xsl:attribute>
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.728"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="section.title.level2.properties">
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.44"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="section.title.level3.properties">
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.2"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="xref.properties">
+ <xsl:attribute name="color">
+ <xsl:choose>
+ <xsl:when test="self::link">blue</xsl:when>
+ <xsl:when test="self::ulink">blue</xsl:when>
+ <xsl:otherwise>inherit</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+
+ <xsl:attribute name="text-decoration">
+ <xsl:choose>
+ <xsl:when test="self::link">underline</xsl:when>
+ <xsl:when test="self::ulink">underline</xsl:when>
+ <xsl:otherwise>inherit</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+</xsl:attribute-set>
+
+ <xsl:param name="variablelist.as.blocks" select="0"/>
+
+ <!-- Fonts & colors -->
+ <xsl:param name="body.font.master" select="10"/>
+ <xsl:param name="body.font.family" select="'Birka,Gentium Basic,Times'"/>
+ <xsl:param name="title.font.family" select="'Myriad Pro,Delicious,Helvetica'"/>
+ <xsl:param name="monospace.font.family" select="'Inconsolata,Courier'"/>
+
+ <xsl:attribute-set name="monospace.verbatim.properties">
+ <xsl:attribute name="font-size">.8em</xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="nongraphical.admonition.properties">
+ <xsl:attribute name="background-color">#F0F0F0</xsl:attribute>
+ <xsl:attribute name="padding">5pt</xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:param name="shade.verbatim" select="1"/>
+ <xsl:attribute-set name="shade.verbatim.style">
+ <xsl:attribute name="border">0</xsl:attribute>
+ <xsl:attribute name="background-color">#F0F0F0</xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="section.title.chapter.properties">
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.8"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="section.title.level1.properties">
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.7"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <!--<xsl:attribute name="border-bottom">1pt solid #505050</xsl:attribute>-->
+ </xsl:attribute-set>
+
+ <xsl:attribute-set name="section.title.level2.properties">
+ <xsl:attribute name="font-size">
+ <xsl:value-of select="$body.font.master * 1.4"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ </xsl:attribute-set>
+
+ <!-- FIXME: Doesn't work
+ <xsl:attribute-set name="bibliography.title.properties">
+ <xsl:attribute name="break-before">page</xsl:attribute>
+ </xsl:attribute-set>
+ -->
+
+ <xsl:attribute-set name="toc.line.properties">
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
+ <xsl:attribute name="font-weight">
+ <xsl:choose>
+ <xsl:when test="self::chapter | self::preface | self::appendix">bold</xsl:when>
+ <xsl:otherwise>normal</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:attribute-set>
+
+ <xsl:param name="generate.toc">
+ book toc,title
+ </xsl:param>
+
+</xsl:stylesheet> \ No newline at end of file
diff --git a/doc/org.eclipse.qvtd.doc/textileBuild.xml b/doc/org.eclipse.qvtd.doc/textileBuild.xml
new file mode 100644
index 000000000..b30497037
--- /dev/null
+++ b/doc/org.eclipse.qvtd.doc/textileBuild.xml
@@ -0,0 +1,285 @@
+<!--
+ Some of the code below is
+ (c) Chris Aniszczyk <caniszczyk@gmail.com>
+ (c) Lawrence Mandel <lmandel@ca.ibm.com>
+ (c) Peter Friese <peter.friese@itemis.com>
+-->
+<project name="org.eclipse.qvtd.doc" default="build-doc" basedir=".">
+
+ <!--
+ Global vars
+ -->
+ <property name="document.name" value="qvtd"/>
+ <property name="document.stylesheet" value="styles/html.xsl"/>
+ <property name="document.pdf.stylesheet" value="styles/xmpp.xsl"/>
+
+ <property name="document.eclipse.stylesheet" value="styles/eclipsehelp.xsl"/>
+ <property name="eclipsehelp-css.file" value="styles/book.css" />
+ <property name="html-css.file" value="styles/book.css" />
+
+ <property name="build.dir" value="build" />
+ <property name="download.dir" value="${java.io.tmpdir}${file.separator}downloads"/>
+
+ <!--
+ WikiText Toolchain
+ <property name="wikitext.url" value="http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/tools/mylyn/update/weekly/mylyn-wikitext-standalone-latest.zip"/>
+ <property name="wikitext.url" value="http://download.eclipse.org/mylyn/snapshots/nightly/docs/wikitext-standalone-latest.zip"/>
+ <property name="wikitext.url" value="http://download.eclipse.org/mylyn/drops/3.10.0/v20131025-2037/mylyn-3.10.0.v20131025-2037.zip"/>
+ -->
+ <property name="wikitext.dir" value="${download.dir}${file.separator}wikitext"/>
+
+ <!-- adolfosbh: We expect to receive a target.location to provide some jars to the xslt ant tasks
+ in the said target.location is not provided, we try to use the tipical ${eclipse.home} variable -->
+ <condition property="target.location" value="${eclipse.home}">
+ <not>
+ <isset property="target.location"/>
+ </not>
+ </condition>
+ <echo>Target Location: "${target.location}" </echo>
+ <echo>download.dir "${download.dir}" </echo>
+ <path id="xslt.classpath">
+ <pathelement path="${java.class.path}"/>
+ <pathelement path="${target.location}/plugins/org.apache.xalan_2.7.1.v201005080400.jar"/>
+ <pathelement path="${target.location}/plugins/org.apache.xml.serializer_2.7.1.v201005080400.jar"/>
+ <!--pathelement path="${target.location}/plugins/com.google.guava_10.0.1.v201203051515.jar"/-->
+ </path>
+
+
+ <target name="install-wikitext">
+ <echo>Find wikitext tasks</echo>
+ <!--echo>echoproperties to "${user.dir}${file.separator}install-wikitext.properties"</echo>
+ <echoproperties destfile="${user.dir}${file.separator}install-wikitext.properties"/-->
+ <taskdef resource="org/eclipse/mylyn/wikitext/core/ant/tasks.properties">
+ <classpath>
+ <fileset dir="${target.location}${file.separator}plugins">
+ <include name="com.google.guava*.jar"/>
+ <include name="org.eclipse.mylyn.wikitext.core*.jar"/>
+ <include name="org.eclipse.mylyn.wikitext.core.ant*.jar"/>
+ <include name="org.eclipse.mylyn.wikitext.textile.core*.jar"/>
+ </fileset>
+ </classpath>
+ </taskdef>
+ </target>
+
+ <target name="assemble">
+ <echo>Assembling contributions to "${build.dir}${file.separator}${document.name}.textile"</echo>
+ <loadfile srcfile="doc/${document.name}-index.txt" property="inputfiles">
+ <filterchain>
+ <tokenfilter>
+ <replacestring from="\n" to=","/>
+ </tokenfilter>
+ </filterchain>
+ </loadfile>
+ <concat destfile="${build.dir}${file.separator}${document.name}.textile" append="false" fixlastline="yes">
+ <filelist dir="doc" files="${inputfiles}"/>
+ </concat>
+ </target>
+
+ <target name="wikitext2docbook" depends="assemble" description="Generate DocBook from Textile">
+ <wikitext-to-docbook markupLanguage="org.eclipse.mylyn.wikitext.textile.core.TextileLanguage"
+ booktitle="QVT Declarative Documentation"
+ validate="true">
+ <fileset dir="${build.dir}">
+ <include name="${document.name}.textile"/>
+ </fileset>
+ </wikitext-to-docbook>
+ </target>
+
+ <!--
+ DocBook Toolchain
+ -->
+ <!-- <property name="docbook.version" value="1.73.2" /> -->
+ <property name="docbook.version" value="1.75.1" />
+ <property name="docbook.dir" value="${download.dir}${file.separator}docbook-xsl-${docbook.version}"/>
+ <property name="docbookxsl.url" value="http://downloads.sourceforge.net/project/docbook/docbook-xsl/1.75.1/docbook-xsl-${docbook.version}.zip"/>
+ <property name="fop.dir" value="${download.dir}${file.separator}fop-0.95"/>
+ <property name="fop.url" value="http://archive.apache.org/dist/xmlgraphics/fop/binaries/fop-0.95-bin.zip"/>
+ <property name="jai.dir" value="ENTER_JAI_DIRECTORY"/>
+
+ <macrodef name="docbook2pdf">
+ <attribute name="source"/>
+ <attribute name="target"/>
+ <sequential>
+ <taskdef name="fop" classname="org.apache.fop.tools.anttasks.Fop">
+ <classpath>
+ <pathelement location="${fop.dir}${file.separator}build${file.separator}fop.jar" />
+ <pathelement location="${fop.dir}${file.separator}lib${file.separator}avalon-framework-4.2.0.jar" />
+ <pathelement location="${fop.dir}${file.separator}lib${file.separator}commons-logging-1.0.4.jar" />
+ <pathelement location="${fop.dir}${file.separator}lib${file.separator}commons-io-1.3.1.jar" />
+ <pathelement location="${fop.dir}${file.separator}lib${file.separator}batik-all-1.7.jar" />
+ <pathelement location="${fop.dir}${file.separator}lib${file.separator}xmlgraphics-commons-1.3.1.jar" />
+ <pathelement location="${jai.dir}${file.separator}lib${file.separator}jai_core.jar" />
+ <pathelement location="${jai.dir}${file.separator}lib${file.separator}jai_codec.jar" />
+ </classpath>
+ </taskdef>
+ <fop
+ format="application/pdf"
+ fofile="@{source}"
+ outfile="@{target}"
+ messagelevel="info"/>
+ </sequential>
+ </macrodef>
+
+ <target name="init">
+ <mkdir dir="${download.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ </target>
+
+ <target name="build-doc" depends="init, install-wikitext, get-docbook-xsl, get-fop">
+ <echo>Building Output...</echo>
+ <antcall target="wikitext2docbook"/>
+ <antcall target="docbook2pdf"/>
+ <antcall target="docbook2html"/>
+ <antcall target="docbook2eclipsehelp"/>
+ </target>
+
+ <target name="check-docbook">
+ <condition property="hasDocbook">
+ <and>
+ <available file="${download.dir}${file.separator}docbook.zip" property="hasDocbookZip"/>
+ <available file="${docbook.dir}" type="dir" property="hasDocbookDir"/>
+ </and>
+ </condition>
+ </target>
+
+ <target name="check-fop">
+ <condition property="hasFOP">
+ <and>
+ <available file="${download.dir}${file.separator}fop.zip" property="hasFOPZip"/>
+ <available file="${fop.dir}" type="dir" property="hasFOPDir"/>
+ </and>
+ </condition>
+ </target>
+
+ <target name="get-docbook-xsl" description="Downloads docbook xsl" depends="check-docbook" unless="hasDocbook">
+ <echo>Downloading DocBook XSL...</echo>
+ <get dest="${download.dir}${file.separator}docbook.zip" src="${docbookxsl.url}" usetimestamp="true" retries="5"/>
+ <unzip src="${download.dir}${file.separator}docbook.zip" dest="${download.dir}"/>
+ </target>
+
+ <target name="get-fop" description="Downloads FOP" depends="check-fop" unless="hasFOP">
+ <echo>Downloading FOP...</echo>
+ <get dest="${download.dir}${file.separator}fop.zip" src="${fop.url}" usetimestamp="true" retries="5"/>
+ <unzip src="${download.dir}${file.separator}fop.zip" dest="${download.dir}"/>
+ </target>
+
+ <target name="docbook2html">
+ <echo>Converting article to HTML...</echo>
+ <echo>XML Catalog "docbook.xsl" => "${docbook.dir}${file.separator}html${file.separator}docbook.xsl"</echo>
+ <delete dir="${basedir}/html"
+ failonerror="false"
+ excludes="CVS"
+ includeemptydirs="true"/>
+
+ <copy todir="${basedir}/html">
+ <fileset dir="doc/">
+ <include name="images/**" />
+ </fileset>
+ </copy>
+ <copy file="${html-css.file}" todir="${basedir}/html" />
+ <xslt classpathref="xslt.classpath" in="${build.dir}${file.separator}${document.name}.xml" extension="xml" out="${basedir}/html${file.separator}${document.name}.html" style="${document.stylesheet}">
+
+ <factory name="org.apache.xalan.processor.TransformerFactoryImpl">
+ <attribute name="http://xml.apache.org/xalan/features/optimize" value="true"/>
+ </factory>
+ <xmlcatalog>
+ <entity
+ publicId="docbook.xsl"
+ location="${docbook.dir}${file.separator}html${file.separator}docbook.xsl"/>
+ </xmlcatalog>
+ <param name="header.rule" expression="1" />
+ <param name="admon.graphics.extension" expression=".gif"/>
+ <param name="admon.textlabel" expression="0"/>
+ <param name="ulink.target" expression="_new"/>
+ <param name="ignore.image.scaling" expression="1"/>
+ </xslt>
+ </target>
+
+ <target name="docbook2pdf">
+ <echo>Converting article to "manual${file.separator}${document.name}.pdf"</echo>
+ <echo>XML Catalog "docbook.xsl" => "${docbook.dir}${file.separator}fo${file.separator}docbook.xsl"</echo>
+ <delete file="manual${file.separator}${document.name}.pdf" failonerror="false"/>
+ <delete file="${build.dir}${file.separator}${document.name}.fo"/>
+ <mkdir dir="manual"/>
+
+ <!-- HACK! images should rather be copied to build/images -->
+ <copy todir="${basedir}">
+ <fileset dir="doc/">
+ <include name="images/**" />
+ </fileset>
+ </copy>
+
+
+ <xslt classpathref="xslt.classpath" in="${build.dir}${file.separator}${document.name}.xml" extension="xml" out="${build.dir}${file.separator}${document.name}.fo" style="${document.pdf.stylesheet}">
+ <factory name="org.apache.xalan.processor.TransformerFactoryImpl">
+ <attribute name="http://xml.apache.org/xalan/features/optimize" value="true"/>
+ </factory>
+ <xmlcatalog>
+ <entity
+ publicId="docbook.xsl"
+ location="${docbook.dir}${file.separator}fo${file.separator}docbook.xsl"/>
+ </xmlcatalog>
+ <param name="generate.toc" expression="book toc" />
+ <param name="header.rule" expression="1" />
+ <param name="admon.graphics.extension" expression=".gif"/>
+ <param name="admon.textlabel" expression="0"/>
+ <param name="admon.graphics" expression="1"/>
+ </xslt>
+
+ <docbook2pdf
+ source="${build.dir}${file.separator}${document.name}.fo"
+ target="manual${file.separator}${document.name}.pdf"/>
+
+ <!-- Remove the resulting formatting object. This object isn't necessary in the
+ result of this build. -->
+ <delete file="${build.dir}${file.separator}${document.name}.fo" />
+ <delete dir="${basedir}/images" />
+ </target>
+
+ <target name="wikitext2eclipsehelp" depends="assemble" description="Generate Eclipse Help from textile">
+ <wikitext-to-eclipse-help markupLanguage="org.eclipse.mylyn.wikitext.textile.core.TextileLanguage"
+ multipleOutputFiles="true"
+ navigationImages="false"
+ formatoutput="true"
+ helpPrefix="help">
+ <fileset dir="${build.dir}">
+ <include name="${document.name}.textile"/>
+ </fileset>
+ <stylesheet url="book.css"/>
+ <stylesheet file="${basedir}/help/styles/main.css"/>
+ </wikitext-to-eclipse-help>
+ </target>
+
+ <target name="docbook2eclipsehelp">
+ <echo>Converting article to Eclipse Help...</echo>
+ <delete dir="${basedir}/help"
+ failonerror="false"
+ excludes="CVS"
+ includeemptydirs="true"/>
+ <copy todir="${basedir}/help/images">
+ <fileset dir="doc/images">
+ <include name="**/*" />
+ </fileset>
+ </copy>
+ <copy file="${eclipsehelp-css.file}" todir="${basedir}/help" />
+
+ <xslt classpathref="xslt.classpath" basedir="${build.dir}" destdir="${basedir}" style="${document.eclipse.stylesheet}">
+ <param name="chunk.quietly" expression="1"/>
+ <include name="qvtd.xml"/>
+ <factory name="org.apache.xalan.processor.TransformerFactoryImpl">
+ <attribute name="http://xml.apache.org/xalan/features/optimize" value="true"/>
+ </factory>
+ <xmlcatalog>
+ <entity
+ publicId="chunk.xsl"
+ location="${docbook.dir}${file.separator}html${file.separator}chunk.xsl"/>
+ </xmlcatalog>
+ <param name="header.rule" expression="1" />
+ <param name="ignore.image.scaling" expression="1" />
+ </xslt>
+ <delete file="${basedir}/qvtd.html" />
+ </target>
+
+
+
+</project> \ No newline at end of file
diff --git a/doc/org.eclipse.qvtd.doc/toc.xml b/doc/org.eclipse.qvtd.doc/toc.xml
index 90b9972ee..bfaf44256 100644
--- a/doc/org.eclipse.qvtd.doc/toc.xml
+++ b/doc/org.eclipse.qvtd.doc/toc.xml
@@ -1,4 +1,41 @@
-<toc topic="help/index.html" label="QVT Declarative Documentation">
-<topic href="help/Overview.html" label="Overview">
-</topic>
-</toc>
+<toc label="QVT Declarative Documentation">
+<topic href="help/OverviewandGettingStarted.html" label="Overview and Getting Started">
+<topic href="help/OverviewandGettingStarted.html#WhatisQVTQueryViewTransformation" label="What is QVT?">
+<topic href="help/OverviewandGettingStarted.html#ModelingLayers" label="Modeling Layers"></topic>
+</topic>
+<topic href="help/HowDoesItWork.html" label="How Does It Work?">
+<topic href="help/HowDoesItWork.html#Editing" label="Editing">
+<topic href="help/HowDoesItWork.html#Status" label="Status"></topic>
+</topic>
+<topic href="help/HowDoesItWork.html#Execution" label="Execution">
+<topic href="help/HowDoesItWork.html#Status2" label="Status"></topic>
+</topic>
+<topic href="help/HowDoesItWork.html#Debugger" label="Debugger">
+<topic href="help/HowDoesItWork.html#Status3" label="Status"></topic>
+</topic>
+</topic>
+<topic href="help/WhoisBehindEclipseQVTd.html" label="Who is Behind Eclipse QVTd?"></topic>
+<topic href="help/GettingStarted.html" label="Getting Started">
+<topic href="help/GettingStarted.html#QVTrExampleProject" label="QVTr Example Project">
+<topic href="help/GettingStarted.html#ProjectTransformation" label="Project / Transformation"></topic>
+<topic href="help/GettingStarted.html#Inputs" label="Inputs"></topic>
+<topic href="help/GettingStarted.html#Newoutputs" label="New outputs"></topic>
+<topic href="help/GettingStarted.html#Intermediates" label="Intermediates"></topic>
+<topic href="help/GettingStarted.html#Build" label="Build">
+<topic href="help/GettingStarted.html#Run" label="Run"></topic>
+</topic>
+</topic>
+<topic href="help/GettingStarted.html#QVTcExampleProject" label="QVTc Example Project"></topic>
+</topic>
+<topic href="help/Extensions.html" label="Extensions">
+<topic href="help/Extensions.html#Import" label="Import"></topic>
+<topic href="help/Extensions.html#Packages" label="Packages"></topic>
+<topic href="help/Extensions.html#QVTc Middle Model" label="QVTc Middle Model"></topic>
+<topic href="help/Extensions.html#QVTr Middle Model" label="QVTr Middle Model"></topic>
+<topic href="help/Extensions.html#Collection Templates" label="QVTr Collection Templates"></topic>
+<topic href="help/Extensions.html#OCL/EMOF Metamodels" label="OCL/EMOF Metamodels"></topic>
+<topic href="help/Extensions.html#this" label="this"></topic>
+</topic>
+</topic>
+<topic href="help/glossary.html" label="A. Glossary"></topic>
+</toc>

Back to the top