STOX

Users

Download STOX files

Project detail and discuss

Get support

Project Information

STOX is a project for 'successive translation of xml-languages'. The term 'translation' means the transformation of xml-documents into a given xml-language according to a special processing model. The processing model permits the creation of hierarchical xml-layers of abstraction comparable to functions and procedures in a programs source code. The primary goal is to build a versatile processor, others might be to make up the specification, create some auxiliary tools, provide mathematical insight concerning graph transformations, context free grammars e.a.

A transformation of an xml-document according to the STOX processing model.is always carried out in relation to a given xml target language. The elements of this target language are called primitives. The input-document is traversed in pre order. An element node X is transformed in the way, that the whole subtree with root X is replaced with the result of the transformation of X (so that the root of the result tree is put in the place of X). If the root of the result tree is not a primitive, it will be processed again. So every node is processed until it is replaced with a primitive element. After this the transformation is continued with the child elements. Provided that for every occuring element node a transformation is defined, the result tree will contain only primitive element nodes.

It may be helpful to compare the processing model with XSLT. In both cases xml-expressions are transformed into other xml-expressions. Major differences are following points:

1) The language for defining the transformations is not determined. In general it will not be an xml-language but a higher programming language, so global variables might be used extensively (like database-connections, configuration-parameters, status-variables of various objects e.a.). Nevertheless also XSLT-definitions might be applicable.

2) It is one of the standard operations in XSLT to call the processor recursively inside an transformation with the directive 'apply-templates'. In order to to that, the element that shall be recursively transformed, must be contained in the input tree. XSLT is not designed for the transformation of elements that are constructed during processing. The STOX-model focuses especially on this point. A recursive call to the processor during transformation does not take place, but after the conversion of an subtree the result is given to the processor again and elements, that do not belong to the target language are transformed.

3) Unlike XSLT the contents of an STOX result document is restricted to elements, that belong to a preassigned xml-language. Nevertheless the result document may not be syntactically well formed or the transformation process may abort or fail to terminate.

Up to now, we use java as programming language and the java DOM interfaces for the representation of xml documents.

Developers

Join this project:

To join this project, please contact the project administrators of this project, as shown on the project summary page.

Get the source code:

Source code for this project may be available as downloads or through the CVS or Subversion SCM repository used by the project, as accessible from the project summary page.

Update project web pages:

If you are a web page developer interested in this project, please consider reaching out to the project admin (per the "Join this project" section, above) to offer your assistance.

About Open Source:

Of benefit to users, Open Source software is licensed so you can download and use the software free-of-charge. The source code for this software is made available free-of-charge, you (or a programmer you hire) can make changes to this software to better meet your needs, and you can release your changed code back to the community passing the benefit on to other users.

The exact license terms used by this project on their project summary page and in the licensing documents included in their downloads.

Project Web Hosted by SourceForge.net

©Copyright 1999-2008 - SourceForge, Inc., All Rights Reserved

About - Legal - Help