XML Namespace Catalog Format

This version: January 2, 2001

Latest Version: January 1, 2001

Previous Version: January 1, 2000

Editor: Jonathan Borden

Note: you are looking at the actual XML  Namespace Catalog for the "http://www.openhealth.org/XMLCatalog/" namespace.

Introduction

This proposal defines a format for an XML Namespace Catalog. An XML Namespace Catalog serves as a text description of an XML Namespace [1] and includes links to resources associated with the namespace such as schemata, stylesheets and/or other resources associated with the namespace URI. An XML Catalog may also map Formal Public Identifiers into System Identifiers defined as URI references [2]. An XML Namespace Catalog 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 XML Namespace Catalog format is an extension of XHTML with a new element named "resource". The resource element serves as an XLink to the referenced resource.

This document defines the syntax and semantics of the XML Namespace Catalog Format, and also serves as an XML Catalog for the namespace http://www.openhealth.org/XMLCatalog/.

The XML Namespace Catalog 1.0 DTD has been produced as an extension of XHTML Basic 1.0 [5].

resource

The resource element is qualified with the namespace URI http://www.openhealth.org/XMLCatalog/

The resource element represents an XLink with two additional attributes public and content-type which provide for optional formal public identifiers and/or content type specifiers.

<!ELEMENT resource
<!ATTLIST resource
  %Common.attrib;
  xmlns		CDATA #FIXED 'http://www.openhealth.org/XMLCatalog/'
  xlink:type	(simple)	#FIXED "simple"
  xlink:role	CDATA		#IMPLIED
  xlink:arcrole CDATA		#IMPLIED
  xlink:title	CDATA		#IMPLIED
  xlink:href	CDATA		#REQUIRED
  public	CDATA		#IMPLIED	-- public identifier
  content-type	CDATA		#IMPLIED
  >

xlink:arcrole

A URI.

The xlink:arcrole defines the type of the link. [6]

The xlink:arcrole may a schema defining the referenced document, e.g. xhtml, XSD, RDF Schema. In this case such schemata are named by a URI. The URI should be well known. For example:

  • XHTML may be referenced by http://www.w3.org/1999/xhtml
  • XSD may be referenced by http://www.w3.org/2000/10/XMLSchema
  • RDF Schema may be referenced by http://www.w3.org/2000/01/rdf-schema

xlink:role

A URI.

The xlink:role of the link can be used to distinguish among related schemata such as for strict, transitional and frameset. The xlink:role of a link should be thought of as the type of the resource referenced by the link.

A further discussion about the relationships between these attributes and resource types is available in the W3C Note XLink2RDF [6].

Ed. need to further discuss uses of and compare xmlink:arcrole and xlink:role

xlink:href

The xlink:href contains a mandatory URI referencing the target resource

content-type

An optional attribute defining the media content type

public

An optional attribute defining a formal public identifier

The resource element may be placed within the html head or may be placed in the html body. The %Flow.mix entity has been redefined to contain "resource" so it rougly may be placed anywhere a "p" tag may be placed.

Resources within the header

This example demonstrates resource within the header:

<html 
		xmlns="http://www.w3.org/1999/xhtml"
		xmlns:xlink="http://www.w3.org/1999/xlink">
   <head>
  	<resource 
	   xlink:type="simple"
	   xlink:arcrole="http://www.w3.org/TR/REC-xml#dt-doctype"
	   xlink:role="http://www.w3.org/TR/xhtml-basic/"
	   xlink:href="http://www.openhealth.org/XMLCatalog/xcat-xhtml.dtd" 
	   public="-//XML Catalog//DTD XML Namespace Catalog 1.0//EN"
	   content-type="text/xml-dtd"
	   />
	<resource
		xlink:type="simple"
		xlink:title="XHTML1 Strict DTD"
		xlink:role="http://www.w3.org/tr/xhtml1/DTD/xhtml1-strict.dtd"
		xlink:arcrole="http://www.w3.org/TR/REC-xml#dt-doctype"
		xlink:href="xcat-xhtml1-strict.dtd" 
		public="-//XML Catalog//DTD XHTML Strict 1.0//EN"
		content-type="text/xml-dtd"
		/>
 	<resource 
	   	xlink:type="simple"
		xlink:title="XHTML1 Transitional DTD"
		xlink:role="http://www.w3.org/tr/xhtml1/DTD/xhtml1-transitional.dtd"
		xlink:arcrole="http://www.w3.org/TR/REC-xml#dt-doctype"
		xlink:href="xcat-xhtml1-transitional.dtd" 
		public="-//XML Catalog//DTD XHTML Transitional 1.0//EN"
		content-type="text/xml-dtd"
	  	/>
	<resource 
		xlink:type="simple"
		xlink:title="XHTML1 Frameset DTD"
		xlink:role="http://www.w3.org/tr/xhtml1/DTD/xhtml1-frameset.dtd"
		xlink:arcrole="http://www.w3.org/TR/REC-xml#dt-doctype"
		xlink:href="xcat-xhtml1-frameset.dtd" 
		public="-//XML Catalog//DTD XHTML Frameset 1.0//EN"
		content-type="text/xml-dtd"
	   	/>
	 <resource 
	   xlink:type="simple"
	   xlink:title="XML Schema"
	   xlink:arcrole="http://www.w3.org/2000/10/XMLSchema"
	   xlink:href="http://www.openhealth.org/XMLCatalog/xcat-xhtml1.xsd" 
	   public="-//XML Catalog//XSD XHTML 1.0//EN"
	   content-type="application/xml"
	   />
	 <resource 
	   xlink:type="simple"
	   xlink:title="OASIS Catalog"
	   xlink:arcrole="http://www.oasis-open.org/html/a401.htm"
	   xlink:href="xcat-xhtml.soc" 
	   public="-//XML Catalog//SOC XCAT XHTML 1.0//EN"
	   content-type="application/SGML-Open-Catalog"
	   />
 </head>
 <body>...description goes here ...</body>
</html>

Resources within the body

In another example resources can be placed within the body, allowing intermingling of text descriptions and resource links.

<html>
	<head></head>
	<body>
	 <resource 
	   xlink:type="simple"
	   xlink:title="XML Schema"
	   xlink:arcrole="http://www.w3.org/2000/10/XMLSchema"
	   xlink:href="http://www.openhealth.org/XMLCatalog/xcat-xhtml1.xsd" 
	   public="-//XML Catalog//XSD XHTML 1.0//EN"
	   content-type="application/xml"
	   > <p>Here is the description of the XSD Schema being described 
	   within a <a class="element" href="#resource">resource</a> tag.</p>
	 </resource>
	</body>
 </html>

Here is the description of the XSD Schema being described within a resource tag.

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