<?xml version="1.0" encoding="utf-8"?>
<!--
    Copyright TEI Consortium.
    Dual-licensed under CC-by and BSD2 licences
    See the file COPYING.txt for details
    $Date$
    $Id$
-->
<?xml-model href="http://tei.oucs.ox.ac.uk/jenkins/job/TEIP5/lastSuccessfulBuild/artifact/P5/release/xml/tei/odd/p5.nvdl" type="application/xml" schematypens="http://purl.oclc.org/dsdl/nvdl/ns/structure/1.0"?>

<elementSpec xmlns="http://www.tei-c.org/ns/1.0" xmlns:s="http://www.ascc.net/xml/schematron" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:rng="http://relaxng.org/ns/structure/1.0" module="tagdocs" ident="classRef">
  <desc versionDate="2010-07-06" xml:lang="en">points to the specification for an attribute or model class which is to be included in a schema</desc>
  <classes>
    <memberOf key="att.global"/>
<memberOf key="att.repeatable"/>
    <memberOf key="model.oddRef"/>
    <memberOf key="model.contentPart"/>
    <memberOf key="att.readFrom"/>
  </classes>
  <content>
    <rng:empty/>
  </content>
  <attList>
    <attDef ident="key" usage="req">
      <desc versionDate="2010-07-06" xml:lang="en">the identifier used for the required class within the
	source indicated.</desc>
      <datatype>
        <rng:ref name="data.xmlName"/>
      </datatype>
    </attDef>

           <attDef ident="expand" usage="opt">
              <desc versionDate="2013-11-21"  xml:lang="en">indicates how references
	      to this class within a content model should be interpreted.</desc>
              <valList type="closed">
                <valItem ident="alternate">
                  <desc versionDate="2013-11-21" xml:lang="en">any one member of the class may appear</desc>
                </valItem>
                <valItem ident="sequence">
                  <desc  versionDate="2013-11-21" xml:lang="en">a single occurrence
		  of all members of the class may appear in sequence</desc>
                </valItem>
                <valItem ident="sequenceOptional" >
                  <desc  versionDate="2013-11-21" xml:lang="en">a single occurrence of
		  one or more members
		  of the class may appear in sequence
	    </desc>
                </valItem>
                <valItem ident="sequenceOptionalRepeatable">
                  <desc  versionDate="2013-11-21" xml:lang="en">one or more
		  occurrences of one or more members of the class
		  may appear in sequence. </desc>
                </valItem>
                <valItem ident="sequenceRepeatable">
                  <desc   versionDate="2013-11-21" xml:lang="en">one or more
		  occurrences of all members of the class may appear in sequence</desc>
                </valItem>
              </valList>
<remarks xml:lang="en" versionDate="2013-11-20"><p>If the members of the class are <val>a</val>, <val>b</val>
and  <val>c</val>, then a reference to the class within a content
model is understood as being a reference to <val>a|b|c</val> when
<att>expand</att> has the value <val>alternation</val>; to
<val>a,b,c</val> when it has the value <val>sequence</val>; to
<val>(a?,b?,c?)</val> when it has the value
<val>sequenceOptional</val>; to (a*,b*, c*) when it has the value
<val>sequenceOptionalRepeatable</val>; or to (a+,b+,c+) when it has
the value <val>sequenceOptionalRepeatable</val>.</p>
</remarks>            </attDef>
    <attList org="choice">
      <attDef ident="include">
        <desc versionDate="2011-09-21" xml:lang="en">supplies a list of class members which are to be included in the schema being defined.</desc>
        <datatype minOccurs="0" maxOccurs="unbounded">
          <ref xmlns="http://relaxng.org/ns/structure/1.0" name="data.xmlName"/>
        </datatype>
      </attDef>
      <attDef ident="except">
        <desc versionDate="2011-09-21" xml:lang="en">supplies a list of class members which are to be excluded from the schema being defined.</desc>
        <datatype minOccurs="0" maxOccurs="unbounded">
          <ref xmlns="http://relaxng.org/ns/structure/1.0" name="data.xmlName"/>
        </datatype>
      </attDef>     
    </attList>
  </attList>
  <exemplum xml:lang="en">
    <egXML xmlns="http://www.tei-c.org/ns/Examples">
      <schemaSpec ident="myTEIe" start="TEI">
        <moduleRef key="tei"/>
        <moduleRef key="core" include="abbr add core addrLine address author bibl biblScope choice cit corr date del desc divGen editor emph expan foreign gap gloss graphic head hi index item l label lb lg list listBibl  mentioned milestone name note num orig p pb ptr pubPlace publisher q ref reg relatedItem resp respStmt rs sic soCalled sp speaker stage teiCorpus term time title unclear"/>
        <moduleRef key="header" include="authority availability catRef category change classCode classDecl creation distributor edition editionStmt editorialDecl encodingDesc extent fileDesc funder idno keywords langUsage language licence notesStmt principal profileDesc projectDesc publicationStmt refsDecl revisionDesc samplingDecl seriesStmt sourceDesc sponsor taxonomy teiHeader textClass titleStmt"/>
        <moduleRef key="textstructure" include="TEI argument back body byline closer dateline div docAuthor docDate docEdition docImprint docTitle epigraph front group opener postscript salute signed text titlePage titlePart trailer"/>
        <classRef key="att.global.facs"/>
      </schemaSpec>
    </egXML>
  </exemplum>
  <remarks versionDate="2010-07-06" xml:lang="en">
 <!-- p>If neither <att>include</att> nor <att>except</att> is specified, all class members are included in the schema being defined.</p -->
    <p>Attribute and model classes are identified by the name supplied as value for the
    <att>ident</att> attribute on the <gi>classSpec</gi> element in
    which they are declared. All TEI  names are unique; attribute
    class names conventionally begin with the latters <code>att.</code>.
    </p>
  </remarks>
  <listRef>
    <ptr target="#TDCLA"/>
  </listRef>
</elementSpec>
