OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: using namespaces to version



At 2001-05-03 14:23, Norman Walsh wrote:
>It's probably a mistake to imagine that there is exactly one schema
>for any given namespace name.

After the decision that all three HTML DTDs (and the corresponding
schemas) share the same namespace, I think we can safely say:
it is *definitively* a mistake to imagine that there will be
exactly one schema (in the sense: one set of declarations) for
any namespace name.

When we reflect that the universe of discourse is not always
limited to a particular schema language (DTDs, XML Schema,
Relax, TREX, XDR, Sox, DDML, ...), and that in many cases, the
different schemas will capture different parts of the language
definition (what ISO 8879 calls the "document type definition"),
it is even less safe to assume a 1:1 mapping between namespace
names and sets of declarations for markup-language constructs.

Since the language denoted by a namespace name can be formalized
in different ways (transitional, strict, vanilla, chocolate, ...),
we must build systems around the premise that for any namespace
name there may be multiple schemas.

And since any schema (at least, any DTD* and any XML Schema) can
contain (via import, in the case of XML Schema) declarations for
more than one namespace, our systems must also bear in mind that
any schema may provide declarations for constructs in multiple
namespaces.

In other words, the relation of namespace to schema is many-to-many,
not one-to-one.  This turns out to be a hard pill for some to swallow,
but I think it is time to accept the logical consequences of our
designs.  (The people I know who want a one-to-one relation are,
as far as I can tell, still fighting the battles involved in the
development of the namespaces rec.  Let it go, friends! Let it go!)

-C. M. Sperberg-McQueen


   * DTDs cannot support namespaces in their full generality,
     i.e. with multiple prefixes for the same namespace, and
     scoped namespace prefixes.

     But for any document with namespaces, there exists a
     corresponding document in which the same namespace associations
     are made (i.e. in which each element and each attribute value
     specification have the same namespace / local name / host element
     information), and in which all namespaces are declared exactly
     once, on the root element.  These documents can be modeled
     by DTDs, using the namespace-prefix hack which was first
     formulated, as far as I know, independently by Henry Thompson
     and Dan Connolly.  (Consult the DTD for XML Schema documents
     for an example.)