XML.com

XML Boiler 0.9.0 - automatically transform between XML namespaces

November 24, 2018

Submitted by Victor Porton.

XML Boiler 0.9.0 is a preliminary release of my software to automatically transform between XML namespaces. 

This version supports such things as: non-Debian OSes (should work even on Windows but not tested), XSLT and Python script support for transforming XML, several bug fixes and cleaner code. The scripts provided with this software support: some "new HTML tags" for example to automatically create a ToC, XInclude (not 100% support yet), coloring HTML tags with Pygments, tag which just ignores its content. More features can be added by the user (provided he knows some programming), by writing XSLT and/or Python scripts (support for more languages is to be added in the future).

Validating XML is not yet supported.

I [Ed. note: Victor Porton] have written (a draft of) a specification (under the title Automatic transformation of XML namespaces) and the Python software (XML Boiler) which implements it.

This is a new breakthrough XML technology. XML Boiler can automatically transforms from an XML namespace (or a set of namespaces) to another XML namespace (or set of namespaces).

XML Boiler supports running a pipeline of XML transformations. It is like a Unix pipeline, but runs under control of XML Boiler process. A single step of the pipeline may for instance expand XInclude directives (that is input additional XML or text files) or for instance create a table of content in HTML format or add colors to source listings in XHTML.

Why then not just to run a Unix pipeline instead of XML Boiler? The reasons are:

  • You need only a single command to run all transformations, no need to write a lengthy pipeline of commands.

  • XML Boiler decides which scripts to run automatically; you don’t need to find specific scripts and decide their order of running, it is done by XML Boiler automatically based on the namespaces in the documents.

  • XML Boiler can automatically extract subdocuments from the main XML document. For example (just for fun) if the input document is an XML RDF containing several XHTML documents (to be more interesting, containing a command to create tables of content), then XML Boiler would extract every XHTML file automatically and process them independently and then assemble them (with added tables of content) back into the XML container. So XML Boiler has a good support for embedding one XML document into another one (distinguished by XML namespaces).

The key opportunities this project opens:

  • freely intermix tag sets of different sets of tag semantics (using XML namespaces), without disturbing each other (such as by name clash) in the global world

  • add your new tags to HTML (and other XML-based formats)

            - get rid of using HTML in future Web, switch it to proper semantic XML formats

                - make XSL-format based browsers with automatic generation of XSL from other XML formats (don’t confuse XSL with XSLT!)

            - make automatic coloring of source listings (for example)

  • add macroses and include (such as by XInclude) other files in XML

  • intermix different XML formats, with intelligent automatic processing of the mix

            - embed one XML format in another one

            - automatically choose the order of different XML converters applied to your mixed XML file

  • useful for browsers to show your XML in arbitrary formats (including new XML formats you create)

  • make processing XML intelligent (with your custom scripts)

  • integrating together XML conversion and validation scripts written in multiple programming languages

  • associating semantics (such as relations with other namespaces and validation rules) to a namespace

            - semantics can be described as an RDF resource at a namespace URL (or a related URL); our software supports parsing and processed certain RDF format (as “directives” how to process XML)

  • file transformation with an automatically found “chain” of several conversions between different formats

  • many more opportunities

  • integrate all of the above in single command

  • (in the future) make it also a HTTP(S) proxy server

You can help this project by donating. If you know Python and basic computer science, you can also participate in programming.

I am going to publish examples of how to use my software later.


News items may be commercial in nature and are published as received.