Re: AND (Another Namespace Dilemma) ... DTD Validation
[<mrossi@c...>] > OK, I've been watching Namespaces threads looking for this answer, but no > one seems to have yet hit the head of this particular nail. So ... if > Namespace prefixes are irrelevant, how do I write a (namespace-aware) DTD > to validate a document instance? Take the following for example: > > <furn:Table xmlns:furn="urn:org-furniture-household"> > <furn:Parts> > <html:TABLE xmlns:html="http://www.w3.org/1999/xhtml"> > ... other table entries for top, legs, etc. ... > </html:TABLE> > </furn:Parts> > </furn:Table> > > Now I can write a DTD for all the "furn" elements with or without the > "furn:" prefix (although it's a pain), using something like: > > <!ELEMENT (Table | furn:Table) (Parts | furn:Parts)> etc., etc. > (hmmm, can I still do that with XML? Well, another topic) > > But if I don't know what prefix is going to be used there's no hope of > validating an instance. Am I missing something? > That's basically so for a DTD, but not for an XML-schema. On the other hand, using a DTD could still work if you are willing to preprocess the data to fix up the prefix, or to adjust the value of a parameter entity that the DTD would use for the prefix. There are some rather complicated schemes for using parameter entities to make the DTD work as desired, but if your prefix can change I don't see how to avoid the preprocessing step to learn what actual prefix is being used. > I also don't see right off how W3C XML Schemas (can't we just call this > XSD?) will help, but I'm more hopeful of built-in support there. HELP! > Unlike a dtd processsor, an XML-Schema processor understands that the prefix is an alias for a namespace, and as long as the namespace itself is correct will be happy if you change the prefix (AFAIK). XML-Schema will not understand if you change that prefix in the middle of a document, though. Also, there might be all kinds of complicated subtleties about the prefixes depending on just what you try to do. But if you want to do normal uncomplicated things in the schema, it should work all right. Tom P
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