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.
This specification outlines an XHTML Family that has been derived from XHTML Basic. It has been modified in the following ways:-
link element has been changed
so that it may now include xng:resource elements
xng:resource elements may now be used inside
link elements, and they are of content type
EMPTY
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)
The link element is to be used in the following way:-
alternativexngmeta (XML namespace gloss meta)Resource:-
simplearcrole
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 -->
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>
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 to Tim Bray, Jonathan Borden, Uche Ogbuji, and all of the XML-DEV members for their ongoing help and competition :-)
Sean B. Palmer