Home. 
.

transparent

transparent

transparent

Altova Mailing List Archives


Re: [xml-dev] Pragmatic namespaces

From: Tim Bray <Tim.Bray@---.--->
To: Micah Dubinko <micah.dubinko@---------.--->
Date: 8/4/2009 4:45:00 PM
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@l...
> subscribe: xml-dev-subscribe@l...
> List archive: http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
>


_______________________________________________________________________

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@l...
subscribe: xml-dev-subscribe@l...
List archive: http://lists.xml.org/archives/xml-dev/
List Guidelines: http://www.oasis-open.org/maillists/guidelines.php



transparent
Print
Mail
Like It
Disclaimer
.

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.

.
.

transparent

transparent