What is RDDL for?
I've heard three basic answers to the question of RDDL's goals: 1. To answer the "riddle" about dereferencing a namespace. (any format would be appropriate for this) 2. To give human readable documentation about a namespace. (XHTML or Docbook would also be appropriate for this) 3. To supply machine readable information about a namespace. i.e. to find a schema for a namespace, or an XSLT stylesheet for a namespace, or ... Elliotte Rusty Harold wrote: > >... > > Now that I think about it a little more, I'm not absolutely sure a > RDDL document shouldn't be used for document metadata, as opposed to > namespace metadata. It just isn't used that way now. Until and unless namespaces are used consistently, it may not be useful to have namespace metadata other than human-readable documentation. > ... The RDDL spec is > flexible enough to support that use. However, a new convention for > associating RDDL documents with documents would be needed since we > could no longer rely on just the unique RDDL document at each > namespace URI. If you use RDDL for that, then it isn't really being used for problem "1" above anymore. > >Consider an XSLT or SOAP document with embedded XHTML. You would not > >expect to validate this document by using a schema for the containing > >vocabulary and switching to a schema for the contained vocabulary > >mid-stream. That typically would not work because the container controls > >the interpretation of the contained data to such an extent that the > >schema may not fit anymore. > > I'd argue that's a problem with the schema language and or specific > schemas that were written without taking this into account, and has > little to do with RDDL. It has nothing to do with schemas or schema languages. There is no data model for namespaces other than "set of names". XSLT uses them as a way of having literal elements. WSDL uses them as a way of defining WSDL-specific extensions. In theory, XHTML could use them as a way of adding new renderable elements. In each circumstance you would combine the schemas in a different way. This wide variety of usage patterns came about because we were told that "namespaces don't mean anything, they just name things." But then XML Schema came along, and it did treat them as if they were somewhat meaningful, because each schema had a targetNamespace. That's okay, because you can combine schemas so it is primarily just a file layout issue. Now RDDL comes along and tries to make it easy to find "the" schema for a namespace. Or "the" XSLT for a namespace. But there is no "right" schema for a namespace. The right one depends on the document type (i.e. what the document means, all together) and what the recipient is trying to do with the document. So of RDDL's three goals, #3 doesn't seem practically achievable until and unless we define a data model for namespaces and define the semantics of namespace combination. If we do not do that, then HTML is probably a sufficient referent. > > Or maybe there is a schema that is > >appropriate for validation in an XSLT or SOAP context -- but how would > >you find it in a RDDL document? > > > > Easy: > > <rddl:resource xlink:href="http://www.example.com/myappinsopa.xsd" > xlink:role="http://www.w3.org/2001/XMLSchema" > xlink:arcrole="http://www.exxample.com/purposes/soap-schema-validation" > /> So now if I want to combine SOAP and MyApp I have to define a new arcrole? Should there be a new arcrole for every combination of namespaces? SVG in XSLT in SOAP and so forth? If so, we're starting to get back to the the concept of a document type. Why put this information at the referent of a namespace instead of at something referred to through a document type processing instruction? >... > Please don't blame RDDL for the fragility of existing schema > languages. RDDL can list all the schemas, and it can say which ones > are used for what, but it can't make them cooperate if the schema > designers don't want them to. It isn't that the designers don't want to. It's that, in general, it *just doesn't work*. Looking up schema fragments (or XSLT fragments, or CSS fragments) and combining them typically does not work, because namespaces are used inconsistently. Namespaces are used inconsistently because they are "just names". There is no definition of what they mean alone and even less what it means to combine them. So RDDL really solves two of the three problems -- the same two that HTML does. Paul Prescod
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