- From: Norman Walsh <ndw@nwalsh.com>
- Date: Thu, 12 Jul 2007 14:07:08 -0400
- To: www-tag@w3.org
- Message-ID: <87ejjdbinn.fsf@nwalsh.com>
On 12 Dec 2006[1] I accepted an action to draft some text about NVDL for consideration in the TAGs ongoing versioning discussions. Here is my first attempt at such text: The problems associated with validating an evolving XML language are very similar to the problems associated more generally with validating a collection of different XML languages. In fact, if you consider the familiar name example, the problems associated with those cases where the extensions are placed in a new namespace are precisely the same sa the problems associated with validating a collection of different XML languages. The various name elements are different languages in those cases. Many attempts to build a validation framework for multiple languages or multiple versions of the same language seem to begin with the implicit assumption that there must be a schema, a single schema, which can perform the appropriate validation. As we have seen, various strategies can be employed to build an über-schema that incorporates all the different versions. Sometimes the result is a new, combined schema (e.g., XHTML Modularization). Sometimes the result is a schema with various flavors of "wild cards" where extensions can occur. Sometimes the result is a suite of related schemas with appropriate wild cards. The Namespace-based Validation Dispatching Language (NVDL) takes a completely different approach. Rather than attempting to build a single schema, or even a suite of related schemas, for validating a document that consists of multiple namespaces, it defines a mechanism by which an author can determine how validation is performed by a set of (possibly unrelated) schemas. The NVDL script gives authors the ability to express whether or not they care where the extensions may occur, whether the separate sections are to be validated in the context where they appear or as if they were standing alone, and how transitions between these various modes are determined. For example, if you had a schema for V1 of your language and another schema for V2, you could use NVDL to allow arbitrary mixing of the versions or you could control where the mixtures occur. The critical difference is that the schemas themselves don't have to be designed with particular extension points. And consequently, the schema authors don't have to be aware of any particular extensibility requirements. NVDL is designed for namespace-based dispatching so it follows that it's a solution that can only be considered when different versions appear in different namespaces. Be seeing you, norm [1] http://www.w3.org/2001/tag/2006/12/12-tagmem-minutes#action01 -- Norman Walsh <ndw@nwalsh.com> | A philosophical contempt of life is no http://nwalsh.com/ | guarantee of courage in the face of | death.--Gustave Vapereau
Received on Thursday, 12 July 2007 18:07:21 UTC