Introduction
XIG (an XSLT-based XMI2GXL translator) is one of the tools using the new GXL format (Graph Exchange Language), a graph-based exchange language. GXL has been built as an XML (Extended Markup Language) sublanguage and so it conforms to the XML definitions. The definition of GXL itself can be found in the GXL DTD (Document Type Definition) and is described and visualized in the following documents: GXL Graph Model, GXL Schema, GXL Metaschema. For more information about GXL and its goals, please see gxl/the_basics.

One point which has to be mentioned here are the the abilities of GXL. Because of its construction, GXL can, on the one hand be useful for representing structure of data, using graph-schemata, which are themselves GXL Meta Schema derived graphs, and on the other hand, it can be utilized for storing graphs, as instances of these schemata.
For a greater interoperability and flexibility of this new format it is necessary to build some translator tools, of course. One of these tools is XIG, which transforms XMI-based (XML Metadata Interchange) UML class diagrams (Unified Modelling Language) to GXL-based graph schemata (the detailed correlations are explained in gxl/the_basics). XMI is an XML-based standard data exchange format used by UML case tools like ArgoUML(tm) - for more details see xmi/the_basics.

As can be seen (more fully in gxl/the_basics), the XMI-to-GXL transformation is an XML-to-XML transformation, using sublanguages with different style but the same data structure, the tree. As the also XML-based stylesheet-transformation-language XSLT (Extensible Stylesheet Language Transformations) which is a part of XSL (Extensible Stylsheet Language), a language, which is used for defining stylesheets and therefore uses XSLT, is specially designed for this issue, XIG uses the XSLT definition for the transformation.
To give an overview, it is useful to explain the basics of all the languages, which were needed to build XIG and give some links for more specific details. The following pages are available:
| what_is_xml | Not only the source and the target code but also all used languages are XML-based languages. Therefore, XML is the fundamental part of the whole translation. |
| what_is_xpath | For the transformation of the source documents it is necessary to address specific parts of the trees; to handle this, XPath defines a whole data model for accessing parts of the structure. |
| what_is_xlink | The GXL definition uses instances of these links for referencing outsourced documents (e.g. the corresponing schema elements). |
| what_is_xpointer | XPointer is a combination if XPath and XLink, what means that XPoint expressions are XLinks, which are extended by XPath axes. |
| what_is_xslt | XIG directly uses the elements of this XML sub-languages, which contains itself all of the upper ones as parts. |