<schemaSpec>

<schemaSpec> (schema specification) generates a TEI-conformant schema and documentation for it. [2.3 The Encoding Description 22.2 Modules and Schemas 23.5.1 Making a Unified ODD]
Moduletagdocs — Documentation Elements
Attributesatt.global (@xml:id, @n, @xml:lang, @xml:base, @xml:space) (att.global.rendition (@rend, @style, @rendition)) (att.global.linking (@corresp, @synch, @sameAs, @copyOf, @next, @prev, @exclude, @select)) (att.global.analytic (@ana)) (att.global.facs (@facs)) (att.global.change (@change)) (att.global.responsibility (@cert, @resp)) att.identified (@ident, @predeclare, @module) (att.combinable (@mode) (att.deprecated (@validUntil)) ) att.namespaceable (@ns) att.readFrom (@source)
startspecifies entry points to the schema, i.e. which patterns may be used as the root of documents conforming to it.
Status Optional
Datatype 1–∞ occurrences of 

<rng:ref name="data.name"/>
data.name
separated by whitespace
Default TEI
prefixspecifies a default prefix which will be prepended to all patterns relating to TEI elements, unless otherwise stated.
Status Optional
Datatype

<rng:choice>
 <rng:value/>
 <rng:ref name="data.xmlName"/>
</rng:choice>
"" | data.xmlName
Note

Use of this attribute allows an external schema which has an element with the same local name as a TEI element to be mixed in.

targetLang(target language) specifies which language to use when creating the objects in a schema if names for elements or attributes are available in more than one language
Status Optional
Datatype

<rng:ref name="data.language"/>
data.language
docLang(documentation language) specifies which languages to use when creating documentation if the description for an element, attribute, class or macro is available in more than one language
Status Optional
Datatype 1–∞ occurrences of 

<rng:ref name="data.language"/>
data.language
separated by whitespace
Member of
Contained by
May contain
Declaration

<rng:element name="schemaSpec">
 <rng:ref name="att.global.attributes"/>
 <rng:ref name="att.global.rendition.attributes"/>
 <rng:ref name="att.global.linking.attributes"/>
 <rng:ref name="att.global.analytic.attributes"/>
 <rng:ref name="att.global.facs.attributes"/>
 <rng:ref name="att.global.change.attributes"/>
 <rng:ref name="att.global.responsibility.attributes"/>
 <rng:ref name="att.identified.attributes"/>
 <rng:ref name="att.combinable.attributes"/>
 <rng:ref name="att.deprecated.attributes"/>
 <rng:ref name="att.namespaceable.attributes"/>
 <rng:ref name="att.readFrom.attributes"/>
 <rng:optional>
  <rng:attribute name="start"
   a:defaultValue="TEI">

   <rng:list>
    <rng:oneOrMore>
     <rng:ref name="data.name"/>
    </rng:oneOrMore>
   </rng:list>
  </rng:attribute>
 </rng:optional>
 <rng:optional>
  <rng:attribute name="prefix">
   <rng:choice>
    <rng:value/>
    <rng:ref name="data.xmlName"/>
   </rng:choice>
  </rng:attribute>
 </rng:optional>
 <rng:optional>
  <rng:attribute name="targetLang">
   <rng:ref name="data.language"/>
  </rng:attribute>
 </rng:optional>
 <rng:optional>
  <rng:attribute name="docLang">
   <rng:list>
    <rng:oneOrMore>
     <rng:ref name="data.language"/>
    </rng:oneOrMore>
   </rng:list>
  </rng:attribute>
 </rng:optional>
 <rng:group>
  <rng:zeroOrMore>
   <rng:choice>
    <rng:ref name="model.glossLike"/>
    <rng:ref name="model.descLike"/>
   </rng:choice>
  </rng:zeroOrMore>
  <rng:zeroOrMore>
   <rng:choice>
    <rng:ref name="model.oddRef"/>
    <rng:ref name="model.oddDecl"/>
   </rng:choice>
  </rng:zeroOrMore>
 </rng:group>
</rng:element>
element schemaSpec
{
   att.global.attributes,
   att.global.rendition.attributes,
   att.global.linking.attributes,
   att.global.analytic.attributes,
   att.global.facs.attributes,
   att.global.change.attributes,
   att.global.responsibility.attributes,
   att.identified.attributes,
   att.combinable.attributes,
   att.deprecated.attributes,
   att.namespaceable.attributes,
   att.readFrom.attributes,
   attribute start { list { data.name+ } }?,
   attribute prefix { "" | data.xmlName }?,
   attribute targetLang { data.language }?,
   attribute docLang { list { data.language+ } }?,
   ( ( model.glossLike | model.descLike )*, ( model.oddRef | model.oddDecl )* )
}
Example
<schemaSpec prefix="TEI_ident="testsvg"
 start="TEI svg">

 <moduleRef source="tei:current"
  key="header"/>

 <moduleRef key="core"/>
 <moduleRef key="drama"/>
 <moduleRef url="svg11.rng"/>
</schemaSpec>

This schema combines elements from the current versions of the drama and core modules, the current release version of the header module, and elements from an existing RELAXNG schema available from the URL indicated.

Note

A schemaSpec combines references to modules, individual element or macro declarations, and specification groups together to form a unified schema. The processing of the schemaSpec element must resolve any conflicts amongst the declarations it contains or references. Different ODD processors may generate schemas and documentation using different concrete syntaxes.