<!-- 29: File teitsd2.dtd: Auxiliary dtd for Tag Set          -->
<!-- Documentation                                            -->
<!-- Text Encoding Initiative: Guidelines for Electronic      -->
<!-- Text Encoding and Interchange. DRAFT Version 2. 1992-93. -->
<!-- Copyright (c) 1990, 1992, 1993 ACH, ACL, ALLC.           -->
<!-- Permission to copy in any form is granted for use with   -->
<!-- TEI-aware systems and applications, provided this        -->
<!-- notice is included in all copies.                        -->
<!-- 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 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 tagset                                    -->
<!ENTITY % TEI.core.dtd system 'teicore2.dtd' >
%TEI.core.dtd;
<!--  Define the top-level element for this dtd               -->
<!ENTITY % tsd 'INCLUDE' >
<![ %tsd; [
<!ELEMENT %n.tsd;       - O  ((%n.tagDoc; | %n.entDoc; | 
                             %n.classDoc;)+)                    >
<!ATTLIST %n.tsd;            %a.global;                         >
]]>

<!-- Define some additions for the phrase level
tags         -->
<!ENTITY % gi 'INCLUDE' >
<![ %gi; [
<!ELEMENT %n.gi;        - O  (#PCDATA)                          >
<!ATTLIST %n.gi;             %a.global;
          TEI                (yes | no)          yes            >
]]>

<!ENTITY % tag 'INCLUDE' >
<![ %tag; [
<!ELEMENT %n.tag;       - -  (#PCDATA)                          >
<!ATTLIST %n.tag;            %a.global;
          TEI                (yes | no)          yes            >
]]>

<!ENTITY % att 'INCLUDE' >
<![ %att; [
<!ELEMENT %n.att;       - -  (#PCDATA)                          >
<!ATTLIST %n.att;            %a.global;
          TEI                (yes | no)          yes            >
]]>

<!ENTITY % val 'INCLUDE' >
<![ %val; [
<!ELEMENT %n.val;       - O  (#PCDATA)                          >
<!ATTLIST %n.val;            %a.global;                         >
]]>

<!-- Finally we define the elements specific to this dtd      -->
<!-- 29.1:  The Tagdoc element                                -->
<!ENTITY % tagDoc 'INCLUDE' >
<![ %tagDoc; [
<!ELEMENT %n.tagDoc;    - -  (%n.gi;, (%n.rs)?, %n.desc;, 
                             (%n.attList)?, (%n.exemplum)*, 
                             (%n.remarks)?, (%n.part)?, 
                             (%n.classes)?, (%n.files)?, 
                             (%n.dataDesc)?, (%n.parents)?, 
                             (%n.children)?, %n.elemDecl;, 
                             (%n.attlDecl)?, (%n.ptr)*, 
                             (%n.equiv)*)                       >
<!ATTLIST %n.tagDoc;         %a.global;
          usage              (req | mwa | rec | rwa | opt) 
                                                 opt            >
]]>

<!-- RS and PTR are defined in the core                       -->
<!-- GI is defined above                                      -->
<!ENTITY % desc 'INCLUDE' >
<![ %desc; [
<!ELEMENT %n.desc;      - O  (%paraContent)                     >
<!ATTLIST %n.desc;           %a.global;                         >
]]>

<!ENTITY % attList 'INCLUDE' >
<![ %attList; [
<!ELEMENT %n.attList;   - O  ((%n.attDef)*)                     >
<!ATTLIST %n.attList;        %a.global;                         >
]]>

<!ENTITY % exemplum 'INCLUDE' >
<![ %exemplum; [
<!ELEMENT %n.exemplum;  - -  ((%n.p)*, %n.eg;, (%n.p)*)         >
<!ATTLIST %n.exemplum;       %a.global;                         >
]]>

<!ENTITY % eg 'INCLUDE' >
<![ %eg; [
<!ELEMENT %n.eg;        - -  (#PCDATA)                          >
<!ATTLIST %n.eg;             %a.global;                         >
]]>

<!ENTITY % remarks 'INCLUDE' >
<![ %remarks; [
<!ELEMENT %n.remarks;   - O  (%component.seq)                   >
<!ATTLIST %n.remarks;        %a.global;                         >
]]>

<!ENTITY % part 'INCLUDE' >
<![ %part; [
<!ELEMENT %n.part;      - O  (#PCDATA)                          >
<!ATTLIST %n.part;           %a.global;                         >
]]>

<!ENTITY % classes 'INCLUDE' >
<![ %classes; [
<!ELEMENT %n.classes;   - O  EMPTY                              >
<!ATTLIST %n.classes;        %a.global;
          names              CDATA               #REQUIRED      >
]]>

<!ENTITY % files 'INCLUDE' >
<![ %files; [
<!ELEMENT %n.files;     - O  EMPTY                              >
<!ATTLIST %n.files;          %a.global;
          names              CDATA               #IMPLIED       >
]]>

<!ENTITY % dataDesc 'INCLUDE' >
<![ %dataDesc; [
<!ELEMENT %n.dataDesc;  - O  (%phrase.seq)                      >
<!ATTLIST %n.dataDesc;       %a.global;                         >
]]>

<!ENTITY % parents 'INCLUDE' >
<![ %parents; [
<!ELEMENT %n.parents;   - O  (#PCDATA)                          >
<!ATTLIST %n.parents;        %a.global;                         >
]]>

<!ENTITY % children 'INCLUDE' >
<![ %children; [
<!ELEMENT %n.children;  - O  (#PCDATA)                          >
<!ATTLIST %n.children;       %a.global;                         >
]]>

<!ENTITY % elemDecl 'INCLUDE' >
<![ %elemDecl; [
<!ELEMENT %n.elemDecl;  - O  (#PCDATA)                          >
<!ATTLIST %n.elemDecl;       %a.global;                         >
]]>

<!ENTITY % attlDecl 'INCLUDE' >
<![ %attlDecl; [
<!ELEMENT %n.attlDecl;  - -  (#PCDATA)                          >
<!ATTLIST %n.attlDecl;       %a.global;                         >
]]>

<!ENTITY % equiv 'INCLUDE' >
<![ %equiv; [
<!ELEMENT %n.equiv;     - O  (%specialPara)                     >
<!ATTLIST %n.equiv;          %a.global;
          scheme             CDATA               #REQUIRED      >
]]>

<!-- (end of 29.1)                                            -->
<!-- 29.1.1:  Attribute documentation                         -->
<!ENTITY % attDef 'INCLUDE' >
<![ %attDef; [
<!ELEMENT %n.attDef;    - O  (%n.attName;, (%n.rs)?, %n.desc;, 
                             (%n.dataType;, (%n.valList; | 
                             %n.valDesc;)?), %n.default;, 
                             (%n.eg)?, (%n.remarks)?, 
                             (%n.equiv)*)                       >
<!ATTLIST %n.attDef;         %a.global;
          usage              (req | mwa | rec | rwa | opt) 
                                                 opt            >
]]>

<!ENTITY % attName 'INCLUDE' >
<![ %attName; [
<!ELEMENT %n.attName;   - O  (#PCDATA)                          >
<!ATTLIST %n.attName;        %a.global;                         >
]]>

<!ENTITY % dataType 'INCLUDE' >
<![ %dataType; [
<!ELEMENT %n.dataType;  - O  (#PCDATA)                          >
<!ATTLIST %n.dataType;       %a.global;                         >
]]>

<!ENTITY % valList 'INCLUDE' >
<![ %valList; [
<!ELEMENT %n.valList;   - -  ((%n.val;, %n.desc;)*)             >
<!ATTLIST %n.valList;        %a.global;
          type               (closed | semi | open) 
                                                 open           >
]]>

<!ENTITY % valDesc 'INCLUDE' >
<![ %valDesc; [
<!ELEMENT %n.valDesc;   - O  (%phrase.seq)                      >
<!ATTLIST %n.valDesc;        %a.global;                         >
]]>

<!ENTITY % default 'INCLUDE' >
<![ %default; [
<!ELEMENT %n.default;   - O  (#PCDATA)                          >
<!ATTLIST %n.default;        %a.global;                         >
]]>

<!-- (end of 29.1.1)                                          -->
<!-- 29.2:  Element classes                                   -->
<!ENTITY % classDoc 'INCLUDE' >
<![ %classDoc; [
<!ELEMENT %n.classDoc;  - O  (%n.class;, (%n.rs)?, %n.desc;, 
                             (%n.attList)?, (%n.remarks)?, 
                             (%n.part)?, (%n.classes)?, 
                             (%n.ptr)*, (%n.equiv)*)            >
<!ATTLIST %n.classDoc;       %a.global;
          type               (model | atts | both) 
                                                 #IMPLIED       >
]]>

<!ENTITY % class 'INCLUDE' >
<![ %class; [
<!ELEMENT %n.class;     - O  (#PCDATA)                          >
<!ATTLIST %n.class;          %a.global;                         >
]]>

<!-- all other constituents are defined above                 -->
<!-- (end of 29.2)                                            -->
<!-- 29.3:  Entity Documentation                              -->
<!ENTITY % entDoc 'INCLUDE' >
<![ %entDoc; [
<!ELEMENT %n.entDoc;    - -  (%n.entName;, (%n.rs)?, %n.desc;, 
                             (%n.remarks)?, %n.string;, 
                             (%n.ptr)*, (%n.equiv)*)            >
<!ATTLIST %n.entDoc;         %a.global;
          type               (pe | ge)           #REQUIRED      >
]]>

<!ENTITY % entName 'INCLUDE' >
<![ %entName; [
<!ELEMENT %n.entName;   - O  (#PCDATA)                          >
<!ATTLIST %n.entName;        %a.global;                         >
]]>

<!ENTITY % string 'INCLUDE' >
<![ %string; [
<!ELEMENT %n.string;    - -  (#PCDATA)                          >
<!ATTLIST %n.string;         %a.global;                         >
]]>

<!-- All other constituents are defined above                 -->
<!-- (end of 29.3)                                            -->
<!-- (end of 29)                                              -->
