AW: Canonical XML typo?

> -------------------
> Section 4.6 Superfluous Namespace Declarations
> 
> Unnecessary namespace declarations are not made in the canonical form.
> Whether for an empty default namespace, a non-empty default namespace,
> or a namespace prefix binding, the XML canonicalization method omits a
> declaration if it determines that the [*]immediate parent[*] element in
> the canonical form contains an equivalent declaration.

I think the last sentence should be changed to something like:

  ..., the XML canonicalication method omits a declaration if it determines
  that the immediate parent element in the canonical form has an equivalent
  namespace declaration (same local name and value) *IN SCOPE*.

Regards, Gregor
---------------------------------------------------------------
DI Gregor Karlinger
mailto:gregor.karlinger@iaik.at
http://www.iaik.at
Phone +43 316 873 5541
Institute for Applied Information Processing and Communications
Austria
---------------------------------------------------------------
 

> --------------------
> 
> Given this input:
> 
>   <foo xmlns="http://www.example.org">
>     <bar xmlns="">
>       <foo xmlns="http://www.example.org">
>         <bar xmlns="">
>           <foo xmlns="http://www.example.org">
>         </bar>
>       </foo>
>     </bar>
>   </foo>
> 
> And a nodelist which strips the bar elements, something like:
> 
>   //.[not(self::bar)] | //namespace::*[not(parent::bar)]
> 
> The canonical output would appear to be:
> 
>   <foo xmlns="http://www.example.org">
>     <foo>
>       <foo xmlns="http://www.example.org"/>
>     </foo>
>   </foo>
> 
> (Please excuse any canonicalization errors or whitespace differences
> here that aren't germain to my point.)
> 
> It appears that superfluous declarations can still squeak through.  In
> other words, this example is so contrived to circumvent section 2.3, by
> ensuring that no ancestor in the source document has a duplicate
> namespace node.  And 4.6 only applies to immediate parents in the output
> document, and not to ancestors, and thus applies to the first child foo,
> but not the grandchild foo.
> 
> Should "immediate parent" in 4.6 instead be removed in favor of
> something that more closely resembled the scoping rules of the Namespace
> Spec?
> 
> Thanks, 
> 
> Jonathan Marsh
> jmarsh@microsoft.com
> 
> 
> 

Received on Friday, 1 December 2000 03:05:36 UTC