Resource Directory Description Language (RDDL)

This version: January 7, 2001

Latest Version

Previous Version: January 3, 2001

Editors:

Introduction

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 a new element named resource. This element serves as an XLink to the referenced resource.

This document defines the syntax and semantics of the Resource Directory Description Language, and also serves as a Resource Directory Description for the namespace http://www.rddl.org/.

The Resource Directory Description 1.0 DTD is an extension of XHTML Basic 1.0 [5], according to Modularization for XHTML.

Background

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.

The background behind and initial history of RDDL has been described on the XML Coverpages and xmlhack. Many people have contributed to RDDL.

The rddl:resource Element

The resource element is in a namespace whose name is http://www.rddl.org/. In this discussion, we assume the use of the namespace prefix rddl for this name, and refer to this element as rddl:resource.

The rddl:resource element represents a simple xlink, using the attributes defined in the XLink namespace.

The 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.

The 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		#REQUIRED
  xlink:href	CDATA		#IMPLIED
  xlink:role	CDATA		#FIXED 'http://www.rddl.org/#resource'
  xlink:title	CDATA		#IMPLIED
  xlink:embed	CDATA		#FIXED "none"
  xlink:actuate	CDATA		#FIXED "none"
  >

The definition above has been edited for clarity.

Attributes

xlink:arcrole

The value of this attribute must be supplied and must a URI reference. It provides a machine-readable identifier for the type of the related resource. Software perfoming resource resolution may dispatch on the this value.

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 can be used as the value of the xlink:arcrole attribute.

It is anticipated that many related-resource types will be well known. A list of well-known resource types may be found at http://www.rddl.org/arcrole.htm (which itself is an RDDL directory).

The well known names defined in arcrole.htm are specifications which they name.

Arcroles.htm contains a mapping of the well known URI to the namespace of the root element of a document conforming to the particular specification.

xlink:role

The value of this attribute must be a URI reference. In this version of RDDL the only legal value is http://www.rddl.org/#resource. This URI reference corresponds to the qualified name rddl:resource.

xlink:href

This XLink locator attribute's value is a URI reference to the target related resource

xlink:title

A human readable short descriptive title. This should be specified but not be seen as a replacement for descriptive content.

xlink:show and xlink:actuate

Not used. The only legal value is "none".

Related Resources for RDDL

CSS Stylesheet

A CSS stylesheet used to provide the "look-and-feel" of this document, suitable in general for RDDL documents.

DTD

A DTD for RDDL, defined as an extension of XHTML Basic 1.0 using Modularization for XHTML

RDF Schema

An RDF Schema for RDDL.

OASIS Open Catalog

The OASIS Open Catalog Format catalog for RDDL. This catalog defines PUBLIC and SYSTEM identifiers related to the DTD.

ZIP

The RDDL spec, DTDs and other contents of the directory, zipped for download.

Java API

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.

JAR

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"
                        ); // a namespace URI, the root namespace
	InputStream is = rurl.getInputStream(); // and you get the XSD
	...

The content-type of a JAR archive is application/java-archive

XSLT API

An example of an XSLT for RDDL, which accepts a param "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.

References

  1. W3C XML Names
  2. IETF RFC 2396
  3. W3C XHTML 1.0
  4. W3C XLink
  5. W3C XHTML Basic 1.0
  6. W3C Note Harvesting RDF Statements from XLinks