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


Help: OASIS Mailing Lists Help | MarkMail Help



   Re: The Peace Process: DOM and namespaces...

[ Lists Home | Date Index | Thread Index ]
  • From: Marcelo Cantos <marcelo@mds.rmit.edu.au>
  • To: xml-dev@ic.ac.uk
  • Date: Fri, 12 Feb 1999 12:45:21 +1100

On Thu, Feb 11, 1999 at 05:44:18PM -0500, Tyler Baker wrote:
> Marcelo Cantos wrote:
> > 
> > As in expat:
> >
> >   <doc xmlns="www.simdb.com"><p>Hello world!</p></doc>
> >
> > becomes:
> >
> >   <ns0:doc xmlns:ns0="www.simdb.com"><ns0:p
> >   xmlns:ns0="www.simdb.com">Hello world!</ns0:p></ns0:p>
> >
> > Not sure why the second xmlns:ns0 is there.  Maybe it just makes
> > life easier on the user (no need to traverse the parents).
> >
> > Also not sure why the last close tag is </ns0:p>.  I guess that's
> > why my copy of expat came from the _test_ directory on James's FTP
> > site.  :-)
> Well, then you no longer have the original document structure you
> had before but these archane prefixes in your document which make
> things completely unreadable from a users perspective.  I might as
> well just use Java Object Serialization only for serializing an
> object tree as it would be faster and be no less understandable to
> the end-user than all of this automatic prefix creation.

I guess my use of the term "user" made my post a little ambiguous.              
What I meant was "client of the parser", i.e. the person implementing           
a high-level API to the document.  The real end-user (the person                
clicking buttons on a browser, or integrator writing code in a                  
scripting language) never sees the internal representation of the               
document.  As far as I am concerned, the user never sees anything but           
the first version above.  The second is accessed by tools that give             
programmatic access to the data, such as a DOM interface.                       
As an example, the document above could be accessed like this:                  
  DOMDocument d("<doc xmlns=\"www.simdb.com\"><p>Hello
  DOMNode root := d.root();                                                     
  String text := root.children("p", "www.simdb.com");                           
The user is completely oblivious to the background convolutions of              
using "archane prefixes".  This, of course, makes life hard on the              
implementor, but as a user, I couldn't care less, as long as my life            
is made easy.                                                                   
(The astute reader may observe that the transformed document above              
throws away the concept of a current namespace.  I think this is bad,           
since I would like to do this:                                                  
  String text := root.children("p");                                            
and have the root's namespace implied, just as it is in the document.           
This is more than a just a pedagogical grumble.  It has significant             
ramifications for code reuse.  I want to write a function that pulls            
apart a legal statute and presents it as an HTML document.  But I want          
that function to also work on a fragment that has been inserted into a          
larger document and wrapped up in a namespace.)                                 


xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo@ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo@ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@ic.ac.uk)


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

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