|
XSLTVM - an XSLT Virtual Machine
|
 |
The emergence and popularity of XML helps facilitate the development
and integration of business and application semantics. However, each enterprise
defines their own data elements to better communicate the "meaning" of their
data. Translation will therefore be key for interoperability. XSL standards
for transformation are sufficient to allow exchange between business vocabularies.
Currently there are many XSLT engine implementations. In this paper, we present
a novel approach for implementing transformations using XSL. We describe a
XSLT Virtual Machine (XSLTVM). XSLTVM is the software implementation of a
"CPU" designed to run compiled XSLT code. A concept of virtual machine assumes
a compiler compiling XSLT stylesheets to sequence of byte codes or machine
instructions for the "XSLT CPU". This approach clearly separates compile-time
from run-time computations and specifies an uniform way of data exchange between
instructions by defining a common interface areas like stack or pipeline for
example. The separation line between compile-time and run-time computations
depends on the level of machine instructions. Splitting a heterogeneous, high-level
instruction into number of atomic, low-level instructions exposes some run-time
checks and allows compiler to take care of them. For example, a general CMP
instruction checks operand types at run-time. If it is replaced with few type
specific CMPs then compiler checks operand types at compile-time and generates
appropriate type casting instructions if needed.