Namespace Processing Hints and Rant on Scoping/Defaulting

David Megginson david at megginson.com
Tue Aug 11 23:29:01 BST 1998


John Cowan writes:

 > Here's my take on it.  Suppose you have the fragment:
 > 
 > 	<foo:a>This is <b>mixed</b>content</foo:a>
 > 
 > where "foo" is not a previously declared prefix.  One must then consult
 > the DTD to see whether the element declaration for "foo:a" contains
 > a default (or fixed) value for the "xmlns:foo" attribute.  If not,
 > a namespace constraint has been violated.

No, the processing isn't that tricky if you think of these as layered
protocols:

Layer #1: The author writes the following:

  <foo:a>This is <b>mixed</b> content</foo:a>

Layer #2: XML parser checks for well-formedness/validity and supplies 
          default values:

  <foo:a xmlns:foo="http://www.foo.com">This is <b>mixed</b> content</foo:a>

Layer #3: The namespace processor interprets any special attributes:

  <http://www.foo.com/+a>This is <b>mixed</b> content</http://www.foo.com+a>

Layer #4: The application does something interesting with the result.


<Rant>

That said, I still really HATE the new declaration namespace syntax
and the scoping/defaulting, but for reasons other than the problem of
DTD validation: the whole thing reminds me too much of my first early
experiences with BASIC, assembly language, etc., when people were
writing giant, monolithic programs to avoid the supposed overhead of
function calls.  Today, some people want to build giant monolithic XML
documents to avoid the supposed overhead of multiple HTTP fetches.

I know that of which I speak, since embarrasingly recently I wrote the
original AElfred parser in a single Java class with similar excuses.
Now, every morning, I thank the higher deities that someone else has
to maintain the @#$%@#@ thing (at least I commented the code well).
SAX has lots of classes, and it's actually fun to maintain.

Don't write an entire C program in main(); don't write an entire Java
program in a single class; don't put all of your data into a single
SQL table; don't force all of your information into a single XML
document.  If people followed these guidelines, then local scoping and
defaulting of namespaces would be seen for the silly non-issues that
they are, and XML with namespaces would still be simpler than SGML.

</Rant>


All the best,


David

-- 
David Megginson                 david at megginson.com
           http://www.megginson.com/

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)




More information about the Xml-dev mailing list