<classSpec>

<classSpec> (spécification de classe) contient des informations de référence pour une classe d'éléments TEI, c'est-à-dire un groupe d'éléments qui figurent ensemble dans des modèles de contenu ou qui partagent un attribut commun, ou qui ont l'un et l'autre.
Moduletagdocs — 22 Documentation Elements
Attributsatt.global (@xml:id, @n, @xml:lang, @rend, @rendition, @xml:base, @xml:space) (att.global.linking (@corresp, @synch, @sameAs, @copyOf, @next, @prev, @exclude, @select)) (att.global.analytic (@ana)) (att.global.facs (@facs)) (att.global.change (@change)) att.identified (@ident, @predeclare, @module, @status) (att.combinable (@mode))
typeindique si c'est une classe de modèles ou une classe d'attributs
Statut Requis
Type de données

<rng:ref name="data.enumerated"/>
data.enumerated
Les valeurs autorisées sont:
model
(modèle de contenu) les membres de cette classe figurent dans les mêmes modèles de contenu
atts
(attributs) les membres de cette classe partagent des attributs communs
generatedonne les règles régissant dans une instance TEI l'ordre et l'alternance des éléments définis par la classe. Par défaut, toutes les variations sont données.
Statut Optionel
Type de données 1–5 occurrences of 

<rng:ref name="data.enumerated"/>
data.enumerated
séparé par un espace
Les valeurs autorisées sont:
alternation
les membres de la classe constituent des alternatives
sequence
les membres de la classe doivent tous être donnés dans l'ordre indiqué
sequenceOptional
les membres de la classe peuvent être donnés, dans l'ordre indiqué, mais sont facultatifs
sequenceOptionalRepeatable
les membres de la classe peuvent être donnés une ou plusieurs fois, dans l'ordre indiqué, mais sont facultatifs
sequenceRepeatable
les membres de la classe doivent être donnés au moins une fois, dans l'ordre indiqué.
Utilisé par
Contenu dans
Peut contenir
Declaration

<rng:element name="classSpec">
 <rng:ref name="att.global.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.identified.attributes"/>
 <rng:ref name="att.combinable.attributes"/>
 <rng:attribute name="type">
  <rng:choice>
   <rng:value>model</rng:value>
   <rng:value>atts</rng:value>
  </rng:choice>
 </rng:attribute>
 <rng:optional>
  <rng:attribute name="generate">
   <rng:list>
    <rng:choice>
     <rng:value>alternation</rng:value>
     <rng:value>sequence</rng:value>
     <rng:value>sequenceOptional</rng:value>
     <rng:value>sequenceOptionalRepeatable</rng:value>
     <rng:value>sequenceRepeatable</rng:value>
    </rng:choice>
    <rng:optional>
     <rng:choice>
      <rng:value>alternation</rng:value>
      <rng:value>sequence</rng:value>
      <rng:value>sequenceOptional</rng:value>
      <rng:value>sequenceOptionalRepeatable</rng:value>
      <rng:value>sequenceRepeatable</rng:value>
     </rng:choice>
    </rng:optional>
    <rng:optional>
     <rng:choice>
      <rng:value>alternation</rng:value>
      <rng:value>sequence</rng:value>
      <rng:value>sequenceOptional</rng:value>
      <rng:value>sequenceOptionalRepeatable</rng:value>
      <rng:value>sequenceRepeatable</rng:value>
     </rng:choice>
    </rng:optional>
    <rng:optional>
     <rng:choice>
      <rng:value>alternation</rng:value>
      <rng:value>sequence</rng:value>
      <rng:value>sequenceOptional</rng:value>
      <rng:value>sequenceOptionalRepeatable</rng:value>
      <rng:value>sequenceRepeatable</rng:value>
     </rng:choice>
    </rng:optional>
    <rng:optional>
     <rng:choice>
      <rng:value>alternation</rng:value>
      <rng:value>sequence</rng:value>
      <rng:value>sequenceOptional</rng:value>
      <rng:value>sequenceOptionalRepeatable</rng:value>
      <rng:value>sequenceRepeatable</rng:value>
     </rng:choice>
    </rng:optional>
   </rng:list>
  </rng:attribute>
 </rng:optional>
 <rng:group>
  <rng:zeroOrMore>
   <rng:ref name="model.glossLike"/>
  </rng:zeroOrMore>
  <rng:optional>
   <rng:ref name="classes"/>
  </rng:optional>
  <rng:zeroOrMore>
   <rng:ref name="constraintSpec"/>
  </rng:zeroOrMore>
  <rng:optional>
   <rng:ref name="attList"/>
  </rng:optional>
  <rng:zeroOrMore>
   <rng:ref name="exemplum"/>
  </rng:zeroOrMore>
  <rng:zeroOrMore>
   <rng:ref name="remarks"/>
  </rng:zeroOrMore>
  <rng:zeroOrMore>
   <rng:ref name="listRef"/>
  </rng:zeroOrMore>
 </rng:group>
</rng:element>
element classSpec
{
   att.global.attributes,
   att.global.linking.attributes,
   att.global.analytic.attributes,
   att.global.facs.attributes,
   att.global.change.attributes,
   att.identified.attributes,
   att.combinable.attributes,
   attribute type { "model" | "atts" },
   attribute generate
   {
      list
      {
         (
            "alternation"
          | "sequence"
          | "sequenceOptional"
          | "sequenceOptionalRepeatable"
          | "sequenceRepeatable"
         ),
         (
            "alternation"
          | "sequence"
          | "sequenceOptional"
          | "sequenceOptionalRepeatable"
          | "sequenceRepeatable"
         )?,
         (
            "alternation"
          | "sequence"
          | "sequenceOptional"
          | "sequenceOptionalRepeatable"
          | "sequenceRepeatable"
         )?,
         (
            "alternation"
          | "sequence"
          | "sequenceOptional"
          | "sequenceOptionalRepeatable"
          | "sequenceRepeatable"
         )?,
         (
            "alternation"
          | "sequence"
          | "sequenceOptional"
          | "sequenceOptionalRepeatable"
          | "sequenceRepeatable"
         )?
      }
   }?,
   (
      model.glossLike*,
      classes?,
      constraintSpec*,
      attList?,
      exemplum*,
      remarks*,
      listRef*
   )
}
Schematron

<sch:report
 test="not(//tei:moduleSpec[@ident=current()/@module])">
Class <sch:value-of select="@ident"/>: the value of the module attribute [<sch:value-of select="@module"/>] must correspond to an existing moduleSpec</sch:report>
Exemple
<classSpec module="tei" type="model" ident="model.segLike">
 <desc>regroupe des éléments utilisés pour des segmentations arbitraires. </desc>
 <classes>
  <memberOf key="model.phrase"/>
 </classes>
 <remarks>
  <p>Les principes selon lesquels la segmentation est effectuée, et tous les codes
     spéciaux ou toutes les valeurs d'attribut utilisées, devraient être définis
     explicitement dans l'élément<gi>segmentation</gi> de l'élément<gi>encodingDesc</gi>
     dans l'en-tête TEI associé.</p>
 </remarks>
</classSpec>