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