XML processing has to deal with at least with four kinds of tasks:
- Validation: checking whether a document has the desired structure
- Navigation: selecting a set of positions given position via paths with
specified properties
- Transformation: constructing a new document from a given one by
applying a set of rules
- Querying: extracting information from a document.
For these tasks suitable languages have been designed, DTD & XML
Schema, XPath, XSLT and XQuery, respectively. But they also have been
studied from a more formal point of view by using well known concepts
from database theory, logic and the theory of formal languages.
The tutorial aims to introduce into the main aspects of these formal
foundations of XML languages. It will particularly emphasize the
expressive power of the underlying formalisms and the
complexity of fundamental algorithmic tasks like evaluation of XPath
queries, checking containment of schemas or type checking
transfomations.