<?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 2009-01-31T16:40:31Z
Edition: 1.3.0. Last updated on February 1st 2009.
Copyright 2009 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.
A copy of the GNU General Public
	    License is stored on the TEI web site
	    along with this file; you can also contact the Free
	    Software Foundation, Inc., 59 Temple Place, Suite 330,
	    Boston, MA 02111-1307, USA, for a copy.
For information about the TEI, including contact
		details, consult the TEI web
	      site at http://www.tei-c.org/. 
		Character and glyph documentation-->
  <!--Definitions from module gaiji-->
  <!--Set global predeclared macros-->
  <!--Set predeclared macros-->
  <!--0. predeclared macros-->
  <!--1. classes-->
  <!--2. elements-->
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="char">
    <element name="char">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(character) provides descriptive information about a character. </a:documentation>
      <ref name="char.content"/>
      <ref name="char.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="char.content">
    <rng:group>
      <rng:optional>
        <rng:ref name="charName"/>
      </rng:optional>
      <rng:zeroOrMore>
        <rng:ref name="model.glossLike"/>
      </rng:zeroOrMore>
      <rng:zeroOrMore>
        <rng:ref name="charProp"/>
      </rng:zeroOrMore>
      <rng:zeroOrMore>
        <rng:ref name="mapping"/>
      </rng:zeroOrMore>
      <rng:zeroOrMore>
        <rng:ref name="model.graphicLike"/>
      </rng:zeroOrMore>
      <rng:zeroOrMore>
        <rng:ref name="model.noteLike"/>
      </rng:zeroOrMore>
    </rng:group>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="char.localattributes">
    <rng:ref name="att.global.attributes"/>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="charDecl">
    <element name="charDecl">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(character declarations) provides information about nonstandard characters and glyphs. </a:documentation>
      <ref name="charDecl.content"/>
      <ref name="charDecl.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="charDecl.content">
    <rng:group>
      <rng:optional>
        <rng:ref name="desc"/>
      </rng:optional>
      <rng:oneOrMore>
        <rng:choice>
          <rng:ref name="char"/>
          <rng:ref name="glyph"/>
        </rng:choice>
      </rng:oneOrMore>
    </rng:group>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="charDecl.localattributes">
    <rng:ref name="att.global.attributes"/>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="charName">
    <element name="charName">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(character name) contains the name of a character, expressed following Unicode conventions. </a:documentation>
      <ref name="charName.content"/>
      <ref name="charName.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="charName.content">
    <rng:text/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="charName.localattributes">
    <rng:ref name="att.global.attributes"/>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="charProp">
    <element name="charProp">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(character property) provides a name and value for some property of the parent
character or glyph. </a:documentation>
      <ref name="charProp.content"/>
      <ref name="charProp.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="charProp.content">
    <rng:group>
      <rng:choice>
        <rng:ref name="unicodeName"/>
        <rng:ref name="localName"/>
      </rng:choice>
      <rng:ref name="value"/>
    </rng:group>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="charProp.localattributes">
    <rng:ref name="att.global.attributes"/>
    <ref name="att.typed.attributes"/>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="g">
    <element name="g">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(character or glyph) represents a non-standard character or glyph.</a:documentation>
      <ref name="g.content"/>
      <ref name="g.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="g.content">
    <rng:text/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="g.localattributes">
    <rng:ref name="att.global.attributes"/>
    <ref name="att.typed.attributes"/>
    <rng:optional>
      <rng:attribute name="ref">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">points to a description of the  character or glyph intended.</a:documentation>
        <ref name="data.pointer"/>
      </rng:attribute>
    </rng:optional>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="glyph">
    <element name="glyph">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(character glyph) provides descriptive information about a character glyph. </a:documentation>
      <ref name="glyph.content"/>
      <ref name="glyph.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="glyph.content">
    <rng:group>
      <rng:optional>
        <rng:ref name="glyphName"/>
      </rng:optional>
      <rng:zeroOrMore>
        <rng:ref name="model.glossLike"/>
      </rng:zeroOrMore>
      <rng:zeroOrMore>
        <rng:ref name="charProp"/>
      </rng:zeroOrMore>
      <rng:zeroOrMore>
        <rng:ref name="mapping"/>
      </rng:zeroOrMore>
      <rng:zeroOrMore>
        <rng:ref name="model.graphicLike"/>
      </rng:zeroOrMore>
      <rng:zeroOrMore>
        <rng:ref name="model.noteLike"/>
      </rng:zeroOrMore>
    </rng:group>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="glyph.localattributes">
    <rng:ref name="att.global.attributes"/>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="glyphName">
    <element name="glyphName">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(character glyph name) contains the name of a glyph, expressed following Unicode
conventions for character names. </a:documentation>
      <ref name="glyphName.content"/>
      <ref name="glyphName.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="glyphName.content">
    <rng:text/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="glyphName.localattributes">
    <rng:ref name="att.global.attributes"/>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="localName">
    <element name="localName">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(locally-defined property name) contains a locally defined name for some property. </a:documentation>
      <ref name="localName.content"/>
      <ref name="localName.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="localName.content">
    <rng:text/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="localName.localattributes">
    <rng:ref name="att.global.attributes"/>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="mapping">
    <element name="mapping">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(character mapping) contains one or more
	 characters which are related to the parent character or glyph
	 in some respect, as specified by the type
	 attribute.
</a:documentation>
      <ref name="mapping.content"/>
      <ref name="mapping.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="mapping.content">
    <rng:ref name="macro.xtext"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="mapping.localattributes">
    <rng:ref name="att.global.attributes"/>
    <ref name="att.typed.attributes"/>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="unicodeName">
    <element name="unicodeName">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(unicode property name) contains the name of a registered Unicode normative or
informative property. </a:documentation>
      <ref name="unicodeName.content"/>
      <ref name="unicodeName.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="unicodeName.content">
    <rng:text/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="unicodeName.localattributes">
    <rng:ref name="att.global.attributes"/>
    <rng:optional>
      <rng:attribute name="version">
        <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">specifies the version number of the Unicode Standard in
        which this property name is defined.</a:documentation>
        <ref name="data.numeric"/>
      </rng:attribute>
    </rng:optional>
    <empty/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="value">
    <element name="value">
      <a:documentation xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0">(value) contains a single value for some property, attribute, or other
  analysis.</a:documentation>
      <ref name="value.content"/>
      <ref name="value.localattributes"/>
    </element>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="value.content">
    <rng:ref name="macro.xtext"/>
  </define>
  <define xmlns="http://relaxng.org/ns/structure/1.0" name="value.localattributes">
    <rng:ref name="att.global.attributes"/>
    <empty/>
  </define>
  <!--3. macros-->
</rng:grammar>
