<schemaSpec>

<schemaSpec> (spécification de schéma) génère un schéma conforme à la TEI et la documentation qui l'accompagne.
Module tagdocs — 22 Documentation Elements
En complément des attributs globaux att.identified (@ident, @predeclare, @module, @mode)
start pré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 of 

<rng:ref name="data.name"/>
data.name
séparé par un espace
ns (espace de nommage) précise l'espace de noms par défaut (s'il existe) qui s'applique aux composants du schéma.
Statut Optionel
Type de données

<rng:ref name="data.namespace"/>
data.namespace
prefix pré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.name"/>
</rng:choice>
"" | data.name
Note
Les deux-points, bien qu'ols 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 of 

<rng:ref name="data.language"/>
data.language
séparé par un espace
Utilisé par
Peut contenir
Declaration

<rng:element name="schemaSpec">
 <rng:ref name="att.global.attributes"/>
 <rng:ref name="att.identified.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="ns"
    a:defaultValue="http://www.tei-c.org/ns/1.0">

   <rng:ref name="data.namespace"/>
  </rng:attribute>
 </rng:optional>
 <rng:optional>
  <rng:attribute name="prefix">
   <rng:choice>
    <rng:value/>
    <rng:ref name="data.name"/>
   </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:ref name="model.glossLike"/>
  </rng:zeroOrMore>
  <rng:zeroOrMore>
   <rng:choice>
    <rng:ref name="moduleRef"/>
    <rng:ref name="specGrpRef"/>
    <rng:ref name="model.oddDecl"/>
   </rng:choice>
  </rng:zeroOrMore>
  <rng:zeroOrMore>
   <rng:ref name="constraintSpec"/>
  </rng:zeroOrMore>
 </rng:group>
</rng:element>
element schemaSpec
{
   att.global.attributes,
   att.identified.attributes,
   attribute start { list { data.name+ } }?,
   attribute ns { data.namespace }?,
   attribute prefix { "" | data.name }?,
   attribute targetLang { data.language }?,
   attribute docLang { list { data.language+ } }?,
   (
      model.glossLike*,
      ( moduleRef | specGrpRef | model.oddDecl )*,
      constraintSpec*
   )
}
Exemple
<schemaSpec prefix="TEI_" ident="testsvg" start="TEI svg">
 <moduleRef key="header"/>
 <moduleRef key="core"/>
 <moduleRef key="tei"/>
 <moduleRef key="textstructure"/>
 <moduleRef url="svg11.rng"/>
</schemaSpec>
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.