[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: using namespaces to version
- From: "C. M. Sperberg-McQueen" <cmsmcq@acm.org>
- To: Norman Walsh <ndw@nwalsh.com>
- Date: Fri, 04 May 2001 08:43:01 -0600
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.)