XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] Pragmatic namespaces


On Jul 31, 2009, at 4:06 PM, Micah Dubinko wrote:

> Point 1:
> Any element name with no dots in it is treated as HTML (including  
> HTML rules on handing unrecognized elements)
>
> Requirement: this solution must allow for distributed creation of  
> globally-unique namespace names (including those outside of a  
> consensus process)
>
> Point 2:
> Any element with one or more dots in it is treated as an extension  
> element. The portion after the last dot is considered the localname,  
> and the the portion up to but not including the last dot is parsed  
> as the pragmatic namespace name (or pname for short).

OK, stop there.  Why not just make a clean break with namespaces and  
do extensibility with java-style dot-separated pathnames?  It's  
trivially easy to understand and offers distributed extensibility for  
free.  Trying to shoehorn it onto existing namespace-aware APIs is  
going to be awkward and may not buy much.

I'm trying to remember if anybody proposed this Back In The Day, but  
coming up empty.  -T

> Interfaces with existing namespace-aware APIs must treat the pname  
> as the namespace URI. With the exception noted below, to prevent  
> clashes pnames must be based on reversed DNS names.
>
> Example:
> <head>
>  <title>Document title</title>
>  <com.example.project>
>    <com.example.id>123521123</com.example.id>
>  </com.example.project>
> </head>
>
> In this example document.getElementsByTagName("id") would return the  
> innermost element.
> So would document.getElementsByTagNameNS("com.example", "id")
>
> Requirement: it is highly desirable to produce a document that will  
> produce the same element names in HTML or XML
>
> Point 3:
> Zero or more special attributes of the form using.<pname> may appear  
> on the root element, and ONLY on the root element. The declarations  
> have document-wide scope. The pname that appears after "using." is  
> the one being declared. The value of the attribute is a space- 
> separated list of localnames that represent boundary elements, in  
> other words, upon reaching a boundary element, a new namespace gets  
> applied to that element and all children (until encountering another  
> boundary element).
>
> Example equivalent to the previous:
> <html using.com.example="project">
> <head>
>  <project>
>    <id>123521123</id>
>  </project>
> </head>
>
> This structure will produce the same element names in an XML parser,  
> and a straightforward transformation could convert it to true XML 
> +Namespaces.
>
> Requirement: widely-known namespaces must be parse to an equivalent  
> DOM as xmlns
>
> Point 4:
> In any extension element with only one dot, the token before the  
> first dot is treated specially. Specifically, there exists a list of  
> grandfathered namespaces, and associated namespace URIs. Interfaces  
> with existing namespace-aware APIs must treat the grandfathered  
> namespace URI as the namespace URI of the extension element.
>
> Here is the list: (additional suggestions welcome)
>
> atom http://www.w3.org/2005/Atom
> docbook http://docbook.org/ns/docbook
> html http://www.w3.org/1999/xhtml
> math http://www.w3.org/1998/Math/MathML/
> svg http://www.w3.org/2000/svg
> xbl http://www.mozilla.org/xbl
> xbl2 http://www.w3.org/ns/xbl
> xforms http://www.w3.org/2002/xforms
> xlink http://www.w3.org/1999/xlink
> xml http://www.w3.org/XML/1998/namespace
>
> Example:
>
> <html using.math="math">...
> <p>
> E.g. <math><msqrt><mi>π</mi></msqrt></math>
> </p>
> ...</html>
>
> In this example document.getElementsByTagName("mi") would return the  
> innermost element.
> So would document.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML/ 
> ", "mi")
>
> Requirement: must support HTML nested inside an extension vocabulary.
>
> Point 5:
> Unless overridden, HTML documents are treated as if all localnames  
> explicitly listed in the specification are HTML boundary elements.
>
> Example:
> <html using.svg="svg">
>  <body>
>    <svg version="1.1"  viewBox="0 0 100 100"  
> preserveAspectRatio="xMidYMid slice">
>      <rect x="10" y="10" width="100" height="150" fill="gray"/>
>      <foreignObject x="10" y="10" width="100" height="150">
>        <body>
>          <div>Here is a <strong>paragraph</strong>.</div>
>        </body>
>      </foreignObject>
>    </svg>
>  </body>
> </html>
>
> Here the inner body element and its children are still treated as  
> HTML.
>
> Another example:
> <html using.xforms="model select1 range secret">
>  <head>
>    <model>...</model>
>  </head>
>  </body>
>    <xforms.input>...
>  </body>
> </html>
>
> In this case, "input" is already used as an HTML element name, so  
> uses of it--even with the using statement at the top--need to be  
> explicitly spelled out. Of course, the author could have overridden  
> this by including "input" in the using statement, but then any  
> regular HTML input controls would need to be spelled <html.input>.  
> Just like in Java.
>
> That's the entire proposal.
>
> In practice, it may be inevitable that browser makers might bake in  
> additional defaults, like
> using.math="math mi mo ms mn mtext"
> such that users can freely use chosen vocabularies with zero  
> additional markup. Support for this outcome is an additional feature  
> of this proposal.
>
> ---
>
> I will be at Balisage this year. If you have comments or ideas, look  
> me up. Comments on this list are welcome as well.
>
>
>
> _______________________________________________________________________
>
> XML-DEV is a publicly archived, unmoderated list hosted by OASIS
> to support XML implementation and development. To minimize
> spam in the archives, you must subscribe before posting.
>
> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
> Or unsubscribe: xml-dev-unsubscribe@lists.xml.org
> subscribe: xml-dev-subscribe@lists.xml.org
> List archive: http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
>



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


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

Copyright 1993-2007 XML.org. This site is hosted by OASIS