Shocking News: Namespaces and Non-Validation
Peter Jones
peterj at wrox.com
Wed Sep 9 15:56:27 BST 1998
Here's how I see it (but I'm no expert).
Namespaces and DTDs do get along, but only if the declarations of
element types in the DTD contain qualified names (prefix:elementname)
that match the names of namespaced elements in the doc entity.
e.g. (and I'm not sure of the syntax here...)
<!ELEMENT qual:name (content | model | #PCDATA) >
<qual:name> blah blah </qual:name>
But if you use two versions of qual:name in the doc then, even if you
define the namespace prefix to refer to a different URI in each case,
the process of validation will force both versions of qual:name to
conform to the same content model.
So basically, avoid duplicate prefixes for validation.
[For consideration of XML-DEV
I don't see why the URI for the namespace prefix could not refer to the
address of the DTD for the element concerned, for validation.]
> -----Original Message-----
> From: Mark Tucker [SMTP:mct at foyt.indyrad.iupui.edu]
> Sent: Wednesday, September 09, 1998 2:13 PM
> To: xml-dev at ic.ac.uk
> Subject: Shocking News: Namespaces and Non-Validation
>
>
> I was shocked to hear that namespaces invalidate validation.
>
> The problem seems to be that DTD validation does not expand
> prefixes, nor does it apply namespace defaulting.
>
> Can you all set me straight?
>
>
>
> (Apologies in advance to two knowledgable people who gave me advice on
> this subject in private. They unfortunately disagreed with each
> other, and now I am at a loss.
>
> I hope you'll tell me that namespaces (esp. namespace defaulting) can
> live peacefully with DTD validation.
> )
>
> The problem arises if a document uses <DATE>, with two different
> content models. Suppose that in the "alpha" namespace, DATE contains
> DAY and MONTH, while in the "beta" namespace, DATE has an attribute v.
> Without namespaces, <DATE> would be ambiguous. It would need to
> satisfy two different content models.
>
> ====================: Validation works with consistent PREFIXES
>
> With prefixes, you could say (with appropriate definitions of the
> ALPHA
> and BETA prefixes)
>
> <TOP>
> <SITE1>
> <ALPHA:DATE> -- This
> <DAY>10</DAY>
> <MONTH>Sept</MONTH>
> </ALPHA:DATE>
> </SITE1>
> <ELT2>
> <BETA:DATE v="tuesday"/>
> </ELT2>
> </TOP>
>
> The above would be valid, if only because a DTD processor could just
> ignore the namespace, and treat the element name's as ALPHA:DATE and
> BETA:DATE.
>
> ================: Validation fails with locally chosen prefixes
> Now, suppose the DTD defines
>
> xmlns:KAPPA="uri:alpha"
> <!ELEMENT KAPPA:DATE (KAPPA:DAY KAPPA:MONTH) >
> ...
>
> and the document that uses the "uri:alpha" dtd uses the prefix ALPHA
>
> In this case the document would mention
>
> <ALPHA:DATE>
>
> MY QUESTION: Would a DTD processor figure out that KAPPA:DATE
> and ALPHA:DATE are the same element, (since the expansions of KAPPA
> and ALPHA are the same?
>
> ================: Validation dies when namespace defaults are used
>
> And finally, DTD's seem to die completely if a document uses
> namespace defaulting. The DTD validator will not even attempt
> to think that the first <DATE> refers to "uri:alpha"+DATE.
>
>
> But with namespace defaulting
> <TOP>
> <SITE1 xmlns="uri:alpha">
> <DATE> -- This is just DATE
> <DAY>10</DAY>
> <MONTH>Sept</MONTH>
> </DATE>
> </SITE1>
> <ELT2 xmlns="uri:beta">
> <DATE v="tuesday"/> -- This is also just DATE
> </ELT2>
> </TOP>
>
> a DTD processor would not figure out that
> <DATE v="tuesday"/> should be from the "beta" DTD,
> and
> <DATE> -- This
> <DAY>10</DAY>
> <MONTH>Sept</MONTH>
> </DATE>
> should be checked against the "alpha" DTD.
>
>
> MY QUESTION: Is there any hope that namespaces and DTD's
> can get along?
>
> xml-dev: A list for W3C XML Developers. To post,
> mailto:xml-dev at ic.ac.uk
> Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
> To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
> (un)subscribe xml-dev
> To subscribe to the digests, mailto:majordomo at ic.ac.uk the following
> message;
> subscribe xml-dev-digest
> List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)
xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)
More information about the Xml-dev
mailing list