- From: <noah_mendelsohn@us.ibm.com>
- Date: Fri, 7 Aug 2009 11:11:39 -0400
- To: Larry Masinter <masinter@adobe.com>
- Cc: "www-tag@w3.org" <www-tag@w3.org>
Larry Masinter writes: > It is pretty clear to me given the fairly broad definition of “version” > as it applies to language-as-used, language-as-specified that multiple > ‘versions’ of an XML-based language might share the same namespace, > and that therefore the “namespace” alone could not serve as the > sole indicator of version. On the other hand, two languages which > use different namespaces are different languages, clearly. I agree with your conclusion, but even this formulation tends, if indirectly, to promote the myth that "the namespace" can be identified, at least for a given version of a language. It's not just that "multiple versions...might share a namespace"; even a single "version" of a language might be built of markup from many namespaces, and that markup in turn might be used in other nearly unrelated languages. Example: some business develops markup conventions to cover the sorts of things that they set down in XML documents. These are organized into namespaces according to their nature. There's a namespace for markup about the widgets they manufacture, a namespace for information about employees, another for customers, and another for physical plant like buildings. There are also some namespaces with tags like <orders:invoice> <shipping:label>, that sometimes service as the root of a document, and sometimes are used as children in larger documents (<shipping:label> can stand on its own, or be a child in <orders:purchaseOrder>. For any one document type, there will be a root element, and if we believe in the TAG's (incomplete) work on XML Functions [1] (ISSUE-34 [2]), the documentation for that root element will determine the meaning in context, and thus the "versioning rules" of the subelements it uses, regardless of namespace. Of course, it would in many cases (though not all, IMO) be a good thing if the documentation for a root element <orders:purchaseOrder> delegated to the documentation for its children <shipping:label> as to how that subelement may change with versioning. So in this example, the <billing:purchaseOrder> documentation could say "A <shipping:label> element specifies the label to be printed for shipping the order; future versions of <shipping:label> are supported insofar as these are properly documented in (future versions of) the specification for <shipping:label>". Or, the documentation for <billing:purchaseOrder> could say: "A <shipping:label> element specifies the label to be printed for shipping the order, and the contents are to be interpreted per the 1 January 1999 version of the specification for <shipping:label>; later versions of that specification are not allowed by this version of the <billing:purchaseOrder> specification." In short, I want to try and convince everyone that namespaces are pretty much orthogonal to the whole versioning discussion. What matters in XML are tag names and their (potentially evolving) specifications. For documents, versions and namespaces, it's pretty much mix-n-match in the general case. So, I think we should be careful about referring to "the namespace", even for a particular version. Noah [1] http://www.w3.org/2001/tag/doc/elabInfoset-20071127/elabInfoset.html [2] http://www.w3.org/2001/tag/group/track/issues/34 -------------------------------------- Noah Mendelsohn IBM Corporation One Rogers Street Cambridge, MA 02142 1-617-693-4036 -------------------------------------- Larry Masinter <masinter@adobe.com> Sent by: www-tag-request@w3.org 08/05/2009 05:00 PM To: "www-tag@w3.org" <www-tag@w3.org> cc: (bcc: Noah Mendelsohn/Cambridge/IBM) Subject: namespaces vs. language versions I think I still had an action item on the HTML working group to insure that the versioning document touched on the relationship of namespaces to language versions. It is pretty clear to me given the fairly broad definition of “version” as it applies to language-as-used, language-as-specified that multiple ‘versions’ of an XML-based language might share the same namespace, and that therefore the “namespace” alone could not serve as the sole indicator of version. On the other hand, two languages which use different namespaces are different languages, clearly. I’m not sure if there is general advice about when new namespaces SHOULD be used when defining a new language version/variant, except to point out that changing namespaces can have bad backward compatibility issues. Larry -- http://larry.masinter.net
Received on Friday, 7 August 2009 15:12:28 UTC