<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">On classification of XML document transformations *</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author role="corresp">
							<persName><forename type="first">Jana</forename><surname>Dvořáková</surname></persName>
							<email>jana.dvorakova@dcs.fmph.uniba.sk</email>
							<affiliation key="aff0">
								<orgName type="department" key="dep1">Department of Computer Science</orgName>
								<orgName type="department" key="dep2">Faculty of Mathematics, Physics and Informatics</orgName>
								<orgName type="institution">Comenius University</orgName>
								<address>
									<settlement>Bratislava</settlement>
									<country key="SK">Slovak Republic</country>
								</address>
							</affiliation>
							<affiliation key="aff1">
								<orgName type="department" key="dep1">Department of Computer Science</orgName>
								<orgName type="department" key="dep2">Faculty of Mathematics, Physics and Informatics</orgName>
								<orgName type="institution">Comenius University</orgName>
								<address>
									<settlement>Bratislava</settlement>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">On classification of XML document transformations *</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">9672612DF3889234CC22F6F8CEC9C7FA</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T06:47+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>XML</term>
					<term>Structured document</term>
					<term>Document type</term>
					<term>Document transformation</term>
					<term>Transformation classification</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>As XML has become a very popular standard for data in many fields, the domain of XML documents transformations is becoming more and more important. In this paper we propose classification hierarchy for XML document transformations. We assign implemented transformation systems into defined groups according to the type of possible transformations. This enables user to choose appropriate transformation system according to the requirements for transformation. Secondly, we are concerned with the group of transformation systems, which enable type transformation. We define underlying formal models in common framework and discuss their applicability for these transformations.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>XML (Extensible Mark-up Language) <ref type="bibr" target="#b26">[28]</ref> is a meta-language recommended by W3 Consortium in order to create structured documents. In XML document structure, content and presentation are strictly separated. Unlike plain text, it contains special tags, which decompose document into logical parts. Therefore we say that XML belongs to the group of mark-up languages. Presentation of XML document can be described by several languages, usually in external file. Most common are XSL (Extensible Stylesheet Language) and CSS (Cascading Stylesheet).</p><p>Nowadays the usage of XML is growing very fast. It is a suitable tool in every field, where it is necessary to create document standards. Furthermore it has become very popular as a format for data exchange among applications since for programs it is necessary to mark semantics of data explicitly.</p><p>For this reasons various transformations are needed. Many transformation systems for structured documents have been implemented, some of them are based on formal models while others were created only ad-hoc. We have seen several reviews of existing transformation systems ( <ref type="bibr" target="#b18">[19,</ref><ref type="bibr" target="#b17">18,</ref><ref type="bibr" target="#b19">20,</ref><ref type="bibr" target="#b10">11]</ref>). The author in <ref type="bibr" target="#b19">[20]</ref> introduces also some basic categorization, however in none of these works a complete classification system has been defined.</p><p>The rest of this paper is organized as follows: After defining some notions used through-out the paper we introduce defined classification system in Section 3. We discuss reasons for choosing particular criteria and we assign implemented transformations systems for structured documents into defined groups. In section 4, we are dealing with one specific group of transformations, namely type transformations. We are examining formal models on which these transformations are based and we define them in a common framework. At last we present several results obtained by comparing these formal models. Section 5 contains a brief conclusion and outlines our future research.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Notions and notations</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">XML document</head><p>Basic logical unit of an XML document is an element. The content of an element is delimited by a start-tag and an end-tag. It can contain text and other nested elements as well. Variables called attributes can be assigned to an element. Obviously, an XML document has a hierarchical structure and it can be represented by a tree, where internal nodes are elements and leaves contain textual content.</p><p>The framework considered in this paper is restricted in two ways. Firstly, we do not consider element attributes of XML documents since we are concerned mainly with transformations at the level of elements. Secondly, we assume that element names of XML documents are from a finite and known set denoted by E. This enables us to define XML documents as trees over finite alphabets, which is the most natural way as far as we consider XML documents transformation. Furthermore we will use symbol Char for alphabet of characters allowed to appear in the textual content of XML document. Char is specified in W3C recommendation <ref type="bibr" target="#b26">[28]</ref>.</p><p>Definition 1. Let Σ, Γ be alphabets. The set of trees over (Γ, Σ) denoted by T Γ (Σ) is defined as follows:</p><formula xml:id="formula_0">-a ∈ Σ, then t = a ∈ T Γ (Σ) and root(t) = a. -A ∈ Γ , t 1 , . . . , t k ∈ T Γ (Σ), k &gt; 0, then t = A(t 1 , . . . , t k ) ∈ T Γ (Σ) and root(t) = A. -nothing else belongs to T Γ (Σ).</formula><p>We call Σ a leaf alphabet and Γ an internal node alphabet. Alphabets Σ, Γ do not need to be disjoint.</p><p>Obviously the set of XML documents denoted by D equals to the set of trees over (E, Char), i.e., D = T E (Char).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">DTD</head><p>An XML document type is a class, which contains XML documents with similar structure. It is specified by a type definition, which describes the set of elements, that should be contained in the document as well as relationships among the elements. W3C has defined two ways of notation -DTD and XML schema. DTD is simpler and describes particularly syntax of the type while XML schema introduces more aspects like namespaces, restrictions for attribute values, etc. However, syntactic features of both models can be easily captured by contextfree grammar. We will use this concept in the rest of this paper. Now we will define context-free grammars and their subset -type grammars, which describe XML document types. Definition 2. Context-free grammar (CFG) is a 4-tuple G = (N, T, P, S), where N is an alphabet of nonterminal symbols, T an alphabet of terminal symbols, P ⊆ N × (N ∪ T ) * is a finite set of production rules and S ∈ N is a starting symbol.</p><p>Definition 3. Let G = (N, T, P, S) to be a CFG, then a set of derivation subtrees of G denoted by S G is defined as follows:</p><formula xml:id="formula_1">-a ∈ T , then t = a ∈ S G . -A ∈ N , t 1 , . . . , t k ∈ S G and A → root(t 1 ), . . . , root(t k ) ∈ P , then t = A(t 1 , . . . , t k ) ∈ S G . -nothing else belongs to S G . A set of derivation trees of G -T G is a subset of S G such that t ∈ T G ⇔ t ∈ S G and root(t) = S.</formula><p>A type grammar is a context free grammar G = (N, T, P, S), such that N = E, T = Char. We denote its set of derivation trees D G since we consider documents rather then general trees. Obviously it holds D G ⊆ D. Nonterminals of a type grammar represent element names and the set of terminals equals to the text alphabet.</p><p>If we have a given type grammar, it generates a class of XML documents, which equals to the set of its derivation trees. Validation of XML document against a grammar is a process, which gives us as a result an answer, whether given XML document belongs to the class of documents generated by given grammar. If the answer is yes, we say that the XML document is valid for a given type grammar (or correct).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.3">XML transformations</head><p>A transformation of an XML document takes some source documents as an input, it processes them according to the transformation specification and it gives target documents as an output.</p><p>It is reasonable to define a transformation of XML documents as a relation on the set of XML documents rather then a function <ref type="foot" target="#foot_0">1</ref> . As usual we begin with more general definition, i.e., tree transformation. Definition 4. Let Σ, Σ , Γ , Γ be alphabets. A tree transformation from (Γ, Σ)</p><formula xml:id="formula_2">to (Γ , Σ ) is a relation τ ⊆ T Γ (Σ) × T Γ (Σ ).</formula><p>If we apply previous definition on XML documents, we obtain restricted case again. Thus, an XML documents transformation is a relation τ ⊆ D × D. Obviously if we consider any XML document transformation, the source leaf alphabet equals to the target leaf alphabet.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.4">Tree properties</head><p>Now we introduce several definitions related to trees that we will need later in this paper.</p><p>Let Σ, Σ , Γ, Γ be alphabets. Let X = {x 1 , x 2 , . . .} be a set of variable symbols. For each k &gt; 0, we denote by X k a set of first k variables, thus X k = {x 1 , . . . , x k }. We denote by T Γ (Σ ∪X), T Γ (Σ ∪ X k ) sets of trees with these variables, where it must hold Σ ∩ X = ∅.</p><p>Definition of a tree substitution follows. Let</p><formula xml:id="formula_3">t ∈ T Γ (Σ ∪ X k ), k &gt; 0 and t 1 , . . . , t k ∈ T Γ (Σ ). Then t[x 1 ← t 1 , . . . , x k ← t k ]</formula><p>is a tree obtained from t by replacing each occurrence of x i by a tree t i , 1</p><formula xml:id="formula_4">≤ i ≤ k 2 .</formula><p>Let Z = {z 1 , z 2 , . . .} be a set of variables disjoint to X and k &gt; 0. A set of (Γ, Σ, k)-contexts denoted C Γ (Σ, k) is the set of trees t from T Γ (Σ ∪ Z k ), such that for each 1 ≤ i ≤ k the symbol z i appears exactly once in t.</p><p>We will use a simpler notation for context substitution. Let t to be a (Γ, Σ, k)context and t 1 , . . . , t k trees. Then we use t</p><formula xml:id="formula_5">[t 1 , . . . , t k ] instead of t[z 1 ← t 1 , . . . , z k ← t k ].</formula><p>Let t, t ∈ T Γ (Σ). Then t is a subtree of t if there exists such a context</p><formula xml:id="formula_6">β ∈ C Γ (Σ, 1) that t = β[t ].</formula><p>For each tree t ∈ T Γ (Σ) path(t) ⊆ {1, 2, . . .} * is a set of all paths of the tree t, so that each of them unambiguously identifies a node of the tree t. Then symbol ε represents root(t). For each path w ∈ path(t), we denote by label t (w) a label of the node identified by w and by t| w a subtree under this node.</p><p>Let</p><formula xml:id="formula_7">t ∈ T Γ (Σ), t ∈ T Γ (Σ ). We obtain tree t[w ← p t ] ∈ T Γ ∪Γ (Σ ∪ Σ ) from t by replacing subtree in w ∈ path(t) by tree t . Let t ∈ T Γ (Σ), patt ∈ T Γ (Γ ∪ Σ). We say, that t and patt match, if there is such a context γ ∈ C Γ (Σ, k) that t = γ[t 1 , . . . , t k ] for some t 1 , . . . , t k ∈ T Γ (Σ) and it holds patt = γ[root(t 1 ), . . . , root(t k )].</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Classification hierarchy</head><p>There are several possibilities, how to divide XML document transformations into categories. According to the driving element of the transformation we obtain three basic categories as follows. In each of them different techniques for implementing particular transformation systems are used, thus, it is reasonable to start with this criterion.</p><p>1. Source grammar transformations -Transformation process is driven by the source structure. First, the source document is parsed and then according to recognized syntactic elements parts of the output documents are constructed. Usually it is possible to check correctness of input documents, but target correctness is not ensured in this case. If necessary, user must perform validation explicitly. Next we can divide this category into two more specific groups according to the way how the source document is parsed:</p><p>• Event-driven transformations -The source document is read as a data stream. As the result, we obtain a list of recognized events. The event can be an occurrence of a start-tag, an end-tag, an attribute, etc. The transformation system reads the list o events and performs corresponding actions. If we allow side-effect functions, an output can be generated already at parsing time. As a formal model, an attribute grammar is often used. Event-driven models require little memory, and provide fast and effective way of accessing XML data. On the other hand, only simple transformations can be performed since it is not possible to return to an earlier part of the document. In some document transformers (e.g. CoST <ref type="bibr" target="#b11">[12,</ref><ref type="bibr" target="#b6">7]</ref>, OmniMark <ref type="bibr" target="#b7">[8]</ref>) the list of recognized events is represented by ESIS (Element Structure Information Set), which is the part of ISO SGML standard <ref type="bibr" target="#b12">[13]</ref>. However, currently especially SAX (Simple API for XML) <ref type="bibr" target="#b24">[26]</ref> is more and more in use as event-driven mechanism for parsing XML documents. It generates specific SAX events and sends them to the application.</p><p>• Tree-based transformations -First, an internal syntactic tree of the source document is constructed and a target document is generated via queries on this tree. In most of the cases transformation systems are based on tree pattern matching and replacement. We can assign widely used XSLT <ref type="bibr" target="#b27">[29]</ref> and its predecessor DSSSL <ref type="bibr" target="#b13">[14]</ref> as well as systems Scrimshaw <ref type="bibr" target="#b1">[2]</ref>, Metamorphosis [22], Balise <ref type="bibr" target="#b2">[3]</ref> and TranSID <ref type="bibr" target="#b19">[20]</ref> to this group.</p><p>XSLT, a recommendation of W3 Consortium, has become very popular recently. It is a language, itself written in XML, with powerful capabilities for specifying transformations of XML documents. XSLT program (called stylesheet) consists of a set of template rules. A template rule associates a pattern, which matches nodes in the source document with corresponding template that can be instantiated to form the target tree.</p><p>Although XSLT is a powerful transformation language, it has several drawbacks. Firstly, it appears to be a complex language and therefore transformation specification must be written by an expert. Secondly, XSLT processor cannot guarantee the correctness of target documents as well as other systems in this group. However, an XSLT stylesheet can be produced as an output of some two-grammars systems (see next section). Then it is ensured, that generated stylesheet specifies a type transformation and XSLT processor can be used to perform transformation. 2. Target grammar transformations -Target document is created according to the rules of a given target grammar while relevant data from a source document are extracted via queries. This ensures target correctnes. However, we do not need to have any information about source document type. We found only one transformation system, which belongs to this group -TREX <ref type="bibr" target="#b28">[30]</ref>. 3. Two grammar transformations (type transformations) -Documents of a given source type are translated into documents of a given target type. Transformation systems are mostly based on one of these formal models -syntax directed translation schema, tree transformation grammar, descending tree transducer and higher order attribute grammar. We discuss these models as well as two grammar transformation systems in detail in the next section. However, there are few systems, which performed two-grammars transformations, but underlying formal model cannot be clearly recognized. These are Grif <ref type="bibr" target="#b23">[25]</ref> and Thot <ref type="bibr" target="#b3">[4]</ref>.</p><p>From a different point of view, we distinguish static type transformations, which translate whole documents, and dynamic type transformations, which are used to perform dynamic operations on XML documents. An example is cut and paste operation, which is a standard operation in XML document editors. Unlike in common editors, in this case it is necessary to preserve document structure. Thus, a local transformation must be performed in the place, where a part of another document has been pasted.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Type transformations</head><p>The group of type transformations (or two-grammar transformations) is a specific one. In this case there must be only correct documents taken as an input and correct documents must be generated on the output side. To satisfy these conditions, it is usually inevitable to implement transformation system performing this kind of transformations on some underlying formal model. In this section we introduce four formal models on which some of the implemented transformation systems are based. We developed common framework in which we define these models. Our intention was to create a formal base, so that the models can be studied and mutually compared later. We also present current results obtained by comparing some of them according to their transformational power.</p><p>Obviously there is a direct proportion between the complexity of transformation specification and the set of possible transformations. Thus, the more powerful particular model is, the more complex specification the user is supposed to write. In a rule A → α, β with each nonterminal from α there is associated an identical nonterminal of β. If there is a multiple occurence of some nonterminal, we indicate association by using integer superscripts. Obviously if we extend definition of a SDTS by a renaming homomorphism for nonterminals, we can use this model also in the case, when it is neccesary to associate nonterminals with different names.</p><p>A context-free grammar G s = (N, Σ, P s , S), where</p><formula xml:id="formula_8">P s = {A → α | ∃β ∈ (N ∪ ∆) * , A → α, β ∈ R}</formula><p>is a a source grammar and G t = (N, ∆, P t , S), where</p><formula xml:id="formula_9">P t = {A → β | ∃α ∈ (N ∪ Σ) * , A → α, β ∈ R} is a target grammar of SDTS Ω.</formula><p>Now we mentioned two modifications of SDTS, which differ from the basic model in a definition of rules:</p><formula xml:id="formula_10">• Simple SDTS -SSDTS R is a finite set of rules of the form A → α, β, where α ∈ (N ∪ Σ) * , β ∈ (N ∪ ∆) * ,</formula><p>nonterminals in α, β are identical and the order of nonterminals is preserved.</p><p>• Extended SDTS -ESDTS R is a finite set of rules of the form A → α, β, where α ∈ (N ∪ Σ) * , β ∈ (N ∪ ∆) * and nonterminals in β are a permutation of a subset of nonterminals in α.</p><p>A syntax-directed translation schema simulates derivations of two contextfree grammars with similar set of rules simultaneously. While using a SDTS in the domain of syntax analysis it was sufficient to store only frontiers of the derivation trees in configurations, if we consider tree transformations it is more natural to keep the whole derivation tree. Then a transformation consists of pairs of trees, where the first one is a derivation tree of the source grammar and the second one is a derivation tree of the target grammar. We started from an algorithm for structured documents transformations using an ESDTS presented in <ref type="bibr" target="#b18">[19]</ref>. We skip an operation of adding new nodes into the source tree since authors do not specify exactly what subtree is embedded to the newly created node. Definition 6. A configuration of SDTS (SSDTS, ESDTS) Ω is a tree from the set T N ∪{ } (Σ ∪ ∆). Definition 7. We say, that a pair of trees (A(t 1 , . . . , t n ), A(s 1 , . . . , s m )), A ∈ N , t 1 , . . . , t n , s 1 , . . . , s m ∈ T N ∪{ } (Σ∪∆) realizes a rule A → u 1 . . . u n , v 1 . . . v m ∈ R if the following holds:</p><p>1. u 1 . . . u n = root(t 1 ) . . . root(t n ) and v 1 . . . v m = root(s 1 ) . . . root(s m ),</p><formula xml:id="formula_11">2. h N (u 1 . . . u n ) = u i1 . . . u ir and h N (v 1 . . . v m ) = v j1 . . . v jp = u i k 1 . . . u i kp , i 1 , .</formula><p>. . , i r ∈ {1, . . . , n} (different), j 1 , . . . , j p ∈ {1, . . . , m} (different), k 1 , . . . , k p ∈ {1, . . . , r} (different), 3. s j l = t i k l for l ∈ {1, . . . , p}, s l = v l , v l ∈ ∆ ∪ {ε} for l / ∈ {j 1 , . . . , j p } and t l = u l , u l ∈ Σ ∪ {ε} for l / ∈ {i 1 , . . . , i r }.</p><p>Definition 8. A translation step of SDTS (SSDTS, ESDTS) Ω is a relation ⇒ Ω over the set of configurations defined as follows:</p><formula xml:id="formula_12">1. β[ (a)] ⇒ Ω β[a], a ∈ ∆ ∪ {ε}. 2. β[ (A(t 1 , . . . , t n ))] ⇒ Ω β[A( (s 1 ), . . . , (s m ))</formula><p>] and a pair of trees (A(t 1 , . . . , t n ), A(s 1 , . . . , s m )) realizes some rule r ∈ R.</p><p>In both cases β is a context from C N ∪{ } (Σ ∪ ∆, 1).</p><formula xml:id="formula_13">t β z 1 β z 1 1 u u n A A 1 t 1 s n s m v v 1 m Ω 1 ... ... A m v ... 1 v , u ... u n</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Fig. 1. A translation step of a SDTS</head><p>An input tree is processed from the root to the leaves, while unprocessed subtrees are marked by symbol . Initially, the whole source tree is marked as unproccessed. If the root of a currently processed subtree has a label from output alphabet or ε, then it is a leaf and we stop translation in this branch by removing the symbol . If we are processing a subtree, whose root is an internal node, first we reorder and delete children subtrees according to corresponding rule. Subsequently, if there are some leaf childrens, we reorganize them in such a way, that the result adheres to the output side of the rule.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Definition 9. A transformation generated by a SDTS (SSDTS, ESDTS)</head><formula xml:id="formula_14">Ω is a set τ (Ω) = {(t s , t t ) | t s ∈ T N (Σ), root(t s ) = S, t t ∈ T N (∆), (t s ) ⇒ * Ω t t }.</formula><p>A SSDTS enables very simple transformations of trees. It does not change structure of the source tree, it is only possible to delete, add or reorder leaves. A SDTS enables reordering of subtrees connected to the same node moreover. An ESDTS is the most powerful modification, unlike SDTS it enables also deleting of arbitrary subtree in the source tree.</p><p>A transformations performed by SSDTS as well as SDTS satisfy the definition of the type transformation. In the case of ESDTS a problem arises, because if we delete a subtree in the source tree, it is not processed anymore. Thus, it is not possible to check, whether this part of the source tree was correct.</p><p>There are several implemented transformation systems that are using SDTS and its modifications as underlying model. System SynDoc <ref type="bibr" target="#b18">[19]</ref> is based on ES-DTS, and SDTT <ref type="bibr" target="#b4">[5]</ref>, ICA <ref type="bibr" target="#b20">[21]</ref>, HST <ref type="bibr" target="#b15">[16]</ref> are based on SDTS.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">Tree transformation grammar</head><p>A tree transformation grammar is similar to SDTS, however in this case we associate two groups of production rules. The first group -a source subgrammar contains some of the source grammar production rules and the second one -a target subgrammar conatins some of the target grammar production rules. Unlike in SDTS, nonterminals in the source and target subgrammar must be associated explicitely. This means, that it is possible to associate also nonterminals with different names. Additionally, tree-transformation grammars work with as many levels in the source tree as necessary. Definition 10. A tree transformation grammar -TTG is a 6-tuple G = (G s , G t , Sub s , Sub t , P A, SA), where -G s = (N s , Σ s , P s , S s ) and G t = (N t , Σ t , P t , S t ) are the source and target grammars, -Sub s ⊆ 2 Ps and Sub t ⊆ 2 Pt are sets of source and target subgrammars, -P A ⊆ Sub s × Sub t is a set of production group associations, -SA ⊆ N s × N t is a set of symbol associations.</p><p>There are some restrictions put on the source subgrammar. It must contain a single start nonterminal, and every other nonterminal in the source subgrammar must be derivable from this start nonterminal. Source subgrammars represent subtree patterns to be matched against in the source tree; target subgrammars represent subtrees, that are to be generated as part of the target tree. A target subgrammar can contain several start nonterminals, thus we can obtain a forest of target subtrees as a result. Transformation via TTG is performed by processing source tree nodes one by one. For a particular node we look for matching source subgrammars. If there is some, corresponding target subtrees are constructed and links among nodes in source subgrammar and target subgrammar are marked according to symbol associations. After the whole source tree has been processed, target subtrees can join to bigger trees according to the marked symbol associations.</p><p>Tree transformation grammars are described in <ref type="bibr" target="#b14">[15]</ref>. Authors' intention was to define a powerful two-grammar transformations model and, at the same time, provide simple and natural way to write transformation specification.</p><p>Several modifications of tree transformation grammars have been implemented:</p><p>• Dual grammar translation scheme (DGTS) -system SSAGS <ref type="bibr" target="#b22">[24]</ref>.</p><p>• Single input production-explicitely qualified (SIPEQ) -system SIPEQ <ref type="bibr" target="#b14">[15]</ref>.</p><p>• TT grammar -system Alchemist <ref type="bibr" target="#b19">[20]</ref>.</p><p>However, semantics of the model remains unclear as no formal definitions have been introduced in any of the resources mentioned. Now we present definitions, that we created according to the alghorithm of tree transformation via TT grammars mentioned in <ref type="bibr" target="#b19">[20]</ref>.</p><formula xml:id="formula_15">Definition 11. A configuration of TTG Ω is a pair (t s , T t ), t s ∈ T Ns∪{ } (Σ s ) and T t ⊆ {(t, W ) | t ∈ T Nt (N t ∪ Σ t ), W ⊆ 2 (path(t)×path(t)) }.</formula><p>A tree t s is the source tree with marked unprocessed nodes. T t is a set of target linked trees, i.e., it contains pairs of the form (t, W ), where t is a particular target tree and W is a set of path pairs that we call a set of links of a tree t. We use the notation W t as well.</p><formula xml:id="formula_16">Definition 12. A translation step of TTG Ω is a relation ⇒ Ω over configura- tions defined by (t s , T t ) ⇒ Ω (t s , T t ) ⇐⇒ (1) generating step -there is such a path w s in a tree t s that t s | ws = (A(t 1 , . . . , t n )), -t s = t s [w s ← p A( (t 1 ), . . . , (t n ))],</formula><p>there is such a source subgrammar sg ∈ Sub s that t sg (a derivation tree corresponding to the rules sg) and A(t 1 , . . . , t n ) match, -there is such a target subgrammar tg ∈ Sub t that (sg, tg) ∈ P A and T tg = {r 1 , . . . r m } (derivation trees corresponding to the rules tg). Let us denote</p><formula xml:id="formula_17">R i = (r i , {(w 1 , w s w 2 ) | (label ri (w 1 ), label tsg (w 2 )) ∈ SA}), i ∈ {1, . . . , m}. Then T t = T t ∪ 1≤i≤m R i .</formula><p>(2) connecting step</p><formula xml:id="formula_18">-t s = t s , -there are such R 1 , R 2 ∈ T t , R 1 = (r 1 , W 1 ), R 2 = (r 2 , W 2 ) that -root(r 2 ) = A ∈ N t , -there is such a path w ∈ path(r 1 ) that r 1 | w = A, -there is such a path w s ∈ path(t s ) that (w, w s ) ∈ W 1 and (ε, w s ) ∈ W 2 . Let r 3 = r 1 [w ← p r 2 ], W 3 = W 1 ∪ {(ww 1 , w 2 ) | (w 1 , w 2 ) ∈ W 2 } a R 3 = (r 3 , W 3 ). Then T t = T t − R 1 − R 2 ∪ R 3 .</formula><p>Transformation works in similar way as with SDTS. The source tree is passed in the top-down manner, while unprocessed nodes are marked by symbol , initially the whole source tree is marked.</p><p>During the generation step, we first choose such a source subgrammar (pattern), that matches a subtree under currently processed node (Fig. <ref type="figure">2</ref>). The model is nondeterministic, i.e., there can be more suitable source subrammars. Then we add target subtrees (corresponding to the associated target subgrammar) together with links to the set of linked target trees. Links are created according to symbol associations (Fig. <ref type="figure">3</ref>). At last we remove symbol from current subtree and again we mark all connected subtrees to indicate they need to be processed.</p><p>If we apply connecting step (Fig. <ref type="figure" target="#fig_2">4</ref>), we first choose two subtrees r 1 and r 2 from the set of target linked trees. These trees must satisfy some conditions; the root of the first one and a leaf of the second one must have the same label and must be linked to the same node in the source tree. Consequently, the set of target linked trees is updated so that subtrees r 1 , r 2 are removed and a new subtree created by connection of r 1 , r 2 is added. Links between this new subtree and the source tree will be updated as well according to the links in old subtrees. However, we want to obtain one tree as a result of transformation. Therefore in following definition of tree transformation via TTG we require the last configuration to consist of a single element.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Definition 13. A transformation generated by TTG</head><formula xml:id="formula_19">Ω is a set τ (Ω) = {(t s , t t ) ⊆ T Ns (Σ s ) × T Nt (Σ t ) | ( (t s ), ∅) ⇒ * Ω (t s , {(t t , W )})}.</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3">Descending tree transducer</head><p>A descending tree transducer is an automaton, which passes a source tree from the root to the leaves and performs changes according to the current state, node and lookeahead. Unlike previous formal models, it works with trees, where labels of internal nodes are from a ranked alphabet. Basically, ranked alphabet is a pair (Γ, rank), where Γ is an alphabet and rank : Γ → N is a ranking function, which assigns positive integer to each symbol in Γ . We usually omit the function rank in the notation and we say that Γ is a ranked alphabet. If Σ is an alphabet and Γ a ranked alphabet, then each internal node in a tree over (Γ, Σ) must have exactly as many children as is the value of the rank of its label. We will not introduce formal definitions here, all of them can be found in <ref type="bibr" target="#b9">[10]</ref> and the notation is very similar to that one used in previous cases.</p><p>A DTT does not represent a model for two-grammars transformations since it works on higher level of abstraction. However, it is easy to restrict definitions in such a way, that we obtain DTT, which transforms derivation trees of a given source grammar into derivation trees of a given target grammar.</p><p>A DTT with finite and regular lookahead has been used in the transformation system SynDoc <ref type="bibr" target="#b16">[17]</ref>. This system generates also an XSLT stylesheet as an output and it is possible to use existing tools for XSLT if further processing is needed. However, in that case the target correctness is not guaranteed anymore.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.4">Higher order attribute grammar</head><p>Basically, an attribute grammar is a context free grammar, such that each rule is associated with a set of semantics rules. These rules have a form X.b := f (Y 1 .c 1 , . . . , Y n .c n ), where X, Y i are nonterminals, b, c i are attributes and f is an n-ary function.</p><p>All definitions presented in this section results from <ref type="bibr" target="#b25">[27]</ref>.</p><p>Definition 14. An attribute grammar -AG is a triple AG = (G, A, R), where</p><p>• G = (N, Σ, P, S) is a context-free grammar,</p><p>• A = X∈N ∪Σ AIS(X) is a finite set of attributes, where AIS(X) is a set of attributes associated with nonterminal X,</p><p>• R = p∈P R(p) is a finite set of attribute rules. If AIS(X) ∩ AIS(Y ) = 0, then X = Y . For every occurrence of a nonterminal in a derivation tree of G there must be exactly one attribute rule applicable for computation of a value for an attribute a ∈ A. Rules in R(p) have a form α = f (. . . , γ, . . .), where f is a name of the function, α and γ are attributes of a form X.a.</p><p>Definition 15. For each p : X 0 → X 1 . . . X n ∈ P we define a set of attribute evaluation occurrences as AF (p) = {X i .a | X i .a = f (. . .) ∈ R(p)}. An attribute X.a is called a synthetized attribute if there is a rule r : X → χ and X.a ∈ AF (r); an inherited attribute, if there is a rule q : Y → µXν and X.a ∈ AF (q). We denote by AS(X) a set of synthetized attributes of a nonterminal X and by AI(X) a set of inherited attributes of a nonterminal X. After evaluation process these attributes contain a subtree as a computed value. Thus, unlike in AG, in HAG the domain of the derivation tree and the domain of attributes overlap.</p><p>A higher-order attribute grammar (HAG) is an extended attribute grammar. A special type of attribute -nonterminal attribute is introduced. Definition 16. For each p : X 0 → X 1 . . . X n ∈ P a set of nonterminal attributes is defined:</p><formula xml:id="formula_20">N T A(p) = {X j |X j := f (. . .) ∈ R(p)}.</formula><p>An unevaluated nonterminal attribute represents a leaf node of the actual tree. At this point we call it virtual nonterminal, since there is no subtree connected to it. After the evaluation is performed, a subtree is computed as a value for nonterminal attribute and consequently it is connected to this attribute (leaf node). Evaluated nonterminals and common nonterminals we also call instatiated nonterminals since they have got an instance, i.e. connected subtree. The set of instantiated nonterminals represents internal nodes of the actual tree.</p><p>A HAG has been implemented in transformation system SIMON <ref type="bibr" target="#b8">[9]</ref>, which takes advantage of the power of this model and enables several complex transformations. However, there is one major drawback. System requires a user to write a complete HAG as a transformation specification and this is usually a nontrivial task.</p><p>For HAG there has been defined formal model -a higher-order attribute tree transducer <ref type="bibr" target="#b21">[23]</ref>, which represents some abstraction and therefore it is more suitable for studying its properties.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.5">Comparison results</head><p>Finally, we briefly introduce results obtained by comparing formal models for type transformations according to their transformational power. Since we defined transformations as relations over sets of trees, we can consider them as sets containing pairs of trees as elements. Thus, we can also compare them as sets. See Table <ref type="table" target="#tab_0">1</ref> for comparison results. Symbol N indicates that transformations of two corresponding formal models are not comparable. More details and all formal proofs can be found in <ref type="bibr" target="#b5">[6]</ref>. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusion and future work</head><p>In this paper we introduced a system for classification of XML documents transformations. Our intention was to simplify choosing of appropriate transformation system according to given requirements for transformation. We defined categories in bottom-up way, i.e. first we were examining implemented transformation systems and consequently we abstracted from them to higher-level groups of transformations sharing similar features. We were examining in detail formal models used for type transformation. We defined common framework for these models and we introduced current results of their mutual comparison. In our future work, we plan to make more comparisons according to transformational power and complexity as well. We intend to include also other models, which might appear to be suitable for XML document transformations.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>4. 1</head><label>1</label><figDesc>Syntax-directed translation schema Definition 5. A syntax-directed translation schema -SDTS<ref type="bibr" target="#b0">[1]</ref> is a 5-tuple Ω = (N, Σ, ∆, R, S), where N is an alphabet of nonterminals, Σ, ∆ are input and output alphabets, S ∈ N is the start symbol and R is a finite set of rules of the form A → α, β, where α ∈ (N ∪ Σ) * , β ∈ (N ∪ ∆) * and nonterminals in β are a permutation of nonterminals in α.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .Fig. 3 .</head><label>23</label><figDesc>Fig. 2. Different views of the same source tree</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 4 .</head><label>4</label><figDesc>Fig. 4. Linking trees by connecting step a) source tree b) target trees before the connecting step c) new target tree</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1 .</head><label>1</label><figDesc>Comparison results</figDesc><table><row><cell></cell><cell cols="3">SDTS ESDTS d-DTT DTT</cell></row><row><cell>SDTS</cell><cell></cell><cell></cell></row><row><cell>ESDTS</cell><cell></cell><cell>N</cell><cell>N</cell></row><row><cell>d-DTT</cell><cell>N</cell><cell></cell><cell>⊆</cell></row><row><cell>DTT</cell><cell>N</cell><cell>⊇</cell></row><row><cell cols="4">SDTS: syntax directed translation schema, ESDTS: extended syntax directed</cell></row><row><cell cols="4">translation schema, d-DTT: deterministic descending tree transducer, DTT:</cell></row><row><cell cols="3">descending tree transducer</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">For example. in the system SynDoc<ref type="bibr" target="#b16">[17]</ref>, several target documents can be generated as the result of transformation and user can choose the most appropriate one.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">In the definition of tree substitution variables are not typed, however, later we will require newly connected subtrees to satisfy some specific conditions.</note>
		</body>
		<back>

			<div type="funding">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>This work was supported in part by the grant VEGA 1/0131/03</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">The theory of parsing, translation and compiling</title>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">V</forename><surname>Aho</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">D</forename><surname>Ullman</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Parsing</title>
				<meeting><address><addrLine>Englewood Cliffs, N.J., USA</addrLine></address></meeting>
		<imprint>
			<publisher>Prentice-Hall, Inc</publisher>
			<date type="published" when="1972">1972</date>
			<biblScope unit="volume">I</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Scrimshaw: A language for document queries and transformations</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">S</forename><surname>Arnon</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Electronic Publishing</title>
		<imprint>
			<biblScope unit="volume">6</biblScope>
			<biblScope unit="issue">4</biblScope>
			<date type="published" when="1993">1993</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<author>
			<persName><surname>Berger-Levrault</surname></persName>
		</author>
		<title level="m">AIS: Balise Reference Manual</title>
				<imprint>
			<date type="published" when="1996">1996</date>
			<biblScope unit="volume">3</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title level="m" type="main">Transformation de documents structurés, une combinaison des approches explicite et automatique</title>
		<author>
			<persName><forename type="first">S</forename><surname>Bonhomme</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1998">1998</date>
		</imprint>
		<respStmt>
			<orgName>University Joseph Fourier -Grenoble</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">PhD thesis</note>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Document transformation based on syntax-directed tree translation</title>
		<author>
			<persName><forename type="first">K</forename><surname>Chiba</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Kyojima</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Electronic Publishing</title>
		<imprint>
			<biblScope unit="volume">8</biblScope>
			<biblScope unit="issue">1</biblScope>
			<date type="published" when="1995">1995</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title level="m" type="main">Transformácie XML dokumentov</title>
		<author>
			<persName><forename type="first">J</forename><surname>Dvořáková</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2004">2004</date>
		</imprint>
		<respStmt>
			<orgName>FMFI UK Bratislava</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Master thesis</note>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<title level="m" type="main">CoST 2 Reference Manual</title>
		<author>
			<persName><forename type="first">Joe</forename><surname>English</surname></persName>
		</author>
		<ptr target="http://www.art.com/cost/manual.html" />
		<imprint>
			<date type="published" when="1996">1996</date>
			<biblScope unit="volume">3</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<title level="m" type="main">OmniMark Programmer&apos;s Guide</title>
		<imprint>
			<date type="published" when="1993">1993</date>
		</imprint>
		<respStmt>
			<orgName>Exoterica Corporation</orgName>
		</respStmt>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">SIMON: A grammar-based transformation system for structured documents</title>
		<author>
			<persName><forename type="first">A</forename><surname>Feng</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Wakayama</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Electronic Publishing</title>
		<imprint>
			<biblScope unit="volume">6</biblScope>
			<biblScope unit="issue">4</biblScope>
			<date type="published" when="1993">1993</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<title level="m" type="main">Syntax-directed semantics: Formal models based on tree transducers</title>
		<author>
			<persName><forename type="first">Z</forename><surname>Füllöp</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Vogler</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1998">1998</date>
			<publisher>Springer-Verlag</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<title level="m" type="main">Transformácie štruktúrovaných dokumentov</title>
		<author>
			<persName><forename type="first">V</forename><surname>Hambálková</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2000">2000</date>
			<pubPlace>FMFI UK Bratislava</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<author>
			<persName><forename type="first">K</forename><surname>Harbo</surname></persName>
		</author>
		<title level="m">CoST Version 0.2 -Copenhagen SGML Tool</title>
				<imprint>
			<date type="published" when="1993">1993</date>
		</imprint>
		<respStmt>
			<orgName>Department of Computer Science and Euromath Center, University of Copenhagen</orgName>
		</respStmt>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">ISO -International Organization for Standardization</title>
	</analytic>
	<monogr>
		<title level="m">Information Processing -Text and Office Systems -Standard Generalized Markup Langugage (SGML)</title>
				<meeting><address><addrLine>ISO</addrLine></address></meeting>
		<imprint>
			<date type="published" when="1986">1986</date>
			<biblScope unit="volume">8879</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">ISO -International Organization for Standardization</title>
	</analytic>
	<monogr>
		<title level="m">Information Technology -Text and Office Systems -Document Style Semantics and Specification Language (DSSSL), ISO/IEC DIS 10179</title>
				<imprint>
			<date type="published" when="1996">1996. 1996</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Tree transformation techniques and experience</title>
		<author>
			<persName><forename type="first">S</forename><surname>Keller</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">A</forename><surname>Perkins</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><forename type="middle">F</forename><surname>Payton</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">P</forename><surname>Mardinly</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the ACM SIGPLAN &apos;84 Symposium on Compiler Construction, SIGPLAN Notices</title>
				<meeting>the ACM SIGPLAN &apos;84 Symposium on Compiler Construction, SIGPLAN Notices<address><addrLine>Montreal, Canada</addrLine></address></meeting>
		<imprint>
			<date type="published" when="1984">1984</date>
			<biblScope unit="volume">19</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">A structured document database system</title>
		<author>
			<persName><forename type="first">P</forename><surname>Kilelinen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Greger Lindén</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Manilla</surname></persName>
		</author>
		<author>
			<persName><surname>Nikunen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">EP90 -Proceedings of the International Conference on Electronic Publishing, Document Manipulation and Typography</title>
				<meeting><address><addrLine>Gaithersburg, Maryland</addrLine></address></meeting>
		<imprint>
			<publisher>Cambridge University Press</publisher>
			<date type="published" when="1990">1990</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Towards automating of document structure transformation</title>
		<author>
			<persName><forename type="first">E</forename><surname>Kuikka</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Leinonen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Penttonen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">DocEng &apos;02</title>
				<imprint>
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<monogr>
		<title level="m" type="main">Survey of software for structured text</title>
		<author>
			<persName><forename type="first">E</forename><surname>Kuikka</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Nikunen</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1998">1998</date>
		</imprint>
		<respStmt>
			<orgName>Department of Computer Science and Applied Mathematics, University of Kuopio</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Technical report</note>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Transformation of structured documents</title>
		<author>
			<persName><forename type="first">E</forename><surname>Kuikka</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Penttonen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Electronic Publishing</title>
		<imprint>
			<biblScope unit="volume">8</biblScope>
			<biblScope unit="issue">4</biblScope>
			<date type="published" when="1995">1995</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<monogr>
		<title level="m" type="main">Structured document transformations</title>
		<author>
			<persName><forename type="first">G</forename><surname>Lindén</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1997">1997</date>
		</imprint>
		<respStmt>
			<orgName>University of Helsinki</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">PhD thesis</note>
</biblStruct>

<biblStruct xml:id="b20">
	<monogr>
		<title level="m" type="main">Integrated Chameleon Architecture</title>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">A</forename><surname>Mamrak</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">S</forename><surname>O'connel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Barnes</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1994">1994</date>
			<publisher>Prentice Hall</publisher>
			<pubPlace>Englewood Cliffs, USA</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">The universality of higher-order tree transducers</title>
		<author>
			<persName><forename type="first">T</forename><surname>Noll</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Vogler</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Theory of computing systems</title>
		<imprint>
			<biblScope unit="volume">34</biblScope>
			<biblScope unit="issue">1</biblScope>
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<analytic>
		<title level="a" type="main">SSAGS: A syntax and semantics analysis and generation system. Attribute Grammars. Definitions, Systems and Bibliography</title>
		<author>
			<persName><forename type="first">T</forename><forename type="middle">F</forename><surname>Payton</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="s">Lecture Notes in Computer Science</title>
		<imprint>
			<biblScope unit="volume">323</biblScope>
			<date type="published" when="1988">1988</date>
			<publisher>Springer-Verlag</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<analytic>
		<title level="a" type="main">GRIF: An interactive system for structured document manipulation</title>
		<author>
			<persName><forename type="first">V</forename><surname>Quint</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Vatton</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the International Conference on Text Processingand Document Manipulation</title>
				<meeting>the International Conference on Text Processingand Document Manipulation<address><addrLine>Nottingham, UK</addrLine></address></meeting>
		<imprint>
			<publisher>Cambridge University Press</publisher>
			<date type="published" when="1986">1986</date>
			<biblScope unit="volume">86</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<monogr>
		<ptr target="http://www.saxproject.org/" />
		<title level="m">SAX -Simple API for XML</title>
				<imprint>
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<monogr>
		<title level="m" type="main">Higher Order Attribute Grammars</title>
		<author>
			<persName><forename type="first">D</forename><surname>Swierstra</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Vogt</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1991">1991</date>
		</imprint>
		<respStmt>
			<orgName>Utrecht University</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Technical report</note>
</biblStruct>

<biblStruct xml:id="b26">
	<monogr>
		<author>
			<persName><surname>W3c</surname></persName>
		</author>
		<ptr target="http://www.w3.org/TR/REC-xml" />
		<title level="m">Extensible Markup Language (XML) 1.0</title>
				<imprint>
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
	<note>), W3C Recommendation</note>
</biblStruct>

<biblStruct xml:id="b27">
	<monogr>
		<author>
			<persName><surname>W3c</surname></persName>
		</author>
		<ptr target="http://www.w3.org/TR/xslt20/" />
		<title level="m">XSL Transformations XSLT Version 2.0, W3C Recommendation</title>
				<imprint>
			<date type="published" when="1999">1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b28">
	<analytic>
		<title level="a" type="main">TREX: DTD-conforming XML to XML transformations</title>
		<author>
			<persName><forename type="first">A</forename><surname>Zhou</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Q</forename><surname>Wang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z</forename><surname>Guo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">X</forename><surname>Gong</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Zhengand</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Wu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Xiao</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Yue</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Fan</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">SIGMOD</title>
		<imprint>
			<date type="published" when="2003">2003. 2003</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
