- From: W. Eliot Kimber <eliot@isogen.com>
- Date: Mon, 13 Jan 1997 17:25:18 -0900
- To: w3c-sgml-wg@www10.w3.org
At 12:52 PM 1/13/97 -0800, Joe English wrote: > >Ralph Ferris <ralph@fsc.fujitsu.com> wrote: >> >> I don't consider my proposal to be "namespace pollution." I consider it to >> be method over-riding, in the manner of object-oriented programming. >> [...] >> One solution is to define these tags as architecural forms, and make these >> architectural forms part of a default set that's used by XML. >> [...] >> Pre-defined interfaces with over-rideable methods are what make component >> software work. Call these "component DTDs." > > >This sounds like a good approach, as long as the XML spec >also mandates some form of declaration to enable specific >architectures. A formalism for declaring a document's derivation from an architecture or architectures is defined in the forthcoming HyTime TC (largely as documented for the architecture processing support in the latest releases of SP). Unfortunately, the full form of these mechanisms depend on the use of data attributes (<!ATTLIST #NOTATION archname ...>), which means that XML documents cannot use the full form unless we add notation attributes to XML. However, the minimal part of the declaration simply uses a processing instruction to indicate which architectures are in use, e.g.: <!DOCTYPE MyDoc [ <?ArcBase XML-Link MyArc InfoMaster> ]> Where the name "ArcBase" is effectively normative as XML doesn't allow SGML declarations, which is where you would change the name of the PI (don't you love indirection?). A full architecture processor then expects to see notation declarations corresponding to the architectures named (e.g., <!NOTATION MyArc PUBLIC "...">) with notation attributes defining the document-specific values for the architecture control attributes. The architecture control attributes are needed to do renaming, specify options used, and so on. However, since these attributes can all have default values, you could always derive an XML-specific version of your architecture that set the default values to something appropriate for XML use, following the XML philosophy that no options are good options. Thus the notation attribute declarations would be superfluous because the architecture engine for each such architecture would know what its base default values are because they would be built in. Thus, I could have: <!DOCTYPE MyDoc [ <?ArcBase XML-Link XML-MyArc XML-InfoMaster> <!NOTATION XML-Link PUBLIC "-//W3C::SGML ERB//NOTATION XML Link Architecture//EN" > <!NOTATION XML-MyArc PUBLIC "-//ME//NOTATION My Architecture, XML Profile//EN" > <!NOTATION XML-InfoMaster PUBLIC "+//ISBN 0-189773::IBM//NOTATION InfoMaster Architecture, XML Profile//EN" > ]> It would conform to the ISO/IEC 10744 requirements and fit within the XML constraints. The notation declarations could be considered superfluous in this case as the PI is sufficient to identify the architectures as long as the names used are normative. In the general case, you can use whatever name you want because the architecture is actually identified by the external ID of the notation you declare. However, we tend to expect the notation names to be used consistently. Or, you could consider the names in the ArcBase PI to imply notation declarations with omitted system identifiers if no notation declaration is present, at which point things like catalog lookup come into play and you could put the name-to-public ID mapping in an external catalog if necessary (which it's probably not 99.99% of the time). Cheers, E. -- W. Eliot Kimber (eliot@isogen.com) Senior SGML Consulting Engineer, Highland Consulting 2200 North Lamar Street, Suite 230, Dallas, Texas 75202 +1-214-953-0004 +1-214-953-3152 fax http://www.isogen.com (work) http://www.drmacro.com (home) "Rats in the morning, rats in the afternoon...if they don't go away, I'll be re-educated soon..." --Austin Lounge Lizards, "1984 Blues"
Received on Monday, 13 January 1997 18:27:47 UTC