xref: /onnv-gate/usr/src/cmd/man/src/util/nsgmls.src/doc/archform.htm (revision 0:68f95e015346)
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&lt;?ArcBase <VAR>archname</VAR>&gt;
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&lt;!AFDR "ISO/IEC 10744:1992"&gt;
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&lt;?ArcBase #NOTATION&gt;
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