XMLPrague Logo
21. - 22. March 2009

Gold Sponsors:

Florent Georges - fgeorges.org Xcruciate logo

Main Media Partner:

Media Partners:

Sister Conference:
Balisage - The Markup Conference

Partner for Accommodation:

Video services sponsored by:
River Valley Technologies

Produced by:
XMLPrague.cz & Institute for Theoretical Computer Science


Here are the sessions for XML Prague 2009.


Designing XML/Web Languages: A Review of Common Mistakes
Robin Berjon

play, watch

The tremendous uptake that XML benefited from a decade ago led to a great many XML vocabularies being defined, notably in the area of Web technology. But unfortunately there was not enough markup experience around to help so many projects avoid pitfalls.

This talk will look at a number of examples of vocabulary design failures in the area of Web languages, and discuss why they are problematic and how to avoid them.


Cool mobile apps with SVG and other Web technologies
Robin Berjon

play, watch

The capabilities of mobile devices increase ceaselessly, and on occasion they are even useful. That is the case of Web technologies that have been becoming mature and gradually more important in mobile devices.

This talk will look at the state of current implementations, at where mobile Web technology stands today notably concerning the recent release of SVG Tiny 1.2 and the improvement in support for WICD documents, and will show demos to give an idea of what can be done.


oXygen XML Editor demo
George Cristian Bina


A live demo of oXygen presented by two of the oXygen team members. The demo will cover some of the important XML authoring and development features like:

  • visual authoring (DocBook, DITA, etc.)
  • schema development
  • XSLT development and debugging
  • working with XQuery and XML Databases

Questions are welcome at any time!


High-performance XML: theory and practice
Alex Brown


At the 2006 Extreme Markup conference in Montreal I presented a paper outlining a method of XML processing based around "frozen streams" which seemed to promise better memory usage and execution time for common XML processing operations.

This paper briefly revisits the theory, presents the results of implementing it, enumerates the lessons learned and suggests new ways forward.


A practical introduction to EXSLT 2.0
Florent Georges


download, watch

Back eight years ago, XSLT had just been released and yet, missing features began to be missing. A few features were identified as possible extensions to and within the context of the standard recommendation, and were gathered under one single project: EXSLT.

EXSLT helped a lot writing XSLT 1.0 stylesheets that are portable across several processors, and showed the way for some features of what was going to become XSLT 2.0.

Now, XSLT 2.0 is just two years old. And yet, missing features begin to be missing. It is now time for EXSLT 2.0! As EXSLT has been launched soon after XSLT 1.0 was released, it is time to define what EXSLT 2.0 should provide in the next few years.

This introduction presents the EXSLT 2.0 initiative, some of its goals, and ideas about useful extensions. It will introduce a proposal of HTTP client extension, and show possible usages by example. Eventually, it will provide a description of the potential extensions landscape and possible applications.


Testing XSLT
Tony Graham
Menteith Consulting Limited

download, watch

Creating a working stylesheet may seem like an end in itself, but once it’s written you may want it to run faster or you may not be sure that the output is correct (And if you are sure, how sure are you?).

Profilers, unit test frameworks, and other tools of conventional programming are similarly available for XSLT but are not widely used. This presentation surveys the available tools for ensuring the quality of your XSLT.

There is no one-size-fits-all solution when looking for tools. For example, if you are using Saxon and Ant, then you are looking for a different set of tools than if you are using libXSLT and Makefiles.

This presentation covers XSLT-specific tools and techniques. It does not at this point propose to cover general XML tools and techniques such as schema validation or Schematron: they are of course useful, and could be added, but XSLT tools provide plenty to cover in a single timeslot.

Up-to-date information on XSLT testing resources is available at:


Similarly, XSL FO testing resources are available at:



Introduction to Code List Implementation
G. Ken Holman
Crane Softwrights Ltd.

download, watch

"Introduction to Code List Implementation" overviews the use of Genericode and Context/Value Association files for the representation and validation of controlled vocabularies such as code lists and identifier lists for XML documents of any XML vocabulary. The OASIS genericode format http://docs.oasis-open.org/codelist/genericode is used for the representation of values, and the OASIS context/value association using genericode specification http://www.oasis-open.org/committees/document.php?document_id=29990 (a work item of the OASIS Code List Representation Technical Committee http://www.oasis-open.org/committees/codelist/) is used for the data entry or the validation of instances of any XML document model with controlled values.


Imagining, building and using an XSLT virtual machine
Mark Howe

join xcruciate mailing lists

download, watch

XSLT is the canonical XML vocabulary for transforming XML, but the creators of realtime server applications such as chatrooms and virtual worlds have tended to rely on lower-level technologies such as SAX and DOM for manipulating XML client-server protocols. The goal of the open-source Xcruciate project is to develop a generic server solution based around XSLT, with I/O, data storage and application code in XML.

Theorists have discussed the extent to which XSLT is Turing-complete, with Dimitre Novatchev's FXSL showing what is possible within a single transformation. The Xcruciate team has taken a less pure and more pragmatic approach, using a LibXSLT-based virtual machine to perform successive transformations on state data and to handle I/O to multiple clients via socket connections.

An all-XML server implementation offers a number of advantages compared to bespoke OOP code, notably by enabling snapshots of the entire environment through serialisation. The main challenge has been balancing the conceptual elegance of pure XSLT with the need for rapid throughput and relatively concise application code.

The talk will focus on the design decisions made in the course of Xcruciate's development and the challenges encountered during implementation, as well as giving a taste of server application development within an all-XML environment.


XML Schema moves forward
Michael Kay

download, watch

The XML Schema (XSD) specification from W3C is a paradox: it is one of the most heavily criticised specifications to come out of the organisation, but at the same time it has been widely adopted and implemented, and it can be said to have met all its design objectives.

For some time the responsible working group has been developing a new version, XSD 1.1, which is starting to get close to the finish line. Many of the difficulties with the specification (such as its immense complexity) will still be there, but some of the criticisms, notably those concerned with the limited functionality of the spec, are met head on with some powerful new features. This talk will give a quick overview of what's new, while concentrating in particular on the way in which Assertions are likely to change the way in which XSD is used. Assertions, borrowed from Schematron, supplement the ability to define constraints using grammar and datatypes by a general predicate mechanism based on XPath. Already implemented in Saxon, they offer far more than the obvious ability to define boolean constraints: the talk will explain how they can be used as a powerful mechanism for tailoring and specializing schemas for use in different environments within an industry community.

The speaker, Dr Michael Kay, is founder of Saxonica Limited which develops the popular Saxon XSLT, XQuery, and XML Schema engine. He is a member of the W3C working groups for all three languages, and author of XSLT 2.0 Programmer's Reference, the definitive Wrox guide to the language, recently republished in a fourth edition.


Full validation of Atom feeds containing extensions using NVDL
Murata Makoto


The RELAX NG schema in RFC 4287 (The Atom Syndication Format) does not provide full validation of Atom feeds containing extensions. Rather, this schema skips extension elements and attributes, even when extension elements further contain Atom feeds or entries. This document shows that ISO/IEC 19757-4 Namespace-based Validation Dispatching Language (NVDL for short) allows full validation of atom feeds containing extensions. NVDL decomposes atom feeds containing extensions into (1) extension-free atom and (2) extensions so that (1) and (2) are validated separately. As an example, an NVDL script for Google Calendar is presented.


Advanced Automated Authoring with XML
Petr Nálevka


This article proposes a set of powerful XML technologies (e. g. DocBook, SVG...) to automate authoring of large, detailed and highly visual documentation which would be difficult and error prone to reproduce manually. The author further proposes best-practices for XML authoring and introduces a simple yet powerful framework which supports tasks typically related to document publishing and integration of information from various sources.

Rather than building a complex theoretical background this article focuses on being very practical. It demonstrates the use of various technologies on a case study taken from the networking industry.


Practical Reuse in XML
Ari Nordström

download, watch

Reuse is often the key selling point for XML authoring systems. This presentation examines reuse from various points of view, from the author's to the developer's, offering practical strategies for reuse of content. Markup design is discussed, as are necessary prerequisites for making such a system work. What should be reused, and when? How do you uniquely identify a resource, and what, exactly, is a resource anyway? How do you design a user interface that helps the author instead of hindering her? From a practical point of view, how do you design a publishing process that works?

A demonstration of such a system illustrates the points made.


Test XSLT with XSpec
Jeni Tennison
Jeni Tennison Consulting

download, watch

Test-driven development is one of the corner stones of Agile development, providing quick feedback about mistakes in code and freeing developers to refactor safe in the knowledge that any errors they introduce will be caught by the tests. There have been several test harnesses developed for XSLT, of which XSpec is one of the latest. XSpec draws inspiration from the behaviour-driven development framework for Ruby, called RSpec, and focuses on helping developers express the desired behaviour of their XSLT code. This talk will discuss the XSpec language, its implementation in XSLT 2.0, and experience with using XSpec on complex, large-scale projects.

Google Code page of XSpec


Optimizing XML Content Delivery with XProc
Vojtěch Toman
EMC Corporation

download, watch

XProc, or the XML Pipeline Language, has every potential to become one of the most useful new XML technologies around. The language has recently become a W3C Candidate Recommendation and is gathering growing interest in the XML community, both from the users and implementers.

Following the progress of the specification, and the evolution of the language to its present form, XProc has been successfully deployed in a dynamic content delivery platform, where it has quickly proved its strengths and established itself as the primary technology for XML data manipulations.

In this paper, we will briefly discuss the design principles behind XProc implementation and then proceed by illustrating how XProc can be leveraged in the XML content delivery context. We will present a number of use cases and show some XProc pipelines that can be used for implementing the relevant functionality. For each use case, we will start by formulating a relatively simple introductory scenario (usually with equally simple solution) to get the reader familiar with the problem – and to show that even the simplest XProc pipelines can provide us with enough power for our needs. After that, we move on to a more challenging scenario, which will require us to use more complex XProc pipelines.


Xdefinition 2.1
Václav Trojan


The paper describes Xdefinition 2.1 as an integral instrument for the design and development of projects with XML objects. In our development of Xdefinitions we concentrated on their application in the process of XML documents throughout the life cycle of the information system creation. This cycle typically includes discussions and negotiations with partners, analysts and implementators. We emphasized comprehensibility for all participants of the individual stages of IS formation as well as the binding character. The description of XML objects structures by means of Xdefinitions is easy to understand not only for informatics experts but also for a wider spectrum of participants who inevitably take part in the project implementation. By the binding character we mean the usability of the description for machine processing (description of data structures includes also processing code). Compared to the previous versions the Xdefinitions 2.1 thus allow also to define links of the objects to different situations in the course of their processing.


FunctX: A case study in end-to-end processing of XML
Priscilla Walmsley


download, watch

The FunctX XQuery/XSLT 2.0 function library is a set of reusable functions for XQuery 1.0 and XSLT 2.0. The project itself is an open source application and framework for developers to create function libraries. This talk will present an overview of FunctX from the perspectives of using the library and as an example of how one would build reusable XSLT and XQuery modules.


Exploring XProc
Norman Walsh

play, watch

This presentation will explore the current state of XProc: An XML Pipeline Language through a combination of slides and live demos. Particular attention will be paid to demonstrating pipelines that are, or could be, useful to solve real world problems.