Lists Home |
Date Index |
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?
> <rddl:resource xlink:href="http://www.example.com/myappinsopa.xsd"
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