<attList>

<attList> (attribute list) 包含所有和此元素相關的屬性記錄,使用一連串的元素attDef。 [23.5 Element Specifications 23.6 Class Specifications]
組件 tagdocs — Documentation Elements
屬性
org⚓︎ (organization) 標明是否列表中的全部屬性皆可使用 (org="group") 、或是僅可使用其中一個 (org="choice")。
狀態 非必備的
資料類型 teidata.enumerated
合法的值是:
group
集合使用 [預設值]
choice
擇一使用
可包含在於
可包含
例子
<attList>
 <attDef ident="typeusage="opt">
  <desc>文件模型的種類</desc>
  <datatype>
   <dataRef key="teidata.enumerated"/>
  </datatype>
 </attDef>
</attList>
Schematron Because it is illegal in XML to have two attributes with the same name on the same element instance, it is illegal in TEI to have two attDef elements with the same values of ns and ident in a single attList, unless the parent attList has an org of choice. This applies regardless of the mode of each attDef.

<sch:rule context="tei:attList[ not( ancestor::tei:attList ) ]">

<sch:let name="notanamespacevalue="'☮🄯'"/>

<sch:let name="defs"
 value="descendant::tei:attDef"/>


<sch:let name="nsidents"
 value="for $ad in $defs return if ( $ad[ parent::tei:attList[ @org eq 'choice'] and preceding-sibling::tei:attDef[ @ident eq $ad/@ident and ( @ns, $notanamespace )[1] eq ( $ad/@ns, $notanamespace )[1] ] ] ) then '' else normalize-space( if ($ad/@ns) then 'Q{'||$ad/@ns||'}'||$ad/@ident else $ad/@ident ) "/>


<sch:let name="dups"
 value="for $a in $nsidents return ( $nsidents[ . eq $a ][2] )"/>


<sch:let name="distinct_dups"
 value="distinct-values( $dups )"/>


<sch:assert test="count( $distinct_dups[ . ne ''] ) eq 0"> Within the attribute list defined in <sch:value-of select="ancestor::*[@ident][1]/@ident"/>,
the following attributes have been defined multiple times: <sch:value-of select="$distinct_dups"/>.
</sch:assert>
</sch:rule>
Content model
<content>
 <alternate minOccurs="1"
  maxOccurs="unbounded">

  <elementRef key="attRef"/>
  <elementRef key="attDef"/>
  <elementRef key="attList"/>
 </alternate>
</content>
宣告
<rng:element name="attList">
 <rng:ref name="att.global.attributes"/>
 <rng:ref name="att.global.analytic.attributes"/>
 <rng:ref name="att.global.change.attributes"/>
 <rng:ref name="att.global.facs.attributes"/>
 <rng:ref name="att.global.linking.attributes"/>
 <rng:ref name="att.global.rendition.attributes"/>
 <rng:ref name="att.global.responsibility.attributes"/>
 <rng:ref name="att.global.source.attributes"/>
 <rng:optional>
  <rng:attribute name="org"
   a:defaultValue="group">

   <rng:choice>
    <rng:value>group</rng:value>
    <rng:value>choice</rng:value>
   </rng:choice>
  </rng:attribute>
 </rng:optional>
 <rng:oneOrMore>
  <rng:choice>
   <rng:ref name="attRef"/>
   <rng:ref name="attDef"/>
   <rng:ref name="attList"/>
  </rng:choice>
 </rng:oneOrMore>
</rng:element>
element attList
{
   att.global.attributes,
   att.global.analytic.attributes,
   att.global.change.attributes,
   att.global.facs.attributes,
   att.global.linking.attributes,
   att.global.rendition.attributes,
   att.global.responsibility.attributes,
   att.global.source.attributes,
   attribute org { "group" | "choice" }?,
   ( attRef | attDef | attList )+
}