anthony tran i epv9dxg7u unsplash 5

This is about Automatic transformation of XML namespaces.

Previously I divided all transformations into two groups:

  1. with a given source and target namespace (as converting DocBook into HTML);
  2. with only source given but not the target (as for XInclude).

Today I’ve realized that it is a wrong division. Instead we need to split into:

  1. transformations for transforming from a specified source to a specified target;
  2. transformations for which transformation should happen if we have correct source namespaces, not depending on which is the target namespace.

The second kind is some kind of “reducing” as XInclude reduces one XML file to another (and this usually are transformation in “right” direction even if the destination namespace is not in our list of destination namespaces). The “reduce” is defined as an operation which should always happen over an XML file even if the target namespace is not in our set of expected target namespaces.

But “reducing” is not absolute. Sometimes we may want to reduce from a given source namespace and sometimes not. Reduce is some relative property: The same namespace may be considered as a source of reduce and sometimes not. For example one may want to convert XInclude tags and attributes into another XML namespace which describes inclusion (instead of reduce).

We are yet to understand relative of what is the reduce. How we specify when a reduce is in our set of reduces and when no.

Sorry if I explained not quite clearly, this is a work in progress.

This is a new hard (fundamental) problem appeared before me while developing Automatic transformation of XML namespaces. I have solved some other fundamental problems after some despair and hope to solve this problem too.