<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright TEI Consortium. 
Licensed under the GNU General Public License. 
See the file COPYING.txt for details
$Date: 2010-11-04 19:02:24 +0000 (Thu, 04 Nov 2010) $
$Id: moduleRef.xml 8242 2010-11-04 19:02:24Z rahtz $
-->
<elementSpec xmlns="http://www.tei-c.org/ns/1.0" module="tagdocs" xml:id="MODULEREF" ident="moduleRef">
  <gloss>module reference</gloss>
  <gloss version="2007-12-20" xml:lang="kr">모듈 참조</gloss>
  <gloss version="2008-04-06" xml:lang="es">referencia de módulo</gloss>
  <gloss version="2007-06-12" xml:lang="fr">référence de module</gloss>
  <gloss version="2007-11-06" xml:lang="it">riferimento al modulo</gloss>
  <desc>references a module which is to be incorporated into a schema.</desc>
  <desc version="2007-12-20" xml:lang="kr">하나의 스키마로 통합된 모듈을 참조한다.</desc>
  <desc version="2007-05-02" xml:lang="zh-tw">參照一個被併入某一模型的模組。</desc>
  <desc version="2008-04-05" xml:lang="ja">
  スキーマに組み入れられるモジュールを参照する．
  </desc>
  <desc version="2007-06-12" xml:lang="fr">référence un module qui doit être incorporé dans
			un schéma.</desc>
  <desc version="2007-05-04" xml:lang="es">indica un módulo que se ha de incluir al interno de un esquema.</desc>
  <desc version="2007-01-21" xml:lang="it">indica un modulo da includere all'interno di uno schema</desc>
  <classes>
    <memberOf key="model.oddRef"/>
    <memberOf key="att.readFrom"/>
  </classes>
  <content>
    <optional xmlns="http://relaxng.org/ns/structure/1.0">
      <ref name="content"/>
    </optional>
  </content>
  <constraintSpec ident="modref" scheme="isoschematron">
    <constraint>
      <rule xmlns="http://purl.oclc.org/dsdl/schematron" context="tei:moduleRef">
        <report test="* and @key">
	  child elements of moduleRef are only allowed when an external module
	  is being loaded
	</report>
      </rule>
    </constraint>
  </constraintSpec>
  <attList>
    <attList org="choice">
      <attDef ident="include">
        <desc>supplies a list of the elements which are to be copied from the
specified module into the schema being defined.</desc>
        <datatype minOccurs="0" maxOccurs="unbounded">
          <data xmlns="http://relaxng.org/ns/structure/1.0" type="NCName"/>
        </datatype>
      </attDef>
      <attDef ident="except">
        <desc>supplies a list of the elements which are not to be copied from the
specified module into the schema being defined.</desc>
        <datatype minOccurs="0" maxOccurs="unbounded">
          <data xmlns="http://relaxng.org/ns/structure/1.0" type="NCName"/>
        </datatype>
      </attDef>
    </attList>
    <attList org="choice">
      <attDef ident="key" usage="opt">
        <desc>the name of a TEI module</desc>
        <desc version="2008-04-06" xml:lang="es">el nombre de un módulo de TEI</desc>
        <desc version="2008-03-30" xml:lang="fr">le nom d'un module TEI.</desc>
        <desc version="2007-11-06" xml:lang="it">nome di un modulo TEI</desc>
        <datatype>
          <data xmlns="http://relaxng.org/ns/structure/1.0" type="NCName"/>
        </datatype>
      </attDef>
      <attDef ident="url" usage="opt">
        <gloss>uniform resource locator</gloss>
        <gloss version="2008-04-06" xml:lang="es">localizador de recurso uniforme</gloss>
        <gloss version="2008-03-30" xml:lang="fr">URL</gloss>
        <gloss version="2007-11-06" xml:lang="it">URL</gloss>
        <desc>refers to a non-TEI module of RELAX NG code by external location </desc>
        <desc version="2008-04-06" xml:lang="es">se refiere a un módulo no-de-TEI del código de RELAX NG mediante una localización externa </desc>
        <desc version="2008-03-30" xml:lang="fr">fait référence à un module non TEI de code
RELAX NG par une localisation externe.</desc>
        <desc version="2007-11-06" xml:lang="it">indica la collocazione esterna di un modulo non TEI che utilizza il codice RELAX NG</desc>
        <datatype>
          <ref xmlns="http://relaxng.org/ns/structure/1.0" name="data.pointer"/>
        </datatype>
      </attDef>
    </attList>
  </attList>
  <exemplum xml:lang="en">
    <egXML xmlns="http://www.tei-c.org/ns/Examples">
      <moduleRef key="linking"/>
    </egXML>
    <p>This includes all objects available  from  the linking module.</p>
  </exemplum>
  <exemplum version="2008-04-06" xml:lang="fr">
    <egXML xmlns="http://www.tei-c.org/ns/Examples">
      <moduleRef key="linking"/>
    </egXML>
    <p xmlns:teix="http://www.tei-c.org/ns/Examples"> Cela implante le module<gi> linking </gi>.</p>
  </exemplum>
  <exemplum xml:lang="en">
    <egXML xmlns="http://www.tei-c.org/ns/Examples">
      <moduleRef key="linking" exclude="linkGrp link"/>
    </egXML>
    <p>This includes all objects available  from  the linking module
    except for the <gi>link</gi> and <gi>linkGrp</gi> elements.</p>
  </exemplum>
  <exemplum xml:lang="en">
    <egXML xmlns="http://www.tei-c.org/ns/Examples">
      <moduleRef key="linking" exclude="linkGrp link"/>
    </egXML>
    <p>This includes all objects available  from  the linking module
    except for the <gi>link</gi> and <gi>linkGrp</gi> elements.</p>
  </exemplum>
  <exemplum xml:lang="en">
    <egXML xmlns="http://www.tei-c.org/ns/Examples">
      <moduleRef key="linking" include="linkGrp link"/>
    </egXML>
    <p>This includes only the <gi>link</gi> and <gi>linkGrp</gi>
    elements from the linking module.</p>
  </exemplum>
  <exemplum xml:lang="zh-tw">
    <egXML xmlns="http://www.tei-c.org/ns/Examples">
      <moduleRef key="linking"/>
    </egXML>
  </exemplum>
  <remarks>
    <p>If neither <att>include</att> nor <att>exclude</att> is
    supplied, the effect of this element is to make all the declarations
    contained by the referenced module available to the schema being
    compiled. If both attributes are supplied, an ODD
processor should signal an error. </p>
    <p>A TEI module is identified by the name supplied as value for
    the <att>ident</att> attribute on a <gi>moduleSpec</gi>
    element. The <att>source</att> attribute may be used to specify an
    online source from which the specification of that module may be
    read. A URI may alternatively be supplied in the case of a non-TEI
    module, and this is expected to be written as a RELAX NG schema.
    </p>
  </remarks>
  <remarks xml:lang="fr">
    <p>Les modules sont identifiés par le nom fourni comme valeur de l'attribut
                <att>ident</att> dans l'élément <gi>moduleSpec</gi> où ils sont déclarés. Un URI
                peut aussi être indiqué dans le cas d'un module non TEI et l'on s'attend à ce qu'il
                soit écrit comme un schéma RELAX NG. </p>
    <p>La fonction de cet élément est de rendre toutes les déclarations contenues par le module
                référencé disponibles pour le schéma que l'on compile.</p>
  </remarks>
  <remarks xml:lang="ja">
    <p>
    モジュールは，要素<gi>module</gi>の属性<att>ident</att>の値として
  ある名前で指定される．TEIでないモジュールの場合は，URIはで示される．
  このモジュールは，Relax NGスキーマで定義されていることが望まれる．
    </p>
    <p>
    当該要素により，参照されたモジュールの全宣言が，当該スキーマにおい
  て使用可能になることでが期待される．
  </p>
  </remarks>
</elementSpec>
