Commit 6eea7bf2 authored by Jérôme Euzenat's avatar Jérôme Euzenat

Updated white paper to UTF-8

parent 5bd3b804
Pipeline #203939 passed with stage
in 29 seconds
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<html><head><title>XML transformation flow processing (generated by Transmorpher 1.0)</title></head><body bgcolor="white">
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<html>
<head>
<title>XML transformation flow processing (generated by Transmorpher 1.0)</title>
</head>
<body bgcolor="white">
<center><h1>XML transformation flow processing</h1><i><font
size="+2">Jérôme
Euzenat (<a href="http://www.inrialpes.fr/exmo">INRIA
Rhône-Alpes</a>), Laurent
Tardif (Fluxmedia)</font></i></center><p>
<center>
<h1>XML transformation flow processing</h1>
<i><font size="+2">Jérôme Euzenat (<a href="http://www.inrialpes.fr/exmo">INRIA Rhône-Alpes</a>), Laurent Tardif (Fluxmedia)</font></i>
</center>
<p>
<p><em>Parts of this white paper have been presented to the 2nd
conference on <a href="http://www.extrememarkup.com">Extreme markup languages</a>, Montr&eacute;al (CA) ,
pp61-72, 2001</em></p>
<p>
<em>Parts of this white paper have been presented to the 2nd conference on <a href="http://www.extrememarkup.com">Extreme markup languages</a>, Montréal (CA), pp61-72, 2001</em>
</p>
<i><b>Abstract: </b>
<i>
<b>Abstract:</b>
<p>
The XSLT language is both complex in simple cases (such as attribute renaming or element hiding) and restricted in complex cases (complex information flows require processing multiple stylesheets). We propose a framework which improves on XSLT by providing simple-to-use and easy-to-analyse macros for common basic transformation tasks. It also provides a superstructure for composing multiple stylesheets, with multiple input and output documents, in ways not accessible within XSLT. Having the whole transformation description in an integrated format allows better control and analysis of the complete transformation.
</p>
</i></p><p><i><b>Keywords: </b>XML,
</i></p><p><i><b>Keywords: </b>XML,
XSLT,
Transmorpher,
Transformations,
</i></p>
<H2>1 :
Introduction and motivation</H2>
<H2>1 : Introduction and motivation</H2>
<p>In electronic documentation, the notion of a transformation
is widespread. It is a process that transforms a source document into
......@@ -49,8 +37,7 @@ with the advent of the XML language.</p>
in the expression of transformations. This need is first motivated before telling why, in our
opinion, XSLT falls short of the objectives of simplicity and power. The requirements for such a system are then presented.
</p>
<H3>1.1 :
Motivating example</H3>
<H3>1.1 : Motivating example</H3>
<p>Consider someone wanting to generate part of a web site concerning
bibliographic data. The source of information is a set of XML formatted bibliography
......@@ -75,12 +62,7 @@ elements, of elements marked as private and of mark attributes.
transformation flow does not indicate if it must be processed in a demand-driven
(pull) or data-driven (push) manner.</p>
<H3>1.2 :
Limitations of XSLT</H3>
<H3>1.2 : Limitations of XSLT</H3>
<p>XSLT [<a href="#clark1999a">clark1999a</a>] is a very powerful
technology for transforming XML
......@@ -144,9 +126,7 @@ design a system that relies on XSLT and attempts to remain compatible with
it but embeds it in a superstructure. This system, called Transmorpher, is
the subject of this paper.</p>
<H3>1.3 :
Requirements</H3>
<H3>1.3 : Requirements</H3>
<p>Transmorpher is an environment for processing generic
transformations on XML documents. It aims at complementing XSLT in order to:
......@@ -170,8 +150,7 @@ of XSLT is detailed. We end with a quick description of the current implementati
a comparison with other work.
</p>
<H2>2 :
Computing model</H2>
<H2>2 : Computing model</H2>
<p>Transformation flows are made of sets of transformations connected
......@@ -199,8 +178,7 @@ a comparison with other work.
describing it in XML.</p>
<H3>2.1 :
Processes</H3>
<H3>2.1 : Processes</H3>
<p>
The transformation flows are described
......@@ -297,8 +275,7 @@ by the figure above.
</p>
<H3>2.2 :
Channels</H3>
<H3>2.2 : Channels</H3>
<p>In Transmorpher the generic processes can have several input and several
output port. These ports are connected to channels that are fed in by the output of a
......@@ -333,8 +310,7 @@ encoded in UTF-8. They thus can only carry XML data (which can be text). Very
few verifications are done so far on the channels, but it is possible to declare their
DTD and statically check that the declarations coincide.</p>
<H2>3 :
Built-in abstract transformations</H2>
<H2>3 : Built-in abstract transformations</H2>
<p>Transmorpher offers a set of abstract transformations which correspond to
a Java interface specifying the number of input and output channels, the other
......@@ -344,8 +320,7 @@ attributes plus an expected behavior. These abstract transformations can be used
<p>We present below the set of these abstract transformations and the
implementations currently provided by Transmorpher.</p>
<H3>3.1 :
Generator and serializers</H3>
<H3>3.1 : Generator and serializers</H3>
<p>When a transformation flow takes input from a source which is not a
stream (file, network, database...) or must output some information directly
......@@ -381,16 +356,14 @@ or the Internet. It can also generate XML from a database.</p>
<H3>3.2 :
Dispatchers and mergers</H3>
<H3>3.2 : Dispatchers and mergers</H3>
<p>It is handy to be able to send the same input to several processes. It
is also useful to be able to gather several process outputs to one output channel.
In order to do so in a simple manner, Transmorpher provides the basic dispatcher and
merger processes.</p>
<H4>3.2.1 :
Dispatcher</H4>
<H4>3.2.1 : Dispatcher</H4>
<p>The dispatcher is an element that has one input and many outputs.</p>
<p>Transmorpher provides a basic implementation of a
......@@ -413,8 +386,7 @@ paper in order to transform the TIFF pictures into JPEG.
<center><p><img src="DispatchComplex.jpg" alt="DispatchComplex"/><br>Figure: Complex dispatcher</br></p></center>
<H4>3.2.2 :
Merger</H4>
<H4>3.2.2 : Merger</H4>
<p>The merger is a process that has several inputs and one output.</p>
<p>Transmorpher provides a simple notion of merger that copies all
......@@ -434,8 +406,7 @@ of titles with a channel of authors to produce a channel of references.
<H3>3.3 :
Query</H3>
<H3>3.3 : Query</H3>
<p>One important requirement of some transformation
applications is the ability to select some part of the XML documents to be
......@@ -469,8 +440,7 @@ element into an XSLT stylesheet that is processed against the input and
returns the result</p>
<H3>3.4 :
External processes</H3>
<H3>3.4 : External processes</H3>
<p>External processes allow users to take advantage of a transformation program that is not
specific to Transmorpher. This can be very useful when some legacy programs exists,
......@@ -499,8 +469,7 @@ sorting and formatting:
</p>
<H3>3.5 :
Iterator</H3>
<H3>3.5 : Iterator</H3>
<p>Iterators enables the direct expression of the repeated application of
the same process. It specifies the control flow so that the output of the
......@@ -536,8 +505,7 @@ over a particular range (e.g. number, directory, elements in an XML
document...).
</p>
<H2>4 :
Ruleset</H2>
<H2>4 : Ruleset</H2>
<p> The lower level is made of rules (corresponding to XSLT
templates). Instead of using only one kind of very
......@@ -547,8 +515,7 @@ easy-to-analyze rules.</p>
<ul compact="1"><li><p>they can be easily understood,</p></li><li><p>they can be easily implemented through mapping to XSLT (also
efficiently implemented),</p></li><li><p>they can be easily analyzed by an external program.</p></li></ul></p>
<H3>4.1 :
Rules</H3>
<H3>4.1 : Rules</H3>
<p>The rules themselves are very simple templates that can be used for specifying simple
transformations of a source. Here is the current set of rules:</p>
......@@ -615,10 +582,7 @@ implemented as an XSLT extension function and uses the
<p>All these rule tags can use the context attribute, which enables the
restriction of the evaluation context of a rule with an XPath location.</p>
<H3>4.2 :
Rulesets</H3>
<H3>4.2 : Rulesets</H3>
<p>The rule constructs are grouped into rulesets (corresponding to
XSLT stylesheets and which can contain regular XSLT templates). The goal of
......@@ -734,12 +698,10 @@ involve command lines and tests that are not portable at all. </p>
the required processes (starting from <tt>main</tt>)
and SAX streams for the channels. It then reads the input files
and lets the system process them. </p>
<p>We currently take advantage of Java 1.3, SAX 2.0, Xerces
1.3, Xalan 2 and gnu.regexp 1.1.2. Many transformations are translated
<p>We currently take advantage of Java 1.3, SAX 2.0, Xerces 1.3, Xalan 2 and gnu.regexp 1.1.2. Many transformations are translated
into XSLT and passed to Xalan.</p>
<H3>5.1 :
State of the system</H3>
<H3>5.1 : State of the system</H3>
<p>The current prototype demonstrates the possibility of
implementing the Transmorpher model. It takes advantage of threads
......@@ -762,9 +724,7 @@ into XSLT and passed to Xalan.</p>
and EntityResolver);</p></li><li><p>Static channel type checking. Debugging/stepping mode for Transmorpher processes.</p></li></ul>
</p>
<H3>5.2 :
Performance issues</H3>
<H3>5.2 : Performance issues</H3>
<p>The goal of Transmorpher was not performance improvement, but better
intelligibility. However, so well thought-out technology was available at the time
......@@ -809,16 +769,14 @@ full integration within Xalan could be used to offer compiled Transmorpher
transformations.
</p>
<H3>5.3 :
Availability</H3>
<H3>5.3 : Availability</H3>
<p>Transmorpher is planned to be released very soon under the GNU General Public License.</p>
<p>It can be retrieved (together with its documentation) at
<tt>http://transmorpher.inrialpes.fr</tt>.</p>
<H2>6 :
Related work</H2>
<H2>6 : Related work</H2>
<p>The problems that have been addressed here are generally
acknowledged in various contexts and several systems can be compared with
......@@ -834,12 +792,6 @@ manner) [<a href="#wall2000a">wall2000a</a>]. Perl retains two main problems: it
away from a full-fledged programming language necessitating training of
the users and it is not very strong on structured transformations</p>
<p>Bladerunner (http://www.xmlecontent.com) was an XML flow management system
integrating database access and allowing XSLT transformations. It generates
output in PDF, HTML, PostScript. Its main weakness was to be a proprietary
......@@ -917,8 +869,7 @@ Tchistopolskii (http://www.pault.com, [<a href="#tchistopolskii2000b">tchistopo
that can write any XSLT stylesheet. It is a more concise language
than XSLT but still a complex one.</p>
<H2>7 :
Conclusion</H2>
<H2>7 : Conclusion</H2>
<p>We have presented the Transmorpher system and principles which aim at
complementing XSLT on the issue of simple transformations and complex control
......@@ -945,12 +896,12 @@ Transmorpher.</p>
</p>
<h2>Bibliography</h2><dd><dt><a name="armstrong2001a">[Armstrong 2001a]</a></dt><dd><pub>Eric Armstrong, Working with XML: the Java API for XML Parsing (JAXP) Tutorial, 2001 http://java.sun.com/xml/jaxp-docs-1.0.1/docs/tutorial/</pub></dd><dt><a name="becker2000a">[Becker 2000a]</a></dt><dd><pub>Oliver Becker, XSLT, 2000, http://www.informatik.hu-berlin.de/~obecker/XSLT/</pub></dd><dt><a name="boag2000a">[Boag 2000a]</a></dt><dd><pub>Scott Boag, TRaX and Serialize APIs, 2000, http://trax.openxml.org</pub></dd><dt><a name="borovansky2001a">[Borovansky 2001a]</a></dt><dd><pub>Peter Borovansky, Claude Kirchner, Hélène Kirchner and Christophe Ringeissen,
<h2>Bibliography</h2><dd><dt><a name="armstrong2001a">[Armstrong 2001a]</a></dt><dd><pub>Eric Armstrong, Working with XML: the Java API for XML Parsing (JAXP) Tutorial, 2001 http://java.sun.com/xml/jaxp-docs-1.0.1/docs/tutorial/</pub></dd><dt><a name="becker2000a">[Becker 2000a]</a></dt><dd><pub>Oliver Becker, XSLT, 2000, http://www.informatik.hu-berlin.de/~obecker/XSLT/</pub></dd><dt><a name="boag2000a">[Boag 2000a]</a></dt><dd><pub>Scott Boag, TRaX and Serialize APIs, 2000, http://trax.openxml.org</pub></dd><dt><a name="borovansky2001a">[Borovansky 2001a]</a></dt><dd><pub>Peter Borovansky, Claude Kirchner, Hélène Kirchner and Christophe Ringeissen,
Rewriting with strategies in ELAN: a functional semantics, <i>International journal of
foundations of computer science</i> 12(1):69-96, 2001.</pub></dd><dt><a name="clark1999a">[Clark 1999a]</a></dt><dd><pub>James Clark (ed.), XSL transformations (XSLT) version 1.0, W3C Recommendation, 1999 http://www.w3.org/TR/xslt</pub></dd><dt><a name="clark1999b">[Clark 1999b]</a></dt><dd><pub>James Clark, Steve DeRose (ed.), XML Path Language (XPath) version 1.0, W3C Recommendation, 2001 http://www.w3.org/TR/xpath.html</pub></dd><dt><a name="clark2001a">[Clark 2001a]</a></dt><dd><pub>James Clark (ed.), XSL transformations (XSLT) version 1.1, W3C working draft, 2001 http://www.w3.org/TR/xslt11/</pub></dd><dt><a name="drewes2000a">[Drewes 2000a]</a></dt><dd><pub>Frank Drewes and Peter Knirsch and Hans-Jörg Kreowski and
foundations of computer science</i> 12(1):69-96, 2001.</pub></dd><dt><a name="clark1999a">[Clark 1999a]</a></dt><dd><pub>James Clark (ed.), XSL transformations (XSLT) version 1.0, W3C Recommendation, 1999 http://www.w3.org/TR/xslt</pub></dd><dt><a name="clark1999b">[Clark 1999b]</a></dt><dd><pub>James Clark, Steve DeRose (ed.), XML Path Language (XPath) version 1.0, W3C Recommendation, 2001 http://www.w3.org/TR/xpath.html</pub></dd><dt><a name="clark2001a">[Clark 2001a]</a></dt><dd><pub>James Clark (ed.), XSL transformations (XSLT) version 1.1, W3C working draft, 2001 http://www.w3.org/TR/xslt11/</pub></dd><dt><a name="drewes2000a">[Drewes 2000a]</a></dt><dd><pub>Frank Drewes and Peter Knirsch and Hans-Jörg Kreowski and
Sabine Kuske, Graph transformation modules and their composition, Proceedings of international workshop ACTIVE 99
(<i>Lecture notes in computer science</i> 1779), pp182-191, 2000</pub></dd><dt><a name="jorgensen2001a">[Jørgensen 2001a]</a></dt><dd><pub>Morten Jørgensen, The XSLT compiler for the JVM, Proc. 1st
XSLT-UK conference, Oxford (UK), 2001</pub></dd><dt><a name="kay2000a">[Kay 2000a]</a></dt><dd><pub>Michael Kay, XSLT Programmer's reference, Wrox press, Birmimgham (UK), 2000</pub></dd><dt><a name="mclaughlin2000a">[McLaughlin 2000a]</a></dt><dd><pub>Brett McLaughlin, Web Publishing Frameworks, in: Brett McLaughlin, Java and XML, O'Reilly and associates, Sebastopol (CA US), 2000, http://www.oreilly.com/catalog/javaxml/chapter/ch09.html</pub></dd><dt><a name="sergeant2000a">[Sergeant 2000a]</a></dt><dd><pub>Matt Sergeant, How AxKit works, O'Reilly and associates, 2000 http://www.xml.com/pub/2000/05/24/axkit/index.html</pub></dd><dt><a name="sergeant2000b">[Sergeant 2000b]</a></dt><dd><pub>Matt Sergeant, AxKit: XML web publishing with Apache and mod_perl, O'Reilly and associates, 2000 http://www.xml.com/pub/2000/05/24/axkit/index2.html</pub></dd><dt><a name="staldal2000a">[Ståldal 2000a]</a></dt><dd><pub>Mikael Ståldal, Presenting XML documents on different media
with stylesheets, Matser's thesis, KTH, Stockholm (SE), 2000</pub></dd><dt><a name="tchistopolskii2000b">[Tchistopolskii 2000b]</a></dt><dd><pub>Paul Tchistopoloskii, XSLScripts, 2000 http://www.pault.com/xsls</pub></dd><dt><a name="visser2000a">[Visser 2000a]</a></dt><dd><pub>Eelco Visser, Strategic Pattern Matching, Proceedings of Rewriting Techniques and Applications, pp30-44, Trento (IT),(<i>Lecture notes in computer science</i> 1631), 1999</pub></dd><dt><a name="wall2000a">[Wall 2000a]</a></dt><dd><pub>Larry Wall, Tom Christiansen, Jon Orwant, Programming Perl, 3rd Edition, O'Reilly and associates, Sebastopol (CA US), 2000</pub></dd></dd>
(<i>Lecture notes in computer science</i> 1779), pp182-191, 2000</pub></dd><dt><a name="jorgensen2001a">[Jørgensen 2001a]</a></dt><dd><pub>Morten Jørgensen, The XSLT compiler for the JVM, Proc. 1st
XSLT-UK conference, Oxford (UK), 2001</pub></dd><dt><a name="kay2000a">[Kay 2000a]</a></dt><dd><pub>Michael Kay, XSLT Programmer's reference, Wrox press, Birmimgham (UK), 2000</pub></dd><dt><a name="mclaughlin2000a">[McLaughlin 2000a]</a></dt><dd><pub>Brett McLaughlin, Web Publishing Frameworks, in: Brett McLaughlin, Java and XML, O'Reilly and associates, Sebastopol (CA US), 2000, http://www.oreilly.com/catalog/javaxml/chapter/ch09.html</pub></dd><dt><a name="sergeant2000a">[Sergeant 2000a]</a></dt><dd><pub>Matt Sergeant, How AxKit works, O'Reilly and associates, 2000 http://www.xml.com/pub/2000/05/24/axkit/index.html</pub></dd><dt><a name="sergeant2000b">[Sergeant 2000b]</a></dt><dd><pub>Matt Sergeant, AxKit: XML web publishing with Apache and mod_perl, O'Reilly and associates, 2000 http://www.xml.com/pub/2000/05/24/axkit/index2.html</pub></dd><dt><a name="staldal2000a">[Stålda2000a]</a></dt><dd><pub>Mikael Ståldal, Presenting XML documents on different media
with stylesheets, Matser's thesis, KTH, Stockholm (SE), 2000</pub></dd><dt><a name="tchistopolskii2000b">[Tchistopolskii 2000b]</a></dt><dd><pub>Paul Tchistopoloskii, XSLScripts, 2000 http://www.pault.com/xsls</pub></dd><dt><a name="visser2000a">[Visser 2000a]</a></dt><dd><pub>Eelco Visser, Strategic Pattern Matching, Proceedings of Rewriting Techniques and Applications, pp30-44, Trento (IT),(<i>Lecture notes in computer science</i> 1631), 1999</pub></dd><dt><a name="wall2000a">[Wall 2000a]</a></dt><dd><pub>Larry Wall, Tom Christiansen, Jon Orwant, Programming Perl, 3rd Edition, O'Reilly and associates, Sebastopol (CA US), 2000</pub></dd></dd>
</rear></body></html>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment