Simple Tree Manipulation (STM) Language is a simple xml processing language. It is designed to
concentrate on tree operations on the xml document tree. STM operations
are expressed in xml whilst all references are xpath based. The use of Xpath references leads
to a very concise model and ensures that the underlying Document Object Model is completely abstracted. This
results in a simple, clean and very powerful xml processing model.
STM is complementary to XSLT. Where XSLT allows generative document processing in the transform domain. STM performs
document tree manipulation in the document domain. The combination of STM and XSLT processing steps is often a very efficient
xml processing pattern.
This guide provides a detailed description of each of the stm operations. It shows
examples of the use of each instruction and allows the reader to try the examples to see the results
for themselves. The document also includes a formal discussion of the STM processing model - we recommend
that this is read after trying out some examples first.
An stm document consists of a root <stm:group>
element which has stm operations as children. In the examples
for convenience we are including the stm document as a literal in the operator.
It is equally correct to obtain an stm:group document from a static uri. A more exciting pattern is to dynamically generate an stm document
from a custom URA for example by wrapping a database query or other procedure.
After user feedback and refinement the STM language will be submitted as a standard.