This version: January 14, 2001
Previous Version: January 7, 2001
This document defines Resource Directory Description Language (RDDL). A Resource Directory provides a text description of some class of resources and of other resources related to that class. It also contains a directory of links to these related resources. An example of a class of resources is that defined by an XML Namespace. Examples of such related resources include schemas, stylesheets, and executable code. A Resource Directory Description is designed to be suitable for service as the body of a resource returned by deferencing a URI serving as an XML Namespace name.
The Resource Directory Description Language is an extension of XHTML Basic
1.0 with an added element named
This element serves as an XLink to the referenced resource.
The Resource Directory Description 1.0 DTD has been defined according to
Modularization for XHTML.
This document defines the syntax and semantics of the Resource Directory Description Language,
and also serves as a Resource Directory Description for the namespace
The Resource Directory Description Language was initially proposed and specified after discussion on the XML-DEV mailing list.
This document has no official standing and has not been considered nor approved by any organization.
Each resource description contains a prose description of the resource and machine readable links which describe
the purpose of the link and the nature of the resource being linked to.
The prose description is the content of the
resource element. The machine readable link is a simple xlink.
The nature of the resource being linked to is indicated by the
xlink:role attribute and the purpose of the link is indicated by the
Referenced resources are often primarily described by their nature.
xlink:role attribute describes the nature or type of the referenced resource.
The nature of the linked resource often but not always determines how the resource is to be used.
For example, an XML Schema linked to a namespace URI would be given an
In some cases where there is only one of a particular type of resource,
the purpose of the linked resource may be inferred from its
For example when there is only one schema type resource associated with a namespace URI and when the type of this resource is an XML Schema,
processing software might infer that the purpose of the schema is to validate elements qualified by the namespace.
xlink:arcrole attribute describes the purpose of the link.
When there are several different types of schemata referenced in a RDDL document or several different resources of the same type of schema,
the purpose of each resource should be explicitly declared. For example the purpose of one XML Schema resource might be schema validation while the purpose
of other XML Schema resources might be either for editing or as included modules.
Similarly the purpose of one DTD resource might be to define entities while the purpose of another might be for validation.
Multiple referenced XSLT transforms might each have various purposes.
Multiple resources of the same nature and purpose may be included in a RDDL document. An example of when this is desirable is when several included modules of a particular schema format or software language are referenced. In this case, software will need to distinguish among these resources by other factors such as the href of the link or the language of the linked resource
resource element is in a namespace whose name
In this discussion, we assume the use of the namespace prefix
rddl for this name, and refer to this element as
rddl:resource element represents a simple xlink, using the
attributes defined in the XLink namespace.
rddl:resource element is placed within the html
body. The XHTML %Flow.mix entity has been
redefined to contain
rddl:resource so it roughly may be placed anywhere a
p tag may be placed.
rddl:resource element itself uses the %Flow.mix content model, and should have content
which describes the associated resource.
<!ELEMENT rddl:resource (#PCDATA | %Flow.mix;)*> <!ATTLIST rddl:resource id ID #IMPLIED xml:lang NMTOKEN #IMPLIED xmlns:rddl CDATA #FIXED 'http://www.rddl.org/' xlink:type (simple|extended|arc|locator|resource) #FIXED "simple" xlink:arcrole CDATA #IMPLIED xlink:role CDATA "http://www.rddl.org/#resource" xlink:href CDATA #IMPLIED xlink:title CDATA #IMPLIED xlink:embed CDATA #FIXED "none" xlink:actuate CDATA #FIXED "none" >
The definition above has been edited for clarity.
The value of this attribute must be a URI reference. A URI reference may contain a URI part and a fragment identifier. Per XLink, when present the URI part must be an absolute URI. It provides a machine-readable identifier for the nature or type of the related resource. Software perfoming resource resolution may dispatch on the this value.
The value of the
xlink:role attribute indicates the nature of the related resource.
When the related resource is an XML namespace compliant document and when the resource can be
distinguished by the namespace of the root element, this namespace URI should generally be
the value of the
xlink:role attribute. In these cases the
nature of the document
is defined as the
type of the root element.
When the related resource is not an XML document but is adequately distinguished by a MIME type, the value of the
xlink:role attribute may reflect this MIME type with values formed by the concatenation of the prefix
http://www.isi.edu/in-notes/iana/assignments/media-types/ with a MIME type e.g.
It is anticipated that many related-resource types will be well known and the RDDL document http://www.rddl.org/roles.htm contains descriptions of well known xlink:roles.
The value defaults to
http://www.rddl.org/#resource. This URI reference corresponds to the qualified name
The value of this attribute must be a URI reference. A URI reference may contain a URI part and a fragment identifier. Per XLink, when present the URI part must be an absolute URI. It provides a machine-readable identifier for the purpose of the link to the related resource. Software perfoming resource resolution may dispatch on the this value.
In some cases the purpose of the document can only be partially determined by the type of the root element.
For example a RDDL document has a root element
html qualified by the XHTML namespace. The nature of a RDDL
document is that it is an XHTML document though its purpose is to serve as a directory of resources. In this situation
the root element type does not completely specify the nature nor adequately specify the purpose of the document.
The presence of both
xlink:arcole attributes for a single resource link provides flexibility in such situations.
It is anticipated that the purpose of many links to related resources will be well known. A list of well-known link purposes may be found at http://www.rddl.org/arcrole.htm (which itself is an RDDL directory).
This XLink locator attribute's value is a URI reference to the target related resource
xml:lang attribute value may be used to qualify the resource by language code.
id attribute value may be used to give the resource description a name.
A CSS stylesheet used to provide the "look-and-feel" of this document, suitable in general for RDDL documents.
A DTD for RDDL, defined as an extension of XHTML Basic 1.0 using Modularization for XHTML
An RDF Schema for RDDL.
A RELAX Schema for RDDL
The OASIS Open Catalog Format catalog for RDDL. This catalog defines PUBLIC and SYSTEM identifiers related to the DTD.
The RDDL spec, DTDs and other contents of the directory, zipped for download.
An example of a Java API for RDDL, code to implement it based on SAX is here here. This code is shown as an example and is not-normative to the specification.
The above code packaged as a java archive.
An example of how it might be used in the case where an XML Schema for the namespace is desired:
RDDLURL rurl = new RDDLURL( "http://www.rddl.org/", "http://www.w3.org/2000/10/XMLSchema", "http://www.rddl.org/arcrole.htm#schema", ); // a namespace URI, the root namespace InputStream is = rurl.getInputStream(); // and you get the XSD ...
content-type of a JAR archive is
An example of an XSLT for RDDL, which accepts the params
arcrole. The transform inserts the document
referenced by xlink:href in the output. This code is shown as an example
and is not-normative to the specification.