All tests are passed, and now I think that conversion from SXML to libxml2 is working and stable.
In the previous post I announced that namespaces are finished. At that moment I was near the end. The only things to do were:
- Fix conversion of processing instructions. The PI targets are the Scheme symbols, not the Scheme strings.
- Check escaping of the XML special symbols in XMLs generated.
All is done, and the conversion code is complete.
Honestly, some things are not supported (and probably will never be supported):
- TOP metadata: namespace definitions can't be mapped to the root node in libxml2 (I might be wrong).
- "ENTITY" special node: it's never used.
- PI metadata: it's never used.
Now it's time to think on further development. I think that it's a good idea to work on a reverse conversion from XML to SXML. I'm going to implement a Scheme function "x:context-node" which returns a context node of an XSLT transformation as SXML.