Kawa has a number of experimental features for working with XML.
These are built on the concepts of the gnu.lists package.
Function: make-element tag [attribute ...] child ...
Create a representation of a XML element, corresponding to
<tagattribute...>child...</tag>The result is a
TreeList, though if the result context is a consumer the result is instead "written" to the consumer. Thus nested calls tomake-elementonly result in a singleTreeList. More generally, whether anattributeorchildis includded by copying or by reference is (for now) undefined. Thetagshould currently be a symbol, though in the future it should be a qualified name. Anattributeis typically a call tomake-attribute, but it can be any attribute-valued expression.(make-element 'p "The time is now: " (make-element 'code (make <java.util.Date>)))
W3C is working an an XML Query language,
and a draft has been released.
If you start Kawa with the --xquery it selects the "XQuery"
source language; this also prints output using XML syntax.
See the Qexo (Kawa-XQuery) home page
for examples and more information.
There is an experimental implementation of the XSLT (XML Stylesheet
Language Transformations) language.  Selecting --xslt at the
Kawa command line will parse a source file according to the syntax
on an XSLT stylesheet.
See the Kawa-XSLT page
for more information.