XNGloss 1.0

XML Namespace Gloss - v1.0

XNGloss is a language intended to be used as a de facto dereferencable resource for namespaces, as per the recent discussions on XML-DEV, and the proposal by Tim Bray.

Author:
Sean B. Palmer, infomesh.net, sean@mysterylights.com
For:
XML-DEV
Date:
2nd January 2001

Details

This specification outlines an XHTML Family that has been derived from XHTML Basic. It has been modified in the following ways:-

The prologue of the file is as follows:-

 <!DOCTYPE html PUBLIC "-//Infomesh.net//DTD XHTML XNG 1.0 //EN" 
  "http://infomesh.net/2001/01/xngloss/dtd/">

 <html xmlns="http://www.w3.org/1999/xhtml"
       xmlns:xlink="http://www.w3.org/1999/xlink" 
       xmlns:xng="http://infomesh.net/2001/01/xngloss/ns/" xml:lang="en" >

To validate, the file must meet the constraints expressed at http://infomesh.net/2001/01/xngloss/dtd/ (@@ to do; not authored yet)

LINK

The link element is to be used in the following way:-

@rel
Must be set to alternative
@xncl:type
Must be set to xngmeta (XML namespace gloss meta)
@type
Must be set to the MIME type of the linked schema
@href
A link to the primary defining schema

RESOURCE

Resource:-

@xlink:type
Set to simple
@xlink:href
Contains the URI for the Schema being referenced with regards to the particular arcrole
@xlink:arcrole
This references the normative URI definition for the Schema
@xlink:title
This should be a prose title for the XLINK

Multiple resources's are allowed because of family Schemas, for example, a link to further XHTML may have three types of DTD: Strict, Transitional, Frameset.

<!-- XHTML Modularization XNG Module 1.0  ............................ -->
<!-- file: xng.mod

     This is a simple XNG module for XHTML Modularizaion, 
     adding simple XNG capabilities to any DTD that references it.

     Sean B. Palmer, Infomesh.net, sean@mysterylights.com
     ................................................................. -->

<!-- Bring in the QName file for xng, giving the xng: 
     prefix for the namespace -->
<!ENTITY % xng-qname.mod 
  SYSTEM "xng-qname.mod">
%xng-qname.mod;

<!-- Bring in the QName file for xlink, giving the xlink: 
     prefix for the namespace -->
<!ENTITY % xlink-qname.mod 
  SYSTEM "xlink-qname.mod">
%xlink-qname.mod;

<!ENTITY % link.content  "( %xng.resource.qname; )*" >
<!ELEMENT %link.qname;  %link.content; >
<!ATTLIST %link.qname;
  %xng.type.qname;       (xngmeta)    #FIXED "xngmeta"
>

<!ENTITY % xng.resource.qname  "%xng.pfx;resource" >
<!ENTITY % xng.resource.content  "EMPTY" >
<!ELEMENT %xng.resource.qname  %xng.resource.content; >
<!ATTLIST %xng.resource.qname;
  %xlink.type.qname;     (simple)     #FIXED "simple"
  %xlink.arcrole.qname;  CDATA        #IMPLIED
  %xlink.href.qname;     CDATA        #REQUIRED
  %xlink.title.qname;    CDATA        #IMPLIED
>
<!--   %xlink.role.qname;     CDATA        #IMPLIED -->
<!-- End of XHTML Modularization XNG Module 1.0 -->

Example

Here is an example of XNGloss:

<!DOCTYPE html PUBLIC "-//Infomesh.net//DTD XHTML XNG 1.0 //EN" 
 "http://infomesh.net/2001/01/xngloss/dtd/">

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:xlink="http://www.w3.org/1999/xlink" 
      xmlns:xng="http://infomesh.net/2001/01/xngloss/ns/" xml:lang="en" >
 <head>
  <link rel="alternate" xng:type="xngmeta" type="application/rdf" href="myschema.rdf">
   <xng:resource xlink:type="simple" 
        xlink:href="myschema.rdf"
        xlink:arcrole="http://www.w3.org/2000/01/RDF-Schema"
        xlink:title="RDF Schema" />
  </link>
 </head>
[...]
</head>

Prose

In the prose description for the Schemas, you should use XPath to refer to the link elements, and hypertext to link to the Schemas.

Thanks

Thanks to Tim Bray, Jonathan Borden, Uche Ogbuji, and all of the XML-DEV members for their ongoing help and competition :-)

Sean B. Palmer