<!-- teinet2.dtd:  written by OddDTD 1999-05-18               -->

<!-- 21:  Graphs, networks and trees                          -->
<!-- 21.1:  Graphs                                            -->
<!ENTITY % graph 'INCLUDE' >
<![ %graph; [
<!ELEMENT %n.graph;     - -  (((%n.node)+, (%n.arc)*) | 
                             ((%n.arc)*, (%n.node)+))           >
<!ATTLIST %n.graph;          %a.global;
          label              CDATA               #IMPLIED
          order              NUMBER              #IMPLIED
          size               NUMBER              #IMPLIED
          type               CDATA               #IMPLIED
          TEIform            CDATA               'graph'        >
]]>

<!ENTITY % node 'INCLUDE' >
<![ %node; [
<!ELEMENT %n.node;      - O  EMPTY                              >
<!ATTLIST %n.node;           %a.global;
          label              CDATA               #IMPLIED
          label2             CDATA               #IMPLIED
          value              IDREF               #IMPLIED
          outDegree          NUMBER              #IMPLIED
          adjTo              IDREFS              #IMPLIED
          adjFrom            IDREFS              #IMPLIED
          inDegree           NUMBER              #IMPLIED
          type               CDATA               #IMPLIED
          adj                IDREFS              #IMPLIED
          degree             NUMBER              #IMPLIED
          TEIform            CDATA               'node'         >
]]>

<!ENTITY % arc 'INCLUDE' >
<![ %arc; [
<!ELEMENT %n.arc;       - O  EMPTY                              >
<!ATTLIST %n.arc;            %a.global;
          label              CDATA               #IMPLIED
          to                 IDREF               #REQUIRED
          label2             CDATA               #IMPLIED
          from               IDREF               #REQUIRED
          TEIform            CDATA               'arc'          >
]]>

<!-- (end of 21.1)                                            -->
<!-- 21.2:  Trees (basic method)                              -->
<!ENTITY % tree 'INCLUDE' >
<![ %tree; [
<!ELEMENT %n.tree;      - -  ((%n.leaf; | %n.iNode;)*, 
                             %n.root;, (%n.leaf; | %n.iNode;)*) 
                                                                >
<!ATTLIST %n.tree;           %a.global;
          label              CDATA               #IMPLIED
          order              NUMBER              #IMPLIED
          ord                (Y | N | partial)   Y
          arity              NUMBER              #IMPLIED
          TEIform            CDATA               'tree'         >
]]>

<!ENTITY % root 'INCLUDE' >
<![ %root; [
<!ELEMENT %n.root;      - O  EMPTY                              >
<!ATTLIST %n.root;           %a.global;
          label              CDATA               #IMPLIED
          value              IDREF               #IMPLIED
          children           IDREFS              #IMPLIED
          outDegree          NUMBER              #IMPLIED
          ord                (Y | N)             #IMPLIED
          TEIform            CDATA               'root'         >
]]>

<!ENTITY % iNode 'INCLUDE' >
<![ %iNode; [
<!ELEMENT %n.iNode;     - O  EMPTY                              >
<!ATTLIST %n.iNode;          %a.global;
          parent             IDREF               #IMPLIED
          label              CDATA               #IMPLIED
          follow             IDREF               #IMPLIED
          value              IDREF               #IMPLIED
          children           IDREFS              #REQUIRED
          outDegree          NUMBER              #IMPLIED
          ord                (Y | N)             #IMPLIED
          TEIform            CDATA               'iNode'        >
]]>

<!ENTITY % leaf 'INCLUDE' >
<![ %leaf; [
<!ELEMENT %n.leaf;      - O  EMPTY                              >
<!ATTLIST %n.leaf;           %a.global;
          parent             IDREF               #IMPLIED
          label              CDATA               #IMPLIED
          follow             IDREF               #IMPLIED
          value              IDREF               #IMPLIED
          TEIform            CDATA               'leaf'         >
]]>

<!-- (end of 21.2)                                            -->
<!-- 21.3:  Trees (alternate method)                          -->
<!ENTITY % eTree 'INCLUDE' >
<![ %eTree; [
<!ELEMENT %n.eTree;     - -  ((%n.eTree; | %n.triangle; | 
                             %n.eLeaf; )*)                      >
<!ATTLIST %n.eTree;          %a.global;
          label              CDATA               #IMPLIED
          value              IDREF               #IMPLIED
          TEIform            CDATA               'eTree'        >
]]>

<!ENTITY % triangle 'INCLUDE' >
<![ %triangle; [
<!ELEMENT %n.triangle;  - -  ((%n.eTree; | %n.triangle; | 
                             %n.eLeaf;)*)                       >
<!ATTLIST %n.triangle;       %a.global;
          label              CDATA               #IMPLIED
          value              IDREF               #IMPLIED
          TEIform            CDATA               'triangle'     >
]]>

<!ENTITY % eLeaf 'INCLUDE' >
<![ %eLeaf; [
<!ELEMENT %n.eLeaf;     - O  EMPTY                              >
<!ATTLIST %n.eLeaf;          %a.global;
          label              CDATA               #IMPLIED
          value              IDREF               #IMPLIED
          TEIform            CDATA               'eLeaf'        >
]]>

<!ENTITY % forest 'INCLUDE' >
<![ %forest; [
<!ELEMENT %n.forest;    - -  ((%n.tree; | %n.eTree; | 
                             %n.triangle;)+)                    >
<!ATTLIST %n.forest;         %a.global;
          type               CDATA               #IMPLIED
          TEIform            CDATA               'forest'       >
]]>

<!ENTITY % forestGrp 'INCLUDE' >
<![ %forestGrp; [
<!ELEMENT %n.forestGrp; - -  ((%n.forest;)+)                    >
<!ATTLIST %n.forestGrp;      %a.global;
          type               CDATA               #IMPLIED
          TEIform            CDATA               'forestGrp'    >
]]>

<!-- (end of 21.3)                                            -->
<!-- (end of 21)                                              -->
