<!-- $Id: p2td.odd,v 1.10 1994/04/08 00:02:57 msmcq Exp $ -->
<!-- $Log: p2td.odd,v $
# Revision 1.10  1994/04/08  00:02:57  msmcq
# change apropos of validating DTD
#
# Revision 1.9  1994/03/27  21:48:38  msmcq
# Correction of typos found by EM, DB.
#
# Revision 1.8  1994/03/21  14:11:59  lou
# second mass typo clearup
#
# Revision 1.6  1994/02/12  21:37:58  msmcq
# strip ^Z
# -->
<!-- Revisions:                                               -->
<!-- 94-04-07 : MSM : embed tei keywords file                 -->
<!-- 94-03-27 : MSM : typos from WWP and DB.                  -->
<!-- 9 jan 94: corrected spelling of tagDoc etc.              -->
<!-- 28 dec 93: LB : add decl for desc                        -->
<!-- 93-06-05 : MSM : for eg read tdeg (temp fix)             -->
<!-- 9-11 apr 93 : LB drafted                                 -->

<div1 id=TD n=27><head>Tag Set Documentation</head>

<p>This chapter describes an auxiliary DTD which may be used for the
documentation of new elements, element classes and entities.  It is
primarily intended for use by those wishing to extend or modify the
content of these Guidelines in a conformant manner, as described in
chapters <ptr target=MD> and <ptr target=CF>; it may however be of use
for the documentation of any SGML or SGML-like encoding scheme.  The
elements described here are those used to document the TEI scheme
itself, in part VII of the current document.

<p>Three distinct elements are used to document a tag set, the contents
of each of which is described in more detail in the appropriate section
of this chapter.

<list type=gloss>
<label><gi>tagDoc</gi></label>
<item>documents the structure, content, and purpose of a single

SGML element type.
Attributes include:
<list type=gloss>
<label><att>usage</att></label>
<item>specifies the optionality of an attribute or element.
Legal values are:
<list type=gloss>
<label><term>rwa</term></label>
<item>recommended when applicable</item>
<label><term>rec</term></label>
<item>recommended</item>
<label><term>mwa</term></label>
<item>mandatory when applicable</item>
<label><term>req</term></label>
<item>required</item>
<label><term>opt</term></label>
<item>optional</item>
</list></item>
</list>
</item>
<label><gi>classDoc</gi></label>
<item>contains reference information for a TEI <term>element 
class</term>;
that is a group of
  elements which appear 
together in SGML content models, or
  which share some 
common attribute, or both.</item>
<label><gi>entDoc</gi></label>
<item>formally documents a single SGML entity within an encoding 
scheme.</item>
</list>


<!-- DB suggests a fileDoc, for P4. (msm)                     -->

<p>In addition to these documentary elements, the following phrase-level
elements may be found useful for marking up occurrences of element names
etc. within the body of running text.

<list type=gloss>
<label><gi>gi</gi></label>
<item>contains the name (generic identifier) of an SGML element.
Attributes include:
<list type=gloss>
<label><att>TEI</att></label>
<item>indicates whether this element is part of the TEI encoding 
scheme (i.e., defined in a TEI DTD fragment) or not.
Legal values are:
<list type=gloss>
<label><term>yes</term></label>
<item>this element is part of the TEI scheme.</item>
<label><term>no</term></label>
<item>this element is not part of the TEI scheme.</item>
</list></item>
</list>
</item>
<label><gi>att</gi></label>
<item>contains the name of an attribute appearing within running 
text.
Attributes include:
<list type=gloss>
<label><att>TEI</att></label>
<item>indicates whether this attribute is part of the TEI scheme 
(i.e., defined in a TEI DTD fragment) or not.
Legal values are:
<list type=gloss>
<label><term>yes</term></label>
<item>this attribute is part of the TEI scheme.</item>
<label><term>no</term></label>
<item>this attribute is not part of the TEI scheme.</item>
</list></item>
</list>
</item>
<label><gi>val</gi></label>
<item>contains a single attribute value.</item>
<label><gi>tag</gi></label>
<item>contains text of a complete SGML start- or end-tag, 
possibly
including attribute specifications, but excluding 
the opening and
closing markup delimiter characters.</item>
</list>

<!-- on VAL, see remarks in tagDoc -->

These four elements are included in the phrase-level elements available
to any document using the auxiliary tag set defined in this chapter; to
make them available to documents using other DTDs, an appropriate
parameter entity should be defined.

<!-- but I dont have time to tell you how just now -->

<p>As an example of the recommended use of these elements, we quote from
an imaginary TEI working paper:

<!-- 'n imaginary' restored (msm)                             -->

<eg>
<![ CDATA [
<p>The <gi>gi</gi> element is used to tag element names when
they appear in the text; the <gi>tag</gi> element however is
used to show how a tag as such might appear. So one might
talk of an occurrence of the <gi>blort</gi> element which had
been tagged <tag>blort type='runcible'</tag>. The <att>type</att>
attribute may take any name token as value; the default value is
<val>spqr</val>, in memory of its creator.
]]>
</eg>

<p>These elements and their components make up the auxiliary DTD for tag
documentation, which is contained in the file <ident
type=file>teitsd2.dtd</ident>.  This file has the following overall
structure:

<eg id=dtd>
<![ CDATA [
<!-- 27: File teitsd2.dtd: Auxiliary DTD for Tag Set          -->
<!-- Documentation                                            -->
<!-- Text Encoding Initiative: Guidelines for Electronic      -->
<!-- Text Encoding and Interchange. Document TEI P3, 1994.    -->

<!-- Copyright (c) 1994 ACH, ACL, ALLC. Permission to copy    -->
<!-- in any form is granted, provided this notice is          -->
<!-- included in all copies.                                  -->

<!-- These materials may not be altered; modifications to     -->
<!-- these DTDs should be performed as specified in the       -->
<!-- Guidelines in chapter "Modifying the TEI DTD."           -->

<!-- These materials subject to revision. Current versions    -->
<!-- are available from the Text Encoding Initiative.         -->

<!-- Embed entities for TEI generic identifiers.              -->

<!ENTITY % TEI.elementNames system 'teigis2.ent'                >
%TEI.elementNames;

<!-- Define entities for TEI keywords.                        -->

<!ENTITY % TEI.keywords.ent system 'teikey2.ent'                >
%TEI.keywords.ent;

<!-- Define element classes for content models, shared        -->
<!-- attributes for element classes, and global attributes.   -->
<!-- (This all happens within the file TEIclas2.ent.)         -->

<!ENTITY % TEI.elementClasses system 'teiclas2.ent'             >
%TEI.elementClasses;

<!-- Embed the core tag set                                   -->

<!ENTITY % TEI.core.dtd system 'teicore2.dtd'                   >
%TEI.core.dtd;

<!-- Define the top-level element for this DTD                -->

<!ELEMENT tsd           - O  ((tagDoc | entDoc | classDoc)+)    >
<!ATTLIST tsd                %a.global;                         >

<!-- Define some additions for the phrase level tags          -->

<!ELEMENT gi            - O  (#PCDATA)                          >
<!ATTLIST gi                 %a.global;
          TEI                (yes | no)          yes            >
<!ELEMENT tag           - -  (#PCDATA)                          >
<!ATTLIST tag                %a.global;
          TEI                (yes | no)          yes            >
<!ELEMENT att           - -  (#PCDATA)                          >
<!ATTLIST att                %a.global;
          TEI                (yes | no)          yes            >
<!ELEMENT val           - O  (#PCDATA)                          >
<!ATTLIST val                %a.global;                         >

<!-- Finally we define the elements specific to this DTD      -->

<!-- ... declarations from section 27.1                       -->
<!--     (The TagDoc element)                                 -->
<!--     go here ...                                          -->
<!-- ... declarations from section 27.1.1                     -->
<!--     (Attribute documentation)                            -->
<!--     go here ...                                          -->
<!-- ... declarations from section 27.2                       -->
<!--     (Element classes)                                    -->
<!--     go here ...                                          -->
<!-- ... declarations from section 27.3                       -->
<!--     (Entity Documentation)                               -->
<!--     go here ...                                          -->
]]>
</eg>



<div2 id=TDtag><head>The TagDoc Documentation Element</head>

<p>The <gi>tagDoc</gi> element is used to document an element type,
together with its associated attributes.  A completely specified
<gi>tagDoc</gi> may comprise all of the following components in the
order specified:

<list type=gloss>
<label><gi>rs</gi></label>
<item>contains a general purpose name or referring string.</item>
<label><gi>gi</gi></label>
<item>contains the name (generic identifier) of an SGML element.</item>
<label><gi>desc</gi></label>
<item>contains a brief description of the purpose and application 
for
an element, attribute, or attribute value.</item>
<label><gi>attList</gi></label>
<item>contains documentation for all the attributes associated 
with this
element, as a series of <gi>attDef</gi> 
elements.</item>
<label><gi>exemplum</gi></label>
<item>contains a single example demonstrating the use of an 
element,
together with optional paragraphs of commentary.</item>
<label><gi>eg</gi></label>
<item>contains a single example demonstrating the use of an 
element or
attribute. If the example contains SGML markup, 
it must be
enclosed within a marked CDATA section.</item>
<label><gi>remarks</gi></label>
<item>contains any commentary or discussion about the usage of an
element, attribute, class, or entity not otherwise 
documented within the
containing element.</item>
<label><gi>part</gi></label>
<item>specifies the module or part to which a particular element,
element class, or entity belongs in a modular encoding 
scheme such
as the TEI.</item>
<label><gi>classes</gi></label>
<item>specifies all the classes of which the documented element 
or
class is a member or subclass.</item>
<label><gi>files</gi></label>
<item>specifies the name of the operating system file(s) within 
which
this markup component is declared.</item>
<label><gi>dataDesc</gi></label>
<item>specifies the legal content of the element being 
documented,
noting any semantic or application-dependent 
constraints, as well
as constraints enforced by the SGML 
content model.</item>
<label><gi>parents</gi></label>
<item>lists elements which can directly contain this element.</item>
<label><gi>children</gi></label>
<item>lists the elements which this element may directly contain.</item>
<label><gi>elemDecl</gi></label>
<item>contains the full form of an SGML declaration for the 
element
documented using the reference concrete syntax.</item>
<label><gi>attlDecl</gi></label>
<item>contains the SGML ATTLIST declaration associated with this

element.</item>
<label><gi>ptr</gi></label>
<item>defines a pointer to another location in the current 
document
in terms of one or more identifiable elements.</item>
<label><gi>equiv</gi></label>
<item>specifies an equivalent or comparable element in some other
markup language.</item>
</list>


<p>As the content model for <gi>tagDoc</gi> makes clear, only the
<gi>gi</gi>, <gi>desc</gi>, <gi>exemplum</gi>, <gi>dataDesc</gi>,
<gi>parents</gi>, <gi>children</gi> and <gi>elemDecl</gi> elements are
mandatory components.  For elements bearing attributes, the
<gi>attList</gi> and <gi>attlDecl</gi> components are also required for
TEI conformance.  For compatibility with the TEI system, use of the
<gi>classes</gi> and <gi>files</gi> elements is strongly recommended.
The only components of the <gi>tagDoc</gi> element which can appear more
than once are the <gi>exemplum</gi>, <gi>ptr</gi> and <gi>equiv</gi>
elements.  The order of components may not be changed.

<!-- <p>Several examples of complete <gi>tagDoc</gi>          -->
<!-- elements are provided in section <ptr target=XT>.       -->

<p>The <gi>tagDoc</gi> and its constituents are defined as follows:

<eg id=dtdtag>
<![ CDATA [
<!-- 27.1:  The TagDoc element                                -->
<!ELEMENT tagDoc        - -  (gi, rs?, desc, attList?, 
                             exemplum*, remarks?, part?, 
                             classes?, files?, dataDesc?, 
                             parents?, children?, elemDecl, 
                             attlDecl?, ptr*, equiv*)           >
<!ATTLIST tagDoc             %a.global;
          usage              (req | mwa | rec | rwa | opt) 
                                                 opt            >
<!-- RS and PTR are defined in the core                       -->

<!-- GI is defined above                                      -->

<!ELEMENT desc          - O  (%paraContent)                     >
<!ATTLIST desc               %a.global;                         >
<!ELEMENT attList       - O  (attDef*)                          >
<!ATTLIST attList            %a.global;                         >
<!ELEMENT exemplum      - -  (p*, eg, p*)                       >
<!ATTLIST exemplum           %a.global;                         >
<!ELEMENT eg            - -  (#PCDATA)                          >
<!ATTLIST eg                 %a.global;                         >
<!ELEMENT remarks       - O  (%component.seq)                   >
<!ATTLIST remarks            %a.global;                         >
<!ELEMENT part          - O  (#PCDATA)                          >
<!ATTLIST part               %a.global;
          name               CDATA               #IMPLIED
          type               CDATA               #IMPLIED       >
<!ELEMENT classes       - O  (#PCDATA)                          >
<!ATTLIST classes            %a.global;
          names              CDATA               #REQUIRED      >
<!ELEMENT files         - O  EMPTY                              >
<!ATTLIST files              %a.global;
          names              CDATA               #IMPLIED       >
<!ELEMENT dataDesc      - O  (%phrase.seq)                      >
<!ATTLIST dataDesc           %a.global;                         >
<!ELEMENT parents       - O  (#PCDATA)                          >
<!ATTLIST parents            %a.global;                         >
<!ELEMENT children      - O  (#PCDATA)                          >
<!ATTLIST children           %a.global;                         >
<!ELEMENT elemDecl      - O  (#PCDATA)                          >
<!ATTLIST elemDecl           %a.global;                         >
<!ELEMENT attlDecl      - -  (#PCDATA)                          >
<!ATTLIST attlDecl           %a.global;                         >
<!ELEMENT equiv         - O  (%specialPara)                     >
<!ATTLIST equiv              %a.global;
          scheme             CDATA               #REQUIRED      >
<!-- This fragment is used in sec. 27                         -->
]]>
</eg>


<div3 id=TDatt><head>The AttList Documentation Element</head>

<p>The <gi>attList</gi> element is used to document information about a
collection of attributes, either within a <gi>tagDoc</gi>, or within a
<gi>classDoc</gi>.  It consists of a series of <gi>attDef</gi> elements,
each documenting a single attribute and each using an appropriate
selection from the following elements:

<list type=gloss>
<label><gi>attDef</gi></label>
<item>contains the definition of a single attribute.
Attributes include:
<list type=gloss>
<label><att>usage</att></label>
<item>specifies the optionality of an attribute or element.
Legal values are:
<list type=gloss>
<label><term>rwa</term></label>
<item>recommended when applicable</item>
<label><term>rec</term></label>
<item>recommended</item>
<label><term>mwa</term></label>
<item>mandatory when applicable</item>
<label><term>req</term></label>
<item>required</item>
<label><term>opt</term></label>
<item>optional</item>
</list></item>
</list>
</item>
<label><gi>attName</gi></label>
<item>contains the name of the attribute being defined by an

<gi>attDef</gi> element.</item>
<label><gi>rs</gi></label>
<item>contains a general purpose name or referring string.</item>
<label><gi>desc</gi></label>
<item>contains a brief description of the purpose and application 
for
an element, attribute, or attribute value.</item>
<label><gi>dataType</gi></label>
<item>specifies an SGML <term>declared value</term> for an 
attribute.</item>
<label><gi>valList</gi></label>
<item>contains a list of value and description pairs for an 
attribute.
Attributes include:
<list type=gloss>
<label><att>type</att></label>
<item>specifies the extensibility of the list of attribute values 
specified.
Legal values are:
<list type=gloss>
<label><term>semi</term></label>
<item>all the values specified should be supported, but other 
values are legal and software should have appropriate 
fallback processing for them.</item>
<label><term>open</term></label>
<item>the values specified are sample values only.</item>
<label><term>closed</term></label>
<item>only the values specified are permitted.</item>
</list></item>
</list>
</item>
<label><gi>val</gi></label>
<item>contains a single attribute value.</item>
<label><gi>valDesc</gi></label>
<item>specifies any semantic or syntactic constraint on the value 
that
an attribute may take, additional to the information 
carried by the
<gi>dataType</gi> element.</item>
<label><gi>default</gi></label>
<item>specifies the default declared value for an attribute.</item>
<label><gi>eg</gi></label>
<item>contains a single example demonstrating the use of an 
element or
attribute. If the example contains SGML markup, 
it must be
enclosed within a marked CDATA section.</item>
<label><gi>remarks</gi></label>
<item>contains any commentary or discussion about the usage of an
element, attribute, class, or entity not otherwise 
documented within the
containing element.</item>
<label><gi>equiv</gi></label>
<item>specifies an equivalent or comparable element in some other
markup language.</item>
</list>


<p>It will be noted that several of these elements are used identically
to document both elements and attributes.  Specific to attributes are
<gi>dataType</gi>, <gi>valList</gi>, <gi>valDesc</gi>, <gi>val</gi> and
<gi>default</gi>.  For any attribute documented in this way, either a
<gi>valList</gi> or a <gi>valDesc</gi> must be supplied to specify the
range of permitted values for an attribute.  A <gi>valList</gi> should
be used if the intended set of values can be enumerated; a
<gi>valDesc</gi> if it cannot.  A legal <gi>attDef</gi> specification
must contain an <gi>attName</gi>, a <gi>desc</gi>, a <gi>datatype</gi>,
either a <gi>valList</gi> or a <gi>valDesc</gi>, and a default; the
other elements listed above are all optional.

<p>The <gi>attList</gi> within a <gi>tagDoc</gi> is used to specify only
the attributes which are specific to that particular element.
Attributes which are shared by other elements, or by all elements,
should be documented by an <gi>attList</gi> contained within a
<gi>classDoc</gi> element, as described in section <ptr target=TDcla>
below.

<p>The following <gi>attList</gi> demonstrates some of the
possibilities; for more detailed examples, consult the tagged version of
the reference material in these Guidelines.

<!-- replace this example if we change the definition of gloss list  -->
<eg>
<![ CDATA [

<attDef usage=opt>
<attName>type
<desc>describes the form of the list.
<datatype>CDATA
<valList type=semi>
    <val>ordered<desc>list items are numbered or lettered.
    <val>bulleted<desc>list items are marked with a
       <soCalled>bullet</soCalled> or other typographic device.
    <val>simple<desc>list items are not numbered or bulleted.
    <val>gloss<desc>each list item glosses some term or
      concept, which is given by a <gi>label</gi> element preceding
      the list item.
</valList>
<default>simple
<remarks><p>The formal syntax of the element declarations allows
<gi>label</gi> tags to be omitted from lists tagged <tag>list
type=gloss</tag>; this is however a semantic error.
</attDef>

]]>
</eg>

<p>Those elements from the above list which are unique to attributes are
declared as follows:

<eg id=dtdatt>
<![ CDATA [
<!-- 27.1.1:  Attribute documentation                         -->
<!ELEMENT attDef        - O  (attName, rs?, desc, (dataType, 
                             (valList | valDesc)?), default, 
                             eg?, remarks?, equiv*)             >
<!ATTLIST attDef             %a.global;
          usage              (req | mwa | rec | rwa | opt) 
                                                 opt            >
<!ELEMENT attName       - O  (#PCDATA)                          >
<!ATTLIST attName            %a.global;                         >
<!ELEMENT dataType      - O  (#PCDATA)                          >
<!ATTLIST dataType           %a.global;                         >
<!ELEMENT valList       - -  ((val, desc)*)                     >
<!ATTLIST valList            %a.global;
          type               (closed | semi | open) 
                                                 open           >
<!ELEMENT valDesc       - O  (%phrase.seq)                      >
<!ATTLIST valDesc            %a.global;                         >
<!ELEMENT default       - O  (#PCDATA)                          >
<!ATTLIST default            %a.global;                         >
<!-- This fragment is used in sec. 27                         -->
]]>
</eg>


<div2 id=TDcla><head>Element Classes</head>

<p>The element <gi>classDoc</gi> is used to document an <term>element
class</term>, as defined in section <ptr target=STec>.  It has the
following components:

<list type=gloss>
<label><gi>classDoc</gi></label>
<item>contains reference information for a TEI <term>element 
class</term>;
that is a group of
  elements which appear 
together in SGML content models, or
  which share some 
common attribute, or both.
Attributes include:
<list type=gloss>
<label><att>type</att></label>
<item>indicates whether this is a model class, an attribute 
class, or both.
Sample values include:
<list type=gloss>
<label><term>atts</term></label>
<item>members of this class share common attributes</item>
<label><term>both</term></label>
<item>members of this class share attributes and also appear in 
the same SGML content models</item>
<label><term>model</term></label>
<item>members of this class appear in the same SGML content 
models</item>
</list></item>
</list>
</item>
<label><gi>class</gi></label>
<item>specifies the name of an element class.</item>
<label><gi>rs</gi></label>
<item>contains a general purpose name or referring string.</item>
<label><gi>desc</gi></label>
<item>contains a brief description of the purpose and application 
for
an element, attribute, or attribute value.</item>
<label><gi>attList</gi></label>
<item>contains documentation for all the attributes associated 
with this
element, as a series of <gi>attDef</gi> 
elements.</item>
<label><gi>remarks</gi></label>
<item>contains any commentary or discussion about the usage of an
element, attribute, class, or entity not otherwise 
documented within the
containing element.</item>
<label><gi>part</gi></label>
<item>specifies the module or part to which a particular element,
element class, or entity belongs in a modular encoding 
scheme such
as the TEI.</item>
<label><gi>classes</gi></label>
<item>specifies all the classes of which the documented element 
or
class is a member or subclass.</item>
<label><gi>ptr</gi></label>
<item>defines a pointer to another location in the current 
document
in terms of one or more identifiable elements.</item>
<label><gi>equiv</gi></label>
<item>specifies an equivalent or comparable element in some other
markup language.</item>
</list>


Of these elements, only the <gi>class</gi> and <gi>desc</gi> elements
are required

<!-- tho the content model for ODD requires others -->

components.  If present, the other elements must be given in the order
specified, and only <gi>ptr</gi> and <gi>equiv</gi> may be repeated.

<p>The attribute <att>type</att> is used to distinguish between
<soCalled>model</soCalled> and <soCalled>attribute</soCalled> classes;
for the former, a <gi>classDoc</gi> simply exists so that members of the
class it documents may point to it (by specifying the value of its
<att>id</att> attribute among the values specified by the
<att>names</att> attribute of their <gi>classes</gi> component); for the
latter, the <gi>classDoc</gi> additionally contains an <gi>attList</gi>
which specifies the attributes shared by the members of the class.  A
class may perform both functions, of course.

<p>Where a class inherits properties or attributes from some other
class, the <gi>classes</gi> element may be used to indicate this fact.
Membership of an attribute class can be inherited by any class, but
model-only classes may not include attribute-only classes amongst their
members.  For further discussion of the TEI class system, see section
<ptr target=STec>.

<!-- <p>For examples of attribute classes, please refer to    -->
<!-- chapter <ptr target=XT>.                                -->

<p>The <gi>classDoc</gi> element and the elements unique to it are
declared as follows:

<eg id=dtdcla>
<![ CDATA [
<!-- 27.2:  Element classes                                   -->
<!ELEMENT classDoc      - O  (class, rs?, desc, attList?, 
                             remarks?, part?, classes?, files?, 
                             ptr*, equiv*)                      >
<!ATTLIST classDoc           %a.global;
          type               (model | atts | both) 
                                                 #IMPLIED       >
<!ELEMENT class         - O  (#PCDATA)                          >
<!ATTLIST class              %a.global;                         >
<!-- all other constituents are defined above                 -->

<!-- This fragment is used in sec. 27                         -->
]]>
</eg>


<div2 id=TDent><head>Entity Documentation

<p>The <gi>entDoc</gi> element is used to document any other entity not
otherwise documented by the elements described in this chapter.  Its
chief uses are to provide systematic documentation for parameter
entities used within TEI DTD fragments (for example, those used to
enable different components of the TEI DTD, or to describe common
content models), but it may be used for any purpose.  It has the
following components:

<list type=gloss>
<label><gi>entDoc</gi></label>
<item>formally documents a single SGML entity within an encoding 
scheme.
Attributes include:
<list type=gloss>
<label><att>type</att></label>
<item>indicates whether this is a general or a parameter entity.
Legal values are:
<list type=gloss>
<label><term>pe</term></label>
<item>parameter entity</item>
<label><term>ge</term></label>
<item>general entity</item>
</list></item>
</list>
</item>
<label><gi>entName</gi></label>
<item>contains the full name of an entity, excluding the percent 
sign in
the case of a parameter entity.</item>
<label><gi>rs</gi></label>
<item>contains a general purpose name or referring string.</item>
<label><gi>desc</gi></label>
<item>contains a brief description of the purpose and application 
for
an element, attribute, or attribute value.</item>
<label><gi>remarks</gi></label>
<item>contains any commentary or discussion about the usage of an
element, attribute, class, or entity not otherwise 
documented within the
containing element.</item>
<label><gi>string</gi></label>
<item>contains the intended expansion for the entity documented

by an <gi>entdoc</gi> element, enclosed by quotation marks.</item>
<label><gi>ptr</gi></label>
<item>defines a pointer to another location in the current 
document
in terms of one or more identifiable elements.</item>
<label><gi>equiv</gi></label>
<item>specifies an equivalent or comparable element in some other
markup language.</item>
</list>


Of these, only <gi>entName</gi>, <gi>desc</gi> and <gi>string</gi> are
required components.  If present, the other elements must be given in
the order specified, and only <gi>ptr</gi> and <gi>equiv</gi> may be
repeated.

<!-- <p>For examples, please refer to chapters <ptr          -->
<!-- target=XT> and <ptr target=ST>.                         -->

<p>The <gi>entDoc</gi> element and the elements unique to it are
declared as follows:

<eg id=dtdent>
<![ CDATA [
<!-- 27.3:  Entity Documentation                              -->
<!ELEMENT entDoc        - -  (entName, rs?, desc, remarks?, 
                             string, ptr*, equiv*)              >
<!ATTLIST entDoc             %a.global;
          type               (pe | ge)           #REQUIRED      >
<!ELEMENT entName       - O  (#PCDATA)                          >
<!ATTLIST entName            %a.global;                         >
<!ELEMENT string        - -  (#PCDATA)                          >
<!ATTLIST string             %a.global;                         >
<!-- All other constituents are defined above                 -->

<!-- This fragment is used in sec. 27                         -->
]]>
</eg>


             <!-- 27 Tag Set Declaration -->
 <!>
</div1>
