list 要素

空白区切りのデータ列挙を明示する

中身の説明

記述例

例1 地図中での進行順路

ゲームマップなどで宝の在処を指し示したい場合に、入口からどのように進めば何が得られるかをデータ化したい場合があるかも知れません。その場合、空白区切りで一画面毎の順路を記述しておくと便利な場合があるでしょう。以下にスキーマと XML 文書(の断片)の一例を示します。

スキーマ断片の一例
<element name="宝">
 <attribute name="名前"><text/></attribute>
 <list>
  <oneOrMore>
   <choice>
    <value>上</value>
    <value>下</value>
    <value>左</value>
    <value>右</value>
   </choice>
  </oneOrMore>
 </list>
</element>
妥当な XML 文書の断片の一例
<宝 名前="エメラルドロッド">
上 上 左 下 左 上 上 右 下
</宝>
妥当でない XML 文書の一例
<宝 名前="黄金の兜">
上 上 左 下 左  上 右 下 <!-- "中" が含まれている -->
</宝>

例2 色の列挙

Cascading Style Sheets では、 枠線の色指定は空白区切りで列挙します(上, 右, 下, 左の順)。この表記を XML の属性(ここでは属性とします)で実現させるための一つの方法として、 list 要素を使うことを考えます。以下の例では、 RGB.datatype は既に定義済 (#RRGGBB のみの形を許す) とします。ついでに、基本的な色 (, , 黄色)に関しては、名前を使えるとします。

スキーマ断片の一例
<element name="枠線">
 <empty/>
 <attribute name="色">
  <list>
   <oneOrMore>
    <choice>
     <ref name="RGB.datatype"/>
     <value>赤</value>
     <value>青</value>
     <value>黄色</value>
    </choice>
   </oneOrMore>
  </list>
 </attribute>
</element>
妥当な XML 文書断片の例

以上の例では、色指定の個数制限は設けられておりません。もう少し複雑な記述をすれば、ある程度の制限を設けることは可能です。