<moduleRef>

<moduleRef> (module reference) references a module which is to be incorporated into a schema.
Module tagdocs — 22 Documentation Elements
In addition to global attributes In addition to global attributes
key the name of a TEI module
Status Optional
Datatype

<rng:data type="NCName"/>
xsd:NCName
url (uniform resource locator) refers to a non-TEI module of RELAX NG code by external location
Status Optional
Datatype

<rng:ref name="data.pointer"/>
data.pointer
Used by
May contain
tagdocs: content
Declaration

<rng:element name="moduleRef">
 <rng:ref name="att.global.attributes"/>
 <rng:choice>
  <rng:optional>
   <rng:attribute name="key">
    <rng:data type="NCName"/>
   </rng:attribute>
  </rng:optional>
  <rng:optional>
   <rng:attribute name="url">
    <rng:ref name="data.pointer"/>
   </rng:attribute>
  </rng:optional>
 </rng:choice>
 <rng:optional>
  <rng:ref name="content"/>
 </rng:optional>
</rng:element>
element moduleRef
{
   att.global.attributes,
   ( attribute key { xsd:NCName }? | attribute url { data.pointer }? ),
   content?
}

<s:rule context="tei:moduleRef">
<s:report test="* and @key">child elements of moduleRef are only allowed when an external module
is being loaded
</s:report></s:rule>
Example
<moduleRef key="linking"/>

This embeds the linking module.

Note
Modules are identified by the name supplied as value for the ident attribute on the moduleSpec element in which they are declared. A URI may also be supplied in the case of a non-TEI module, and this is expected to be written as a RELAX NG schema.
The effect of this element is to make all the declarations contained by the referenced module available to the schema being compiled.