<schemaSpec>

<schemaSpec> (spécification de schéma) génère un schéma conforme à la TEI et la documentation qui l'accompagne. [2.3 The Encoding Description 22.2 Modules and Schemas 23.5.1 Making a Unified ODD]
Moduletagdocs — Documentation Elements
Attributsatt.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, @status) (att.combinable (@mode) (att.deprecated (@validUntil)) ) att.namespaceable (@ns) att.readFrom (@source)
startprécise les points d'accès au schéma, i.e. quels sont les éléments permis comme racine des documents XML qui se conforment à ce schéma.
Statut Optionel
Type de données 1–∞ occurrences de 

<rng:ref name="data.name"/>
data.name
séparé par un espace
Valeur par défaut TEI
prefixprécise un préfixe qui sera ajouté à tous les modèles de définition des éléments de la TEI. Cela autorise l'introduction des schémas externes ayant des éléments de même nom que ceux de la TEI
Statut Optionel
Type de données

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

Les deux-points, bien qu'ils soient permis à l'intérieur de la valeur, provoqueront la génération d'un schéma invalide.

targetLang(langue cible) lorsque des noms pour un élément ou pour un attribut sont disponibles en plusieurs langues, précise quelle langue utiliser lors de la création d'objets dans un schéma .
Statut Optionel
Type de données

<rng:ref name="data.language"/>
data.language
docLang(langue de documentation) lorsque la description pour un élément, un attribut, une classe ou une macro est disponible en plusieurs langues, précise quelle langue utiliser lors de la création de la documentation.
Statut Optionel
Type de données 1–∞ occurrences de 

<rng:ref name="data.language"/>
data.language
séparé par un espace
Membre du
Contenu dans
Peut contenir
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 )* )
}
Exemple
<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

Un schéma combine des références aux modules ou aux groupes de spécifications avec d'autres déclarations atomiques. Le traitement d'un élément de schéma doit résoudre tous les conflits entre les déclarations qu'il contient ou les références. Des processeurs ODD différents peuvent générer des schémas et une documentation en utilisant différentes syntaxes concrètes.