|
[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] C14n namespaces
So, I'm trying to fix up Genx to do the right thing with namespace declarations with respect to C14n. The summary says "Superfluous namespace declarations are removed from each element" which I had naively taken to mean that if you saw <a xmlns:foo="a:b" xmlns:bar="c:d"><foo:x/><y/></a> You'd rewrite that as <a> <foo:x xmlns:foo="a:b"></foo:x> <y></y> </a> Removing the declaration of foo: from the root because it's *superfluous* there, and removing the declaration of bar: entirely because it's superfluous in the whole document. This is what Genx currently does. Sigh. I leapt to this conclusion because, since non-editor applications don't care about namespace declarations, the two forms above are effectively identical for the purposes of nearly all applications, and the second form is easily computed stream-wise given any XML as input. On closer reading, I now think that you'd rewrite that as <a xmlns:foo="a:b" xmlns:bar="c:d"><foo:x></foo:x><y></y></a>, i.e. just putting in the end-tags. Per this understanding, per Canonical XML, the following two XML docs are distinct: <x xmlns:foo="a:b"/> <x xmlns:bar="c:d"/> Which seems like complete craziness to me... except for I guess you have to do this because there may be some qnames lurking in the content; precisely the problem that Simon Fell ran across. Unless someone tells me I'm wrong, I'm off to significantly simplify Genx. -Tim
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|
|||||||||

Cart








