We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Imagining, building and using an XSLT virtual machine

00:00

Formal Metadata

Title
Imagining, building and using an XSLT virtual machine
Title of Series
Part Number
9
Number of Parts
17
Author
License
CC Attribution - NoDerivatives 2.0 UK: England & Wales:
You are free to use, copy, distribute and transmit the work or content in unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language
Production Year2009
Production PlacePrague, Czech Republic

Content Metadata

Subject Area
Genre
Abstract
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.