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,

[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