<attList>

<attList> (attribute list) 일련의 attDef 요소로서, 이 요소와 연관된 모든 속성에 대한 기록을 포함한다. [23.5 Element Specifications 23.6 Class Specifications]
모듈 tagdocs — Documentation Elements
속성
org⚓︎ (조직) 목록의 모든 속성이 이용가능하거나(org="group") 그 중 하나만 이용가능한지를 명시한다.
상태 수의적
자료 유형 teidata.enumerated
적법한 값은:
group
그룹화된 [기본값]
choice
교체가능한
에 의해 포함된
포함할 수 있다
<attList>
 <attDef ident="typeusage="opt">
  <desc>type of schema</desc>
  <datatype>
   <dataRef key="teidata.enumerated"/>
  </datatype>
 </attDef>
</attList>
<attList org="choice">
 <attDef ident="active">
  <desc versionDate="2005-07-24"
   xml:lang="en">
identifies the <soCalled>active</soCalled> participants in a non-mutual relationship, or all the participants in a mutual one.</desc>
  <datatype maxOccurs="unbounded">
   <dataRef key="teidata.pointer"/>
  </datatype>
 </attDef>
 <attDef ident="mutualusage="opt">
  <desc versionDate="2005-07-24"
   xml:lang="en">
supplies a list
     of participants amongst all of whom the relationship holds
     equally.</desc>
  <datatype maxOccurs="unbounded">
   <dataRef key="teidata.pointer"/>
  </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 )+
}