This chapter gives an overview of the technologies used in this report, as far as necessary for understanding.
XML is becoming the method of choice for representing structured information in a formalized way. However, it needs a convenient way to query and manipulate XML structures. It needs an equivalent to SQL.
Several XML query languages have been proposed. I will give a short overview of some proposals and their relation to this paper.
[BC99] lists a comprehensive set of requirements for query languages. This section outlines the requirements I found being related to this paper.
A join compares two or more XML attributes or data. A typical comparison is the equality. [BC99] points out, that XML-QL supports joins, while XSLT does not. In this paper the join of XML-QL is solely used for the quite unsatisfying implementation of the transitive closure (see section 4.2). XSLT solves this problem much better with recursion.
With cyclic data it is possible to run the query processor into an infinite loop. This criterion examines, whether the language processor must detect such a situation and abort gracefully. [BC99] correctly points out, that XSLT does not support such a detection. This is concerns the script in A.3. If the generalization relation contains a cycle, this causes the script to loop infinitely. The XML-QL specification leaves this property unspecified.
Querying for XML elements appearing in a given order in the document. [BC99] claims, that XML-QL cannot do that. However, I found a construction suitable for this, as explained in 4.1, although this is not implemented in the prototype. XSLT and its prototype LotusXSL support instance order.
Roughly speaking, XMI is a XML representation for UML. But the details are a bit more complex:
Let me explain this on an example. Given the task to represent an operation with its parameters in XML, most results would probably look like this:
The designer of UML knows, that ``parameter'' is the only way, to reach ``Parameter'' from ``Operation''. But the designer of MOF and XMI cannot rely on this. There could be another association beetween ``Operation'' and ``Parameter''. Therefore all <Parameter> elements must be enclosed by <parameter> elements, no matter how unneseccary it looks.