OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] Re: [Sax-devel] Showstopper issue with new Attributetext

[ Lists Home | Date Index | Thread Index ]

David Megginson wrote:
> OK, people, what do we do here?  Here are my opinions:
> 
> 1. Anyone who writes an application that actually cares about the 
> Namespace assigned to xmlns attributes is f#@$%@#$ed in the head and 
> deserves whatever happens.
> 
> 2. That said, we still have a responsibility to try to do the right 
> thing. If we get it wrong, though, it doesn't matter all that much (see 
> #1).

One may indeed be fuxored in the head but one may simply be implementing 
a SAX handler that produces a DOM. In that case, well, you just need to 
know (and I suspect that would translate equally to other 
representations of the Infoset, depending on which parts they decide to 
stick to and which they ditch). Head-fuxoring is transitive.

> So, bearing all that in mind, what should we report for the following 
> Namespace declaration?
> 
>   <foo xmlns="http://www.example.org/ns#"/>
> 
> a) an attribute with no Namespace URI and the local name "xmlns";
> 
> b) an attribute with the Namespace URI "http://www.w3.org/2000/xmlns/"; 
> and no local name; or
> 
> c) an attribute with the Namespace URI "http://www.w3.org/2000/xmlns/"; 
> and the local name "xmlns".
> 
> Note that none of these is a clean solution, probably because Namespaces 
> 1.1 is a bit broken.  Then again, I doubt it matters much.  If no one 
> presents a convincing argument, I'll just pick one of the three at random.

Is consistency accross SAXes a convincing argument? PerlSAX settled this 
to be a) a while ago, on the grounds that ok it might not be the spec 
but having an attribute with no prefix have a namespace was taking it 
too far to our taste.

Quickly throwing together something:

use XML::SAX::ParserFactory;
use Data::Dumper;
XML::SAX::ParserFactory->parser(Handler=>bless[])->parse_string('<foo 
xmlns="hhh"/>');
sub start_element { print Dumper($_[1]->{Attributes}); }

produces:

$VAR1 = {
           '{}xmlns' => {
                          'LocalName' => 'xmlns',
                          'Prefix' => '',
                          'Value' => 'hhh',
                          'Name' => 'xmlns',
                          'NamespaceURI' => ''
                        }
         };


-- 
Robin Berjon




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS