1*0Sstevel@tonic-gate<!-- SCCS keyword 2*0Sstevel@tonic-gate#pragma ident "%Z%%M% %I% %E% SMI" 3*0Sstevel@tonic-gate--> 4*0Sstevel@tonic-gate<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN"> 5*0Sstevel@tonic-gate<HTML> 6*0Sstevel@tonic-gate<HEAD> 7*0Sstevel@tonic-gate<TITLE>Architectural Form Processing</TITLE> 8*0Sstevel@tonic-gate</HEAD> 9*0Sstevel@tonic-gate<BODY> 10*0Sstevel@tonic-gate<H1>Architectural Form Processing</H1> 11*0Sstevel@tonic-gate<P> 12*0Sstevel@tonic-gateThe Hytime standard (ISO/IEC 10744) introduced the concept of 13*0Sstevel@tonic-gatearchitectural forms. This document assumes you are already familiar 14*0Sstevel@tonic-gatewith this concept. The first Technical Corrigendum to HyTime, which is 15*0Sstevel@tonic-gatesoon to be published, generalizes this, and makes it possible to have 16*0Sstevel@tonic-gatean <I>architecture engine</I> which can perform architectural form 17*0Sstevel@tonic-gateprocessing for arbitrary architectures. SP now includes such an 18*0Sstevel@tonic-gatearchitecture engine. 19*0Sstevel@tonic-gate<P> 20*0Sstevel@tonic-gateNon-markup sensitive applications built using SP now support 21*0Sstevel@tonic-gatearchitectural form processing using the <SAMP>-A 22*0Sstevel@tonic-gate<VAR>archname</VAR></SAMP> option. When this option is specified, the 23*0Sstevel@tonic-gatedocument will be validated against all declared base architectures, 24*0Sstevel@tonic-gateand the output will be for the architectural document for that 25*0Sstevel@tonic-gatearchitecture: the element types, notations and attributes will be 26*0Sstevel@tonic-gatethose defined in the meta-DTD. 27*0Sstevel@tonic-gate<P> 28*0Sstevel@tonic-gateThis option is experimental and has not been subject to much testing. 29*0Sstevel@tonic-gatePlease be sure to report any bugs or problems you encounter. 30*0Sstevel@tonic-gate<P> 31*0Sstevel@tonic-gateAlthough spam does not support the <SAMP>-A</SAMP> option because it 32*0Sstevel@tonic-gateworks with the markup of your document, sgmlnorm does. 33*0Sstevel@tonic-gate 34*0Sstevel@tonic-gate<H2>Architectural Support Attributes</H2> 35*0Sstevel@tonic-gate<P> 36*0Sstevel@tonic-gateTo use the <SAMP>-A</SAMP> option with a document, you must add 37*0Sstevel@tonic-gate<UL> 38*0Sstevel@tonic-gate<LI> 39*0Sstevel@tonic-gatean architecture base declaration for <SAMP><VAR>archname</VAR></SAMP>, 40*0Sstevel@tonic-gate<LI> 41*0Sstevel@tonic-gatea notation declaration and associated attribute definition list 42*0Sstevel@tonic-gatedeclaration for <SAMP><VAR>archname</VAR></SAMP>; 43*0Sstevel@tonic-gatethis is called the <I>architecture notation declaration</I>. 44*0Sstevel@tonic-gate</UL> 45*0Sstevel@tonic-gate<P> 46*0Sstevel@tonic-gateAn architecture base declaration is a processing instruction of the form: 47*0Sstevel@tonic-gate<PRE> 48*0Sstevel@tonic-gate<?ArcBase <VAR>archname</VAR>> 49*0Sstevel@tonic-gate</PRE> 50*0Sstevel@tonic-gate<P> 51*0Sstevel@tonic-gateThe processing instruction is recognized either in the DTD or in an 52*0Sstevel@tonic-gateactive LPD. 53*0Sstevel@tonic-gate<P> 54*0Sstevel@tonic-gateThe architecture notation declaration and associated attribute 55*0Sstevel@tonic-gatedefinition list declaration serve to declare a number of architectural 56*0Sstevel@tonic-gatesupport attributes which control the architecture engine. The value 57*0Sstevel@tonic-gatefor each architecture support attribute is taken from the default 58*0Sstevel@tonic-gatevalue, if any, specified for that attribute in the attribute 59*0Sstevel@tonic-gatedefinition list declaration. It is an error to declare an 60*0Sstevel@tonic-gatearchitecture support attribute as <SAMP>#REQUIRED</SAMP>. 61*0Sstevel@tonic-gate<P> 62*0Sstevel@tonic-gateThe following architectural support attributes are recognized: 63*0Sstevel@tonic-gate<DL> 64*0Sstevel@tonic-gate<DT> 65*0Sstevel@tonic-gate<SAMP>ArcDTD</SAMP> 66*0Sstevel@tonic-gate<DD> 67*0Sstevel@tonic-gateThe name of an external entity that contains the meta-DTD. 68*0Sstevel@tonic-gateThis attribute is required. 69*0Sstevel@tonic-gateIf the name starts with the PERO delimiter <SAMP>%</SAMP>, 70*0Sstevel@tonic-gatethe entity is a parameter entity, 71*0Sstevel@tonic-gateotherwise it is a general entity. 72*0Sstevel@tonic-gate<DT> 73*0Sstevel@tonic-gate<SAMP>ArcQuant</SAMP> 74*0Sstevel@tonic-gate<DD> 75*0Sstevel@tonic-gateA list of tokens that looks like what follows <SAMP>QUANTITY SGMLREF</SAMP> 76*0Sstevel@tonic-gatein the quantity set section of an SGML declaration. 77*0Sstevel@tonic-gateThe quantities used for parsing the meta-DTD 78*0Sstevel@tonic-gateand validating the architectural document 79*0Sstevel@tonic-gatewill be the maximum of the quantities in the document's concrete syntax 80*0Sstevel@tonic-gateand the quantities specified here. 81*0Sstevel@tonic-gate<DT> 82*0Sstevel@tonic-gate<SAMP>ArcDocF</SAMP> 83*0Sstevel@tonic-gate<DD> 84*0Sstevel@tonic-gateThe name of the document element type in the meta-DTD. 85*0Sstevel@tonic-gateThis would be <SAMP>HyDoc</SAMP> for HyTime. 86*0Sstevel@tonic-gateThis defaults to <SAMP><VAR>archname</VAR></SAMP>. 87*0Sstevel@tonic-gate<DT> 88*0Sstevel@tonic-gate<SAMP>ArcFormA</SAMP> 89*0Sstevel@tonic-gate<DD> 90*0Sstevel@tonic-gateThe name of the attribute that elements use to specify the 91*0Sstevel@tonic-gatecorresponding element type, if any, in the meta-DTD. 92*0Sstevel@tonic-gateData entities also use this attribute to specify the corresponding 93*0Sstevel@tonic-gatenotation in the meta-DTD. 94*0Sstevel@tonic-gateThis would be <SAMP>HyTime</SAMP> for HyTime. 95*0Sstevel@tonic-gateThis defaults to <SAMP><VAR>archname</VAR></SAMP>. 96*0Sstevel@tonic-gate<DT> 97*0Sstevel@tonic-gate<SAMP>ArcNamrA</SAMP> 98*0Sstevel@tonic-gate<DD> 99*0Sstevel@tonic-gateThe name of the attribute that elements use to specify substitutes for 100*0Sstevel@tonic-gatethe names of attributes in the meta-DTD. A value of 101*0Sstevel@tonic-gate<SAMP>#DEFAULT</SAMP> is allowed for a substitute name; this inhibits 102*0Sstevel@tonic-gatemapping of an attribute to an architectural attribute, but specifies 103*0Sstevel@tonic-gatethat the value of the architectural attribute should be defaulted 104*0Sstevel@tonic-gaterather than taken from the value of another attribute in the document. 105*0Sstevel@tonic-gateFor HyTime the value of this attribute would be <SAMP>HyNames</SAMP>. 106*0Sstevel@tonic-gateBy default no attribute name substitutition is done. 107*0Sstevel@tonic-gate<DT> 108*0Sstevel@tonic-gate<SAMP>ArcSuprA</SAMP> 109*0Sstevel@tonic-gate<DD> 110*0Sstevel@tonic-gateThe name of an attribute that elements may use to suppress processing 111*0Sstevel@tonic-gateof their descendants. This attribute is not recognized for data 112*0Sstevel@tonic-gateentities. The value of the attribute must be one of the following 113*0Sstevel@tonic-gatetokens: 114*0Sstevel@tonic-gate<DL> 115*0Sstevel@tonic-gate<DT> 116*0Sstevel@tonic-gate<SAMP>sArcAll</SAMP> 117*0Sstevel@tonic-gate<DD> 118*0Sstevel@tonic-gateCompletely suppress all architectural processing of descendants. 119*0Sstevel@tonic-gateIt is not possible to restore architectural processing 120*0Sstevel@tonic-gatefor a descendant. 121*0Sstevel@tonic-gate<DT> 122*0Sstevel@tonic-gate<SAMP>sArcForm</SAMP> 123*0Sstevel@tonic-gate<DD> 124*0Sstevel@tonic-gateSuppress processing of the <SAMP>ArcFormA</SAMP> attribute of all 125*0Sstevel@tonic-gatedescendants of this element, except for those elements that have a 126*0Sstevel@tonic-gatenon-implied <SAMP>ArcSuprA</SAMP> attribute. 127*0Sstevel@tonic-gate<DT> 128*0Sstevel@tonic-gate<SAMP>sArcNone</SAMP> 129*0Sstevel@tonic-gate<DD> 130*0Sstevel@tonic-gateDon't suppress architectural processing for the descendants of 131*0Sstevel@tonic-gatethis element. 132*0Sstevel@tonic-gate</DL> 133*0Sstevel@tonic-gate<P> 134*0Sstevel@tonic-gateThe value may also be implied, in which case the state of 135*0Sstevel@tonic-gatearchitectural processing is inherited. 136*0Sstevel@tonic-gate<P> 137*0Sstevel@tonic-gateIf an element has an ArcSuprA attribute that was processed, its 138*0Sstevel@tonic-gateArcFormA attribute will always be processed. Otherwise its ArcFormA 139*0Sstevel@tonic-gateattribute will be processed unless its closest ancestor that has a 140*0Sstevel@tonic-gatenon-implied value for the ArcSuprA attribute suppressed processing of 141*0Sstevel@tonic-gatethe ArcFormA attribute. An element whose ArcFormA attribute is 142*0Sstevel@tonic-gateprocessed will not be treated as architectural if it has an implied 143*0Sstevel@tonic-gatevalue for the ArcFormA attribute. 144*0Sstevel@tonic-gate<DT> 145*0Sstevel@tonic-gate<SAMP>ArcSuprF</SAMP> 146*0Sstevel@tonic-gate<DD> 147*0Sstevel@tonic-gateThe name of the element type in the meta-DTD that suppresses 148*0Sstevel@tonic-gatearchitectural processing in the same manner as does the 149*0Sstevel@tonic-gate<SAMP>sHyTime</SAMP> form in HyTime. By default, no element type 150*0Sstevel@tonic-gatedoes. This behaves like an element with an 151*0Sstevel@tonic-gate<SAMP>ArcSuprA</SAMP> attribute of <SAMP>sArcForm</SAMP>. The element 152*0Sstevel@tonic-gatetype should be declared in the meta-DTD. You should not specify a 153*0Sstevel@tonic-gatevalue for this attribute if you specified a value for the 154*0Sstevel@tonic-gate<SAMP>ArcSuprA</SAMP> attribute. 155*0Sstevel@tonic-gate<P> 156*0Sstevel@tonic-gateThis is a non-standardized extension. 157*0Sstevel@tonic-gate<DT> 158*0Sstevel@tonic-gate<SAMP>ArcIgnDA</SAMP> 159*0Sstevel@tonic-gate<DD> 160*0Sstevel@tonic-gateThe name of an attribute that elements may use to control whether 161*0Sstevel@tonic-gatedata is ignored. 162*0Sstevel@tonic-gateThe value of the attribute must be one of the following values: 163*0Sstevel@tonic-gate<DL> 164*0Sstevel@tonic-gate<DT> 165*0Sstevel@tonic-gate<SAMP>nArcIgnD</SAMP> 166*0Sstevel@tonic-gate<DD> 167*0Sstevel@tonic-gateData is not ignored. 168*0Sstevel@tonic-gateIt is an error if data occurs where not allowed by the meta-DTD. 169*0Sstevel@tonic-gate<DT> 170*0Sstevel@tonic-gate<SAMP>cArcIgnD</SAMP> 171*0Sstevel@tonic-gate<DD> 172*0Sstevel@tonic-gateData is conditionally ignored. 173*0Sstevel@tonic-gateData will be ignored only when it occurs where the meta-DTD 174*0Sstevel@tonic-gatedoes not allow it. 175*0Sstevel@tonic-gate<DT> 176*0Sstevel@tonic-gate<SAMP>ArcIgnD</SAMP> 177*0Sstevel@tonic-gate<DD> 178*0Sstevel@tonic-gateData is always ignored. 179*0Sstevel@tonic-gate</DL> 180*0Sstevel@tonic-gate<P> 181*0Sstevel@tonic-gateThe value may also be implied, in which case the state of 182*0Sstevel@tonic-gatearchitectural processing is inherited. 183*0Sstevel@tonic-gateIf no the document element has no value specified, 184*0Sstevel@tonic-gate<SAMP>cArcIgnD</SAMP> will be used. 185*0Sstevel@tonic-gate<DT> 186*0Sstevel@tonic-gate<SAMP>ArcBridF</SAMP> 187*0Sstevel@tonic-gate<DD> 188*0Sstevel@tonic-gateThe name of a default element type declared in a meta-DTD, 189*0Sstevel@tonic-gateto which elements in the document should be automatically mapped 190*0Sstevel@tonic-gateif they have an ID and would not otherwise be considered 191*0Sstevel@tonic-gatearchitectural. 192*0Sstevel@tonic-gateThis would be <SAMP>HyBrid</SAMP> for HyTime. 193*0Sstevel@tonic-gateIf your meta-DTD declares IDREF attributes, it will 194*0Sstevel@tonic-gateusually be appropriate to specify a value for 195*0Sstevel@tonic-gate<SAMP>ArcBridF</SAMP>, and to declare an ID attribute 196*0Sstevel@tonic-gatefor that form in your meta-DTD. 197*0Sstevel@tonic-gate<DT> 198*0Sstevel@tonic-gate<SAMP>ArcDataF</SAMP> 199*0Sstevel@tonic-gate<DD> 200*0Sstevel@tonic-gateThe name of a default notation declared in the meta-DTD, 201*0Sstevel@tonic-gateto which the external data entities in the document 202*0Sstevel@tonic-gateshould be automatically mapped if they would 203*0Sstevel@tonic-gatenot otherwise be considered architectural. 204*0Sstevel@tonic-gateIf this attribute is defined, 205*0Sstevel@tonic-gatethen general entities will be automatically architectural: 206*0Sstevel@tonic-gateany external data entity whose notation cannot otherwise be mapped 207*0Sstevel@tonic-gateinto a notation in the meta-DTD will be automatically treated 208*0Sstevel@tonic-gateas an instance of the <SAMP>ArcDataF</SAMP> notation. 209*0Sstevel@tonic-gateThis would be <SAMP>data</SAMP> for HyTime. 210*0Sstevel@tonic-gateIf your meta-DTD declares entity attributes, it will usually 211*0Sstevel@tonic-gatebe appropriate to specify a value for <SAMP>ArcDataF</SAMP> 212*0Sstevel@tonic-gateeven if your meta-DTD declares no data attributes for the 213*0Sstevel@tonic-gatenotation. 214*0Sstevel@tonic-gate<DT> 215*0Sstevel@tonic-gate<SAMP>ArcAuto</SAMP> 216*0Sstevel@tonic-gate<DD> 217*0Sstevel@tonic-gateThis must have one of the following values: 218*0Sstevel@tonic-gate<DL> 219*0Sstevel@tonic-gate<DT> 220*0Sstevel@tonic-gate<SAMP>ArcAuto</SAMP> 221*0Sstevel@tonic-gate<DD> 222*0Sstevel@tonic-gateIf an element does not have an <SAMP>ArcFormA</SAMP> attribute and the 223*0Sstevel@tonic-gatemeta-DTD defines an element type with the same name as the element's 224*0Sstevel@tonic-gatetype, the element will be automatically treated as being an instance 225*0Sstevel@tonic-gateof the meta-type. This rule does not apply to the 226*0Sstevel@tonic-gatedocument element type; this is automatically treated as being an 227*0Sstevel@tonic-gateinstance of the meta-DTD's document element type. 228*0Sstevel@tonic-gateNote that this automatic mapping is prevented if 229*0Sstevel@tonic-gatethe element has an <SAMP>ArcFormA</SAMP> attribute with an implied 230*0Sstevel@tonic-gatevalue. It is also prevented if processing of the 231*0Sstevel@tonic-gate<SAMP>ArcFormA</SAMP> attribute is suppressed. This applies equally 232*0Sstevel@tonic-gateto the notations of external data entities. 233*0Sstevel@tonic-gateThe default element or notation specified with the 234*0Sstevel@tonic-gate<SAMP>ArcBridF</SAMP> or <SAMP>ArcDfltN</SAMP> attribute 235*0Sstevel@tonic-gateis only considered after the mapping specified by <SAMP>ArcAuto</SAMP>. 236*0Sstevel@tonic-gate<DT> 237*0Sstevel@tonic-gate<SAMP>nArcAuto</SAMP> 238*0Sstevel@tonic-gate<DD> 239*0Sstevel@tonic-gateAutomatic mapping is not performed. 240*0Sstevel@tonic-gate</DL> 241*0Sstevel@tonic-gate<P> 242*0Sstevel@tonic-gateThe default value is <SAMP>ArcAuto</SAMP>. 243*0Sstevel@tonic-gate<DT> 244*0Sstevel@tonic-gate<SAMP>ArcOptSA</SAMP> 245*0Sstevel@tonic-gate<DD> 246*0Sstevel@tonic-gateA list of names of architectural support attributes, 247*0Sstevel@tonic-gateeach of which is interpreted as a list of parameter entities 248*0Sstevel@tonic-gateto be defined with a replacement text of <SAMP>INCLUDE</SAMP> 249*0Sstevel@tonic-gatewhen parsing the meta-DTD. 250*0Sstevel@tonic-gateThe default value is <SAMP>ArcOpt</SAMP>. 251*0Sstevel@tonic-gate</DL> 252*0Sstevel@tonic-gate<H2>Meta-DTDs</H2> 253*0Sstevel@tonic-gate<P> 254*0Sstevel@tonic-gateA meta-DTD is allowed to use the following extensions: 255*0Sstevel@tonic-gate<UL> 256*0Sstevel@tonic-gate<LI> 257*0Sstevel@tonic-gatea single element type or notation is allowed to be an associated 258*0Sstevel@tonic-gateelement type or associated notation name for multiple attribute 259*0Sstevel@tonic-gatedefinition lists. 260*0Sstevel@tonic-gate<LI> 261*0Sstevel@tonic-gate<SAMP>#ALL</SAMP> can be used as an associated element type 262*0Sstevel@tonic-gateor associated notation name in an attribute definition list 263*0Sstevel@tonic-gateto define attributes for all element types or notations 264*0Sstevel@tonic-gatein the meta-DTD 265*0Sstevel@tonic-gate</UL> 266*0Sstevel@tonic-gate<P> 267*0Sstevel@tonic-gateBefore any of these extensions can be used, the meta-DTD must include a 268*0Sstevel@tonic-gatedeclaration 269*0Sstevel@tonic-gate<PRE> 270*0Sstevel@tonic-gate<!AFDR "ISO/IEC 10744:1992"> 271*0Sstevel@tonic-gate</PRE> 272*0Sstevel@tonic-gate<P> 273*0Sstevel@tonic-gateThis declaration should only be included if the extensions are used. 274*0Sstevel@tonic-gate<P> 275*0Sstevel@tonic-gateIn all other respects a meta-DTD must be a valid SGML DTD. 276*0Sstevel@tonic-gate<P> 277*0Sstevel@tonic-gateA declared value of ENTITY for an attribute in a meta-DTD means that 278*0Sstevel@tonic-gatethe value of the attribute must be an entity declared in 279*0Sstevel@tonic-gatethe (non-meta) DTD that is architectural. 280*0Sstevel@tonic-gateAn external data entity is architectural only if its notation can be 281*0Sstevel@tonic-gatemapped into a notation in the meta-DTD. 282*0Sstevel@tonic-gateAll other kinds of data entities and subdoc entities are automatically 283*0Sstevel@tonic-gatearchitectural. 284*0Sstevel@tonic-gate<P> 285*0Sstevel@tonic-gateAn IDREF attribute in the meta-document must have a corresponding ID 286*0Sstevel@tonic-gatein the meta-document. An attribute with a declared value of ID in the 287*0Sstevel@tonic-gatedocument will be automatically mapped to an attribute with a declared 288*0Sstevel@tonic-gatevalue of ID in the meta-DTD. 289*0Sstevel@tonic-gate<P> 290*0Sstevel@tonic-gateA declared value of NOTATION in the meta-DTD means that the value of 291*0Sstevel@tonic-gatethe attribute must have one the values specified in the name group and 292*0Sstevel@tonic-gatethat it must be a notation in the meta-DTD. 293*0Sstevel@tonic-gate(Perhaps if the attribute also has a declared value of NOTATION 294*0Sstevel@tonic-gatein the non-meta-DTD, the value should be mapped in a similar 295*0Sstevel@tonic-gateway to the notation of an external data entity.) 296*0Sstevel@tonic-gate 297*0Sstevel@tonic-gate<H2>Differences from HyTime</H2> 298*0Sstevel@tonic-gate<P> 299*0Sstevel@tonic-gateThere are a number of differences from how architectural processing is 300*0Sstevel@tonic-gatedefined in the pre-Corringendum version of the HyTime standard. 301*0Sstevel@tonic-gate<UL> 302*0Sstevel@tonic-gate<LI> 303*0Sstevel@tonic-gateThe <SAMP>ArcNamrA</SAMP> and <SAMP>ArcFormA</SAMP> attributes are not 304*0Sstevel@tonic-gatepart of the meta-DTD. Rather they are used by the architecture engine 305*0Sstevel@tonic-gatein deriving the meta-document that is validated against the meta-DTD. 306*0Sstevel@tonic-gate<LI> 307*0Sstevel@tonic-gateThe <SAMP>use:</SAMP> conventional comment is not recognized. Instead 308*0Sstevel@tonic-gatea single element type is allowed to be an associated element type for 309*0Sstevel@tonic-gatemultiple attribute definition lists. 310*0Sstevel@tonic-gate<LI> 311*0Sstevel@tonic-gateThe notation and data attributes of an external data entity are 312*0Sstevel@tonic-gatetreated just like the element type and attributes of an element. The 313*0Sstevel@tonic-gatenotation of an external data entity is mapped into a notation in the 314*0Sstevel@tonic-gatemeta-DTD and the data attributes of the entity are mapped onto 315*0Sstevel@tonic-gateattributes defined for the meta-DTD notation. 316*0Sstevel@tonic-gate<LI> 317*0Sstevel@tonic-gate<SAMP>#FIXED</SAMP> has the same meaning in a meta-DTD that it does in 318*0Sstevel@tonic-gatea regular DTD: the value of the attribute must be the same as the 319*0Sstevel@tonic-gatedefault value of the attribute specified in the meta-DTD. 320*0Sstevel@tonic-gate</UL> 321*0Sstevel@tonic-gate 322*0Sstevel@tonic-gate<H2>Specifying architectural processing with an LPD</H2> 323*0Sstevel@tonic-gate<P> 324*0Sstevel@tonic-gateLink attributes defined by an implicit link process are treated in the 325*0Sstevel@tonic-gatesame way as non-link attributes. The only complication is that SGML 326*0Sstevel@tonic-gateallows link attributes to have the same name as non-link attributes. 327*0Sstevel@tonic-gateIf there is a link attribute and a non-link attribute with the same 328*0Sstevel@tonic-gatename, the architecture engine will only look at the link attribute, 329*0Sstevel@tonic-gateeven if the value of the link attribute is implied. The only 330*0Sstevel@tonic-gateexception is the <SAMP>ArcNamrA</SAMP> attribute: the architecture 331*0Sstevel@tonic-gateengine will use both the link attribute and the non-link attribute, 332*0Sstevel@tonic-gatebut the substitute names in the value of the non-link attribute cannot 333*0Sstevel@tonic-gaterefer to link attribute names. 334*0Sstevel@tonic-gate<P> 335*0Sstevel@tonic-gateThe <SAMP>-A <VAR>archname</VAR></SAMP> option automatically activates 336*0Sstevel@tonic-gateany link type <SAMP><VAR>archname</VAR></SAMP>. 337*0Sstevel@tonic-gate<P> 338*0Sstevel@tonic-gateThe architecture notation declaration and associated attribute 339*0Sstevel@tonic-gatedefinition list declaration are allowed in the LPD. Although the 340*0Sstevel@tonic-gateproductions of ISO 8879 do not allow a notation declaration in a link 341*0Sstevel@tonic-gatetype declaration subset, it is clearly the intent of the standard that 342*0Sstevel@tonic-gatethey be allowed. You can use a <SAMP>-wlpd-notation</SAMP> option to 343*0Sstevel@tonic-gatedisallow them. 344*0Sstevel@tonic-gate 345*0Sstevel@tonic-gate<H2>Notation set architecture</H2> 346*0Sstevel@tonic-gate<P> 347*0Sstevel@tonic-gateAn architecture for which <VAR>archname</VAR> is declared 348*0Sstevel@tonic-gateas a notation with a public identifier of 349*0Sstevel@tonic-gate<PRE> 350*0Sstevel@tonic-gate"ISO/IEC 10744//NOTATION AFDR ARCBASE 351*0Sstevel@tonic-gateNotation Set Architecture Definition Document//EN" 352*0Sstevel@tonic-gate</PRE> 353*0Sstevel@tonic-gate<P> 354*0Sstevel@tonic-gateis special. The element types in the meta-DTD for this architecture 355*0Sstevel@tonic-gateare the notations of the document DTD and the attributes defined for 356*0Sstevel@tonic-gatethe element types in the meta-DTD are the data attributes defined for 357*0Sstevel@tonic-gatethe notations in the document DTD. For each element, the attribute 358*0Sstevel@tonic-gatewith a declared value of NOTATION performs the function that the 359*0Sstevel@tonic-gateArcFormA attribute performs for normal architectures. Only the 360*0Sstevel@tonic-gate<SAMP>ArcNamrA</SAMP> and <SAMP>ArcSuprA</SAMP> architectural support 361*0Sstevel@tonic-gateattributes can be used with this architecture. 362*0Sstevel@tonic-gate<P> 363*0Sstevel@tonic-gateThe notation set architecture can also be declared using 364*0Sstevel@tonic-gatean architecture base declaration of the form: 365*0Sstevel@tonic-gate<PRE> 366*0Sstevel@tonic-gate<?ArcBase #NOTATION> 367*0Sstevel@tonic-gate</PRE> 368*0Sstevel@tonic-gate<P> 369*0Sstevel@tonic-gateIn this case, no architecture support attributes can be declared; 370*0Sstevel@tonic-gate<SAMP>ArcNamrA</SAMP> will be defaulted to <SAMP>notnames</SAMP>, 371*0Sstevel@tonic-gateand <SAMP>ArcSuprA</SAMP> to <SAMP>notsupr</SAMP>. 372*0Sstevel@tonic-gate 373*0Sstevel@tonic-gate<H2>Derived architectures</H2> 374*0Sstevel@tonic-gate<P> 375*0Sstevel@tonic-gateA meta-DTD can have one or more base architectures in the same way as 376*0Sstevel@tonic-gatea normal DTD. Multiple <SAMP>-A</SAMP> options can be used to exploit 377*0Sstevel@tonic-gatethis. For example, 378*0Sstevel@tonic-gate<PRE> 379*0Sstevel@tonic-gate-A <VAR>arch1</VAR> -A <VAR>arch2</VAR> 380*0Sstevel@tonic-gate</PRE> 381*0Sstevel@tonic-gate<P> 382*0Sstevel@tonic-gatewill perform architectural processing on the source document to 383*0Sstevel@tonic-gateproduce an architectural document conforming to the architecture 384*0Sstevel@tonic-gate<SAMP><VAR>arch1</VAR></SAMP> declared in the source document, and 385*0Sstevel@tonic-gatewill then perform architectural processing on this architectural 386*0Sstevel@tonic-gatedocument to produce an architectural document conforming to the 387*0Sstevel@tonic-gate<SAMP><VAR>arch2</VAR></SAMP> architecture declared in 388*0Sstevel@tonic-gate<SAMP><VAR>arch1</VAR></SAMP>'s meta-DTD. 389*0Sstevel@tonic-gate<P> 390*0Sstevel@tonic-gateA document that is validated against a meta-DTD will automatically 391*0Sstevel@tonic-gatebe validated against any base architectures of that meta-DTD. 392*0Sstevel@tonic-gate 393*0Sstevel@tonic-gate<H2>Not implemented</H2> 394*0Sstevel@tonic-gate<P> 395*0Sstevel@tonic-gateThe following features in the current AFDR draft are not implemented: 396*0Sstevel@tonic-gate<UL> 397*0Sstevel@tonic-gate<LI> 398*0Sstevel@tonic-gate<SAMP>ArcIndr</SAMP> architectural support attribute with value 399*0Sstevel@tonic-gateother than <SAMP>nArcIndr</SAMP>. 400*0Sstevel@tonic-gate</UL> 401*0Sstevel@tonic-gate<P> 402*0Sstevel@tonic-gate<ADDRESS> 403*0Sstevel@tonic-gateJames Clark<BR> 404*0Sstevel@tonic-gatejjc@jclark.com 405*0Sstevel@tonic-gate</ADDRESS> 406*0Sstevel@tonic-gate</BODY> 407*0Sstevel@tonic-gate</HTML> 408