<schemaSpec>

<schemaSpec> (schema specification) 建立一個符合TEI標準的模型以及該模型文件。 [2.3 The Encoding Description 22.2 Modules and Schemas 23.5.1 Making a Unified ODD]
組件tagdocs — Documentation Elements
屬性att.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)
start指出該模型的初步條件,例如在符合該模型標準的文件中,那些元素可做為文件的根元素。
狀態 非必備的
資料類型 1–∞ 次可出現: 

<rng:ref name="data.name"/>
data.name
以空白鍵隔開
預設值 TEI
prefix指明一個附加在所有和TEI元素相關的模式中的前綴。這使得外部模型可以和TEI結合,這些外部模型具有和TEI元素名稱相同的元素。
狀態 非必備的
資料類型

<rng:choice>
 <rng:value/>
 <rng:ref name="data.xmlName"/>
</rng:choice>
"" | data.xmlName
targetLang(target language) 若元素或屬性名稱所使用的語言有一種以上,說明建立文件模型時要使用那一種語言。
狀態 非必備的
資料類型

<rng:ref name="data.language"/>
data.language
docLang(documentation language) 若元素、屬性、元素集或巨集指令描述所使用的語言有一種以上,說明建立文件時要使用那一種語言。
狀態 非必備的
資料類型 1–∞ 次可出現: 

<rng:ref name="data.language"/>
data.language
以空白鍵隔開
俱乐部会员
可包含在於
可包含
宣告

<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 )* )
}
例子
<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.