Re: Update on namespaces

(This post is about whether notations are types, and whether notations are namespaces.
Also, the WebSGML TC SEEALSO parameter is discussed.)

Andrew Layman writes:
 
> Notations suffer from a few problems from our point of view, and that is
> that they apply only to external entities, and types useful for routine
> data processing as types such as INTEGER or DATE are not standardized.
> The concepts are very similar, and maybe we can extend the idea of
> notation to cover element contents.
 
Let me repeat my mantra, as is my compulsion: I think many of the less-used parts
of SGML are merely inadequately powerful or underdefined, not wrongheaded.  

One of notation's problem is that there is no ability to cascade notations: eg we could
enhance SGML to allow:

<!notation SGML system>
<!notation MINIMUM-LITERAL   system  uses SGML>
<!notation DATE   public "ISO ???"   uses MINIMUM-LITERAL>
<!notation DATE-THIS-CENTURY  "http://www.libary.xx/date-definitions.htm#this-cent"
	uses DATE>
<!element date (#pcdata)>
<!attlist date
	XML-NOTATION notation #fixed "DATE-THIS-CENTURY">

Nor is there a way to construct notations from notations:

<!notation SGML public "ISO/IEC 8879:1986 (WWW+ENR)">
<!notation XML-LANG public "IDN//W3.ORG//NOTATION XML-lang 1.0//EN" 
	uses SGML>
<!notation DSSSL public "ISO/IEC 10179...">
<!notation XS public "IDN//W3.ORG//NOTATION XML-style 1.0//EN" 
	uses DSSSL>
<!notation XML system uses  XML-LANG XML-STYLE>


The above illustrate a syntax for backward-chaining notations.  A forward variant on
this can be found in the WebSGML TC, in the "additional requirements"
parameter that is being proposed for the SGML declaration.  This is lets you
(after the keyword SEEALSO) list a series of public identifiers to external
notations (plain language documents) identifying additional requirements on the
document, in addition to the SGML requirements (and perhaps constraining the
syntax).  

The example proposed (Annex L) is a small document giving XML-lang v.1.0
additional requirements. Not only does this make XML-lang an (informative)
part of ISO 8879, it also allows SGML documents to add notations to note
that the maximum number of columns in a table shouldn't violate the number
in the relevant attribute, or to define that XML-LINK is an architectural form
with a particular meaning.

What we see in XML is that things have at least a chain of notations, and for
any given processor, there are different parts that must be valid and parts that
do not need to be validated.  The SEEALSO parameter leaves it up to implementors
to decide what level of validation is required: it just makes sure the information
is present in the SGML declaration to inform software or humans about the non-SGML
conventions present in the document.

Where this is leading, therefore is that I think XML should allow NOTATIONS attributes
on elements (with architectural form XML-NOTATIONS or XML-TYPE), and NOTATION 
declarations, and that NOTATION declarations should have something that allows them 
to chain (e.g. "USES"). 

Furthermore, it should allow (with the appropriate changes to ISO 8879) a SEEALSO 
parameter on the DOCTYPE declaration, to declare notations that together convert the
element set declarations into a DTD (document type definition). E.g:

<!DOCTYPE record SYSTEM "x.xml"
	SEEALSO 	"IDN//W3C.ORG//NOTATION XML 1.0"
			"IDN//W3C.ORG//NOTATION PICS"
			"IDN//W3C.ORG//NOTATION DIGS"
[...]>

I can't see that this has much to do with namespaces, except that there is the chance that
two DTD fragments might have notation declarations with the same name and need 
disambiguating.

Rick Jelliffe

Received on Wednesday, 11 June 1997 07:42:33 UTC