<?xml version="1.0"?>
<rng:grammar xmlns:rng="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<!--Schema generated 2006-01-30T20:23:55Z
Copyright 2005 TEI Consortium.
This is free software; you can redistribute it and/or
	    modify it under the terms of the GNU General Public
	    License as published by the Free Software Foundation;
	    either version 2 of the License, or (at your option) any
	    later version.
This material is distributed in the hope that it will be
	    useful, but WITHOUT ANY WARRANTY; without even the implied
	    warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
	    PURPOSE. See the GNU General Public License for more
	    details.
You should have received a copy of the GNU General Public
	    License along with this file; if not, write to the Free
	    Software Foundation, Inc., 59 Temple Place, Suite 330,
	    Boston, MA 02111-1307, USA.
To contact the TEI Consortium use the following addresses.
	    For general (non-technical) enquiries: 
		  target="mailto:info@tei-c.org"/>info@tei-c.orgFor membership enquiries: membership@tei-c.orgFor technical enquiries, particularly about the
		Guidelines, DTDs, schemas, or software available from
		the TEI-C: editors@tei-c.orgFor up to date information, consult the TEI web site at http://www.tei-c.org/P5-->
<!--Definitions from module nets-->
<!--Set predeclared macros-->
<!--0. predeclared macros-->
<!--1. classes-->
<!--2. elements-->
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="arc">
    <element name="arc">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">encodes an arc, the connection from one node to another in a graph.</a:documentation>
      <ref name="arc.content"/>
      <ref name="arc.attributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="arc.content">
    <empty xmlns:rng="http://relaxng.org/ns/structure/1.0"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="arc.attributes">
    <ref name="att.global.attributes"/>
    <optional>
      <attribute name="label">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a label for an arc.</a:documentation>
        <text/>
      </attribute>
    </optional>
    <optional>
      <attribute name="label2">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a second label for an arc.</a:documentation>
        <text/>
      </attribute>
    </optional>
    <attribute name="from">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the identifier of the node which is adjacent from this arc.</a:documentation>
      <ref name="data.pointer"/>
    </attribute>
    <attribute name="to">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the identifier of the node which is adjacent to this arc.</a:documentation>
      <ref name="data.pointer"/>
    </attribute>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="eLeaf">
    <element name="eLeaf">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(Leaf of an embedding tree.) provides explicitly for a leaf of an embedding tree, which may also
be encoded with the eTree element.</a:documentation>
      <ref name="eLeaf.content"/>
      <ref name="eLeaf.attributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="eLeaf.content">
    <empty xmlns:rng="http://relaxng.org/ns/structure/1.0"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="eLeaf.attributes">
    <ref name="att.global.attributes"/>
    <optional>
      <attribute name="label">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a label for a leaf of an embedding tree.</a:documentation>
        <text/>
      </attribute>
    </optional>
    <optional>
      <attribute name="value">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides the value of an embedding leaf, which is a feature
structure or other analytic element.</a:documentation>
        <ref name="data.pointer"/>
      </attribute>
    </optional>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="eTree">
    <element name="eTree">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(embedding tree) provides an alternative to tree element for representing
ordered rooted tree structures.</a:documentation>
      <ref name="eTree.content"/>
      <ref name="eTree.attributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="eTree.content">
    <zeroOrMore xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:choice>
        <rng:ref name="eTree"/>
        <rng:ref name="triangle"/>
        <rng:ref name="eLeaf"/>
      </rng:choice>
    </zeroOrMore>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="eTree.attributes">
    <ref name="att.global.attributes"/>
    <optional>
      <attribute name="label">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a label for an embedding tree.</a:documentation>
        <text/>
      </attribute>
    </optional>
    <optional>
      <attribute name="value">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides the value of an embedding tree, which is a feature
structure or other analytic element.</a:documentation>
        <ref name="data.pointer"/>
      </attribute>
    </optional>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.divPart" combine="choice">
    <ref name="eTree"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="forest">
    <element name="forest">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides for groups of rooted trees.</a:documentation>
      <ref name="forest.content"/>
      <ref name="forest.attributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="forest.content">
    <oneOrMore xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:choice>
        <rng:ref name="tree"/>
        <rng:ref name="eTree"/>
        <rng:ref name="triangle"/>
      </rng:choice>
    </oneOrMore>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="forest.attributes">
    <ref name="att.global.attributes"/>
    <optional>
      <attribute name="type">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the type of the forest.</a:documentation>
        <ref name="data.enumerated"/>
      </attribute>
    </optional>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="forestGrp">
    <element name="forestGrp">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(Forest group) provides for groups of forests.</a:documentation>
      <ref name="forestGrp.content"/>
      <ref name="forestGrp.attributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="forestGrp.content">
    <oneOrMore xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:ref name="forest"/>
    </oneOrMore>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="forestGrp.attributes">
    <ref name="att.global.attributes"/>
    <optional>
      <attribute name="type">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">identifies the type of the forest group.</a:documentation>
        <ref name="data.enumerated"/>
      </attribute>
    </optional>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="graph">
    <element name="graph">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">encodes a graph, which is a collection of nodes, and arcs which
connect the nodes.</a:documentation>
      <ref name="graph.content"/>
      <ref name="graph.attributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="graph.content">
    <choice xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:group>
        <rng:oneOrMore>
          <rng:ref name="node"/>
          <rng:zeroOrMore>
            <rng:ref name="model.global"/>
          </rng:zeroOrMore>
        </rng:oneOrMore>
        <rng:zeroOrMore>
          <rng:ref name="arc"/>
          <rng:zeroOrMore>
            <rng:ref name="model.global"/>
          </rng:zeroOrMore>
        </rng:zeroOrMore>
      </rng:group>
      <rng:group>
        <rng:oneOrMore>
          <rng:ref name="arc"/>
          <rng:zeroOrMore>
            <rng:ref name="model.global"/>
          </rng:zeroOrMore>
        </rng:oneOrMore>
        <rng:oneOrMore>
          <rng:ref name="node"/>
          <rng:zeroOrMore>
            <rng:ref name="model.global"/>
          </rng:zeroOrMore>
        </rng:oneOrMore>
      </rng:group>
    </choice>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="graph.attributes">
    <ref name="att.global.attributes"/>
    <optional>
      <attribute name="type">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">describes the type of graph.</a:documentation>
        <ref name="data.enumerated"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="label">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a label for a graph.</a:documentation>
        <text/>
      </attribute>
    </optional>
    <optional>
      <attribute name="order">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">states the order of the graph, i.e., the number of its nodes.</a:documentation>
        <ref name="data.count"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="size">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">states the size of the graph, i.e., the number of its arcs.</a:documentation>
        <ref name="data.count"/>
      </attribute>
    </optional>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.divPart" combine="choice">
    <ref name="graph"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="iNode">
    <element name="iNode">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(intermediate (or internal) node) represents an intermediate (or internal) node of a tree.</a:documentation>
      <ref name="iNode.content"/>
      <ref name="iNode.attributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="iNode.content">
    <empty xmlns:rng="http://relaxng.org/ns/structure/1.0"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="iNode.attributes">
    <ref name="att.global.attributes"/>
    <optional>
      <attribute name="label">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a label for an intermediate node.</a:documentation>
        <text/>
      </attribute>
    </optional>
    <optional>
      <attribute name="value">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides the value of an intermediate node, which is a feature
structure or other analytic element.</a:documentation>
        <ref name="data.pointer"/>
      </attribute>
    </optional>
    <attribute name="children">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a list of identifiers of the elements which are the children of
the intermediate node.</a:documentation>
      <ref name="data.pointers"/>
    </attribute>
    <optional>
      <attribute name="parent">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides the identifier of the element which is the parent of this node.</a:documentation>
        <ref name="data.pointer"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="ord">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates whether or not the internal node is ordered.</a:documentation>
        <choice>
          <value>true</value>
          <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(indicates that the children of the intermediate node are ordered.) </a:documentation>
          <value>false</value>
          <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(indicates that the children of the intermediate node are unordered.) </a:documentation>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="follow">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides an identifier of
the element which this node
follows.</a:documentation>
        <ref name="data.pointer"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="outDegree">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the out degree of an intermediate node, the number of its
children.</a:documentation>
        <ref name="data.count"/>
      </attribute>
    </optional>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="leaf">
    <element name="leaf">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">encodes the leaves (terminal nodes) of a tree.</a:documentation>
      <ref name="leaf.content"/>
      <ref name="leaf.attributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="leaf.content">
    <empty xmlns:rng="http://relaxng.org/ns/structure/1.0"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="leaf.attributes">
    <ref name="att.global.attributes"/>
    <optional>
      <attribute name="label">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a label for a leaf.</a:documentation>
        <text/>
      </attribute>
    </optional>
    <optional>
      <attribute name="value">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides the value of a leaf, which is a feature
structure or other analytic element.</a:documentation>
        <ref name="data.pointer"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="parent">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides the identifier of parent of a leaf.</a:documentation>
        <ref name="data.pointer"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="follow">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides an identifier of an element which this leaf follows.</a:documentation>
        <ref name="data.pointer"/>
      </attribute>
    </optional>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="node">
    <element name="node">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">encodes a node, a possibly labeled point in a graph.</a:documentation>
      <ref name="node.content"/>
      <ref name="node.attributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="node.content">
    <empty xmlns:rng="http://relaxng.org/ns/structure/1.0"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="node.attributes">
    <ref name="att.global.attributes"/>
    <optional>
      <attribute name="label">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a label for a node.</a:documentation>
        <text/>
      </attribute>
    </optional>
    <optional>
      <attribute name="label2">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a second label for a node.</a:documentation>
        <text/>
      </attribute>
    </optional>
    <optional>
      <attribute name="value">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides the value of a node, which is a feature structure or
other analytic element.</a:documentation>
        <ref name="data.pointer"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="type">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a type for a node.</a:documentation>
        <ref name="data.enumerated"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="adjTo">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the identifiers of the nodes which are adjacent to the current node.</a:documentation>
        <ref name="data.pointers"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="adjFrom">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the identifiers of the nodes which are adjacent from the current
node.</a:documentation>
        <ref name="data.pointers"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="adj">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the identifiers of the nodes which are both adjacent to and
adjacent from the current node.</a:documentation>
        <ref name="data.pointers"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="inDegree">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the in degree of the node, the number of nodes which
are adjacent from the given node.</a:documentation>
        <ref name="data.count"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="outDegree">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the out degree of the node, the number of nodes which
are adjacent to the given node.</a:documentation>
        <ref name="data.count"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="degree">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the degree of the node, the number of arcs with which
the node is incident.</a:documentation>
        <ref name="data.count"/>
      </attribute>
    </optional>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="root">
    <element name="root">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(root node) represents the root node of a tree.</a:documentation>
      <ref name="root.content"/>
      <ref name="root.attributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="root.content">
    <empty xmlns:rng="http://relaxng.org/ns/structure/1.0"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="root.attributes">
    <ref name="att.global.attributes"/>
    <optional>
      <attribute name="label">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a label for a root node.</a:documentation>
        <text/>
      </attribute>
    </optional>
    <optional>
      <attribute name="value">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides the value of the root, which is a feature structure or
other analytic element.</a:documentation>
        <ref name="data.pointer"/>
      </attribute>
    </optional>
    <attribute name="children">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides a list of identifiers of the elements which are the children of
the root node.</a:documentation>
      <ref name="data.pointers"/>
    </attribute>
    <optional>
      <attribute name="ord">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">indicates whether or not the root is ordered.</a:documentation>
        <choice>
          <value>true</value>
          <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(indicates that the children of the root are ordered.) </a:documentation>
          <value>false</value>
          <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(indicates that the children of the root are unordered.) </a:documentation>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="outDegree">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the out degree of the root, the number of its children.</a:documentation>
        <ref name="data.count"/>
      </attribute>
    </optional>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="tree">
    <element name="tree">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">encodes a tree, which is made up of a root, internal nodes,
leaves, and arcs from root to leaves.</a:documentation>
      <ref name="tree.content"/>
      <ref name="tree.attributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="tree.content">
    <group xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:zeroOrMore>
        <rng:choice>
          <rng:ref name="leaf"/>
          <rng:ref name="iNode"/>
        </rng:choice>
      </rng:zeroOrMore>
      <rng:ref name="root"/>
      <rng:zeroOrMore>
        <rng:choice>
          <rng:ref name="leaf"/>
          <rng:ref name="iNode"/>
        </rng:choice>
      </rng:zeroOrMore>
    </group>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="tree.attributes">
    <ref name="att.global.attributes"/>
    <optional>
      <attribute name="label">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a label for a tree.</a:documentation>
        <text/>
      </attribute>
    </optional>
    <optional>
      <attribute name="arity">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the maximum number of children of the root and internal
nodes of the tree.</a:documentation>
        <ref name="data.count"/>
      </attribute>
    </optional>
    <attribute xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" name="ord" a:defaultValue="true">
      <a:documentation>indicates whether or not the tree is ordered, or if it is
partially ordered.</a:documentation>
      <choice>
        <value>true</value>
        <a:documentation>(indicates that all of the branching nodes of the tree are ordered.) </a:documentation>
        <value>partial</value>
        <a:documentation>(indicates that some of the branching nodes of the tree are ordered
and some are unordered.) </a:documentation>
        <value>false</value>
        <a:documentation>(indicates that all of the branching nodes of the tree are
unordered.) </a:documentation>
      </choice>
    </attribute>
    <optional>
      <attribute name="order">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives the order of the tree, i.e., the number of its nodes.</a:documentation>
        <ref name="data.count"/>
      </attribute>
    </optional>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="model.divPart" combine="choice">
    <ref name="tree"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="triangle">
    <element name="triangle">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(Underspecified embedding tree, so called because of its
characteristic shape when drawn.) provides for an underspecified eTree, that is,
an eTree with information left out.</a:documentation>
      <ref name="triangle.content"/>
      <ref name="triangle.attributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="triangle.content">
    <zeroOrMore xmlns:rng="http://relaxng.org/ns/structure/1.0">
      <rng:choice>
        <rng:ref name="eTree"/>
        <rng:ref name="triangle"/>
        <rng:ref name="eLeaf"/>
      </rng:choice>
    </zeroOrMore>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="triangle.attributes">
    <ref name="att.global.attributes"/>
    <optional>
      <attribute name="label">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">gives a label for an underspecified embedding tree.</a:documentation>
        <text/>
      </attribute>
    </optional>
    <optional>
      <attribute name="value">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">provides the value of a triangle, which is the identifier of a feature
structure or other analytic element.</a:documentation>
        <ref name="data.pointer"/>
      </attribute>
    </optional>
    <empty/>
  </define>
<!--3. macros-->
</rng:grammar>
