[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] 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@i... Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ To (un)subscribe, mailto:majordomo@i... the following message; (un)subscribe xml-dev To subscribe to the digests, mailto:majordomo@i... the following message; subscribe xml-dev-digest List coordinator, Henry Rzepa (mailto:rzepa@i...)
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|