[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

namespaces redux (was: Re: [XML Schema] Here's how toempower i

  • From: Amelia A Lewis <amyzing@talsever.com>
  • To: xml-dev@lists.xml.org
  • Date: Mon, 15 Oct 2012 15:37:38 -0400

namespaces redux (was: Re:  [XML Schema] Here's how toempower i
Look! A hobby-horse! Let's ride!

On Mon, 15 Oct 2012 00:28:49 -0400, Christopher R. Maden wrote:
> On 10/15/2012 12:09 AM, Liam R E Quin wrote:
> (in fact, best practices uses of W3C namespaces are not, ultimately, so 
bad).
>
>> You need to be more concrete in your proposal I think :-)
> 
> I don’t recall making a proposal... just a critique.  Far easier. (-:

Some possible best practices:

1) do not use QNames in content. This makes use of things like schema 
and xslt nearly impossible, but at least avoid creating any new xml 
dialect that does this.

2) declare all bindings to prefixes other than the default as widely as 
possible, and never change them. That is, declare on the root element, 
use only one prefix for each namespace, and once bound, never change 
the binding. Try to only use non-default prefixes only for attributes, 
if that is possible.

3) permit re-binding of the default prefix where needed. Prefer to 
rebind the default prefix (null prefix) if elements from a foreign 
namespace appear (that is, try to use non-default prefixes only for 
attributes).

Explanations: 

QNames in content are evil. They break an important boundary: the 
parser should care about structure, not values; the application may 
care about both but should not have to ever know what the "prefix" of 
an element or attribute is. Only the namespace is important. For QNames 
in content, prefixes become important, though they shouldn't be. For 
new dialects, the 'expanded name' format that James Clark introduced 
ought to be preferred: {uri}localName rather than prefix:localName. 
QNames in content are only safe when the parser can populate a tree 
with typed values, substituting a QName object/structure for the 
prefixed string that appears in the XML. Removing QNames from content 
is the single most valuable best practice that can be followed for 
namespaces in XML. In cases where expanded names are too cumbersome, 
introduce an application-level mapping of prefixes to namespaces, with 
application-defined scoping, and put the mapping into content as well.

If practices 2 and 3 could be mandated, then there would be a single 
document-wide mapping of prefixes to namespaces, plus a "current 
namespace" (mapped to the default prefix) that would have to be 
tracked. There may be some documents that cannot be represented in this 
fashion, but almost all such documents have QNames in content. *Apart* 
from QNames in content, I do not think I have encountered a document 
that could not have been rewritten in this fashion in the past dozen 
years of dealing with namespaces in XML.

Amy!
-- 
Amelia A. Lewis                    amyzing {at} talsever.com
So what is love then?  Is it dictated or chosen?  Does it sing like the 
hymns of a thousand years or is it just pop emotion?  And if it ever 
was 
here and it left does it mean it was never true?
                -- Emily Saliers


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.