<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. [23.3 Specification Elements 23.6 Class Specifications]
Module tagdocs — Documentation Elements
Attributs
type⚓︎ indique si c'est une classe de modèles ou une classe d'attributs
Dérivé de att.typed
Statut Requis
Type de données teidata.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
generate⚓︎ donne 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 de teidata.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é.
Membre du
Contenu dans
Peut contenir
Exemple
<classSpec module="teitype="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>
Modèle de contenu
<content>
 <sequence>
  <alternate minOccurs="0"
   maxOccurs="unbounded">

   <classRef key="model.identSynonyms"/>
   <classRef key="model.descLike"/>
  </alternate>
  <elementRef key="classesminOccurs="0"/>
  <elementRef key="constraintSpec"
   minOccurs="0maxOccurs="unbounded"/>

  <elementRef key="attListminOccurs="0"/>
  <elementRef key="exemplumminOccurs="0"
   maxOccurs="unbounded"/>

  <elementRef key="remarksminOccurs="0"
   maxOccurs="unbounded"/>

  <elementRef key="listRefminOccurs="0"
   maxOccurs="unbounded"/>

 </sequence>
</content>
Schéma Declaration
<rng:element name="classSpec">
 <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.global.source.attributes"/>
 <rng:ref name="att.identified.attributes"/>
 <rng:ref name="att.combinable.attributes"/>
 <rng:ref name="att.deprecated.attributes"/>
 <rng:ref name="att.typed.attribute.subtype"/>
 <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:choice>
    <rng:ref name="model.identSynonyms"/>
    <rng:ref name="model.descLike"/>
   </rng:choice>
  </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.rendition.attributes,
   att.global.linking.attributes,
   att.global.analytic.attributes,
   att.global.facs.attributes,
   att.global.change.attributes,
   att.global.responsibility.attributes,
   att.global.source.attributes,
   att.identified.attributes,
   att.combinable.attributes,
   att.deprecated.attributes,
   att.typed.attribute.subtype,
   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.identSynonyms | model.descLike )*,
      classes?,
      constraintSpec*,
      attList?,
      exemplum*,
      remarks*,
      listRef*
   )
}