namespaces reloaded

All this time I’ve subconsciously been ignoring a big namespace-related problem. I’m afraid the correct solution slows down the conversion between XML and SXML, and that I have to use the correct solution.

Consider the example:

<a xmlns:ns="x:y:z">
 <b>
  <ns:c>
 </b>
</a>

Suppose you want to copy a subtree defined by the element “b” into some other tree. But what happens then to the element “ns:c”?

Unfortunately, you get a “free” entrance of the namespace prefix “ns”. In this case, collisions or other troubles may happen.

At the moment I see the only solution is to scan subtree for free namespace prefixes and add namespace definitions for the free prefixes.

To make things worse, at the moment I don’t know how to make it in SXML to XML conversion. There are no parent pointers in S-expressions, so it’s impossible to find namespace definitions for a namespaced node.

Leave a Reply