att.repeatable

att.repeatable 内容モデルの構成部分を定義するエレメントのための属性を提供する。
モジュール tagdocs — Documentation Elements
構成 alternate anyElement classRef datatype elementRef sequence
属性
minOccurs⚓︎ (最小出現数) この部品が出現し得る最小回数を示す。
状態 任意
データ型 teidata.count
初期値 1
maxOccurs⚓︎ (最大出現数) 概算推量のための最大推定値を与える。
状態 任意
データ型 teidata.unboundedCount
初期値 1
Schematron

<sch:rule context="tei:*[ @minOccurs and @maxOccurs ]">
<sch:let name="min"
 value="@minOccurs cast as xs:integer"/>

<sch:let name="max"
 value="if ( normalize-space( @maxOccurs ) eq 'unbounded') then -1 else @maxOccurs cast as xs:integer"/>

<sch:assert test="$max eq -1 or $max ge $min">@maxOccurs should be greater than or equal to @minOccurs</sch:assert>
</sch:rule>
<sch:rule context="tei:*[ @minOccurs and not( @maxOccurs ) ]">
<sch:assert test="@minOccurs cast as xs:integer lt 2">When @maxOccurs is not specified, @minOccurs must be 0 or 1</sch:assert>
</sch:rule>
解説

minOccursの値は常にmaxOccursの値以下でなければならない。maxOccursのデフォルト値が1なので、maxOccursが指定されない時には、minOccursは1以下でなければならない。 minOccursのデフォルト値も1なので、minOccursが指定されない時には、maxOccursは常に1以上でなければならない。これらの条件のいずれかが満たされなければ、ODDプロセッサはエラーとなるだろう。