投稿日:2024.10.15
更新日:2024.10.15
…以降未定
前回は文章を構成する最小単位であるItem.Detail要素について触れました。
今回はそれらを包括するリスト要素について見ていきましょう。
List要素はItem要素を複数まとめてリスト化するためのものです。
添付文書XMLでは3種のリスト要素が用意されており、順序番号や記号等の有無により使い分けます。
OrderedList要素はHTMLタグのOL要素、UnorderedList要素はHTMLタグのULリストの様な使い方をします。
1つずつ具体的な使用方法を見ていきましょう。
まずはOrderedListについてです。
このリストは各項目に順序番号を追加したい場合に使用します。
今回も下記の禁忌の項目を例にSGMLとの違いを確認します。
<contraindications> <variablelabel onswitch="on">禁忌</variablelabel> <serialno onoff="off">1</serialno> <low1subitem> <serialno>1</serialno> <item>見出し1</item> <detail>いろはにほへと ちりぬるを</detail> <serialno>2</serialno> <item>見出し2</item> <detail>かよたれそ つねならむ</detail> <low2subitem> <serialno><variablelabel>順序番号</variablelabel>1</serialno> <detail><variablelabel>見出し2</variablelabel>うゐのおくやま けふこえて</detail> <serialno><variablelabel>順序番号</variablelabel>2</serialno> <detail><variablelabel>見出し2</variablelabel>あさきゆめみし ゑひもせすん</detail> </low2subitem> </low1subitem> </contraindications>
SGMLでは順序番号を付ける場合、上記の様にserialnoという要素に番号を直接記述していました。
また、レベルを下げて順序番号を付ける場合、下位レベルの内容をlow[○]subitemで囲み、その内部でserialno要素で番号を記述していました(11~16行目)。
さらにレベルを下げる場合low2subitem~low6subitemという要素を用いて表現する必要がありました。
<ContraIndications id="HDR_ContraIndications" heading="fixing"> <OrderedList> <Item id="HDR_ContraIndications_1" heading="free"> <Header> <Lang xml:lang="ja">見出し1</Lang> </Header> <Detail> <Lang xml:lang="ja">いろはにほへと ちりぬるを</Lang> </Detail> </Item> <Item id="HDR_ContraIndications_2" heading="free"> <Header> <Lang xml:lang="ja">見出し2</Lang> </Header> <Detail> <Lang xml:lang="ja">わかよたれそ つねならむ</Lang> </Detail> <OrderedList> <Item id="HDR_ContraIndications_3" heading="free"> <Detail> <Lang xml:lang="ja">うゐのおくやま けふこえて</Lang> </Detail> </Item> <Item id="HDR_ContraIndications_4" heading="free"> <Detail> <Lang xml:lang="ja">あさきゆめみし ゑひもせすん</Lang> </Detail> </Item> </OrderedList> </Item> </OrderedList> </ContraIndications>
XMLの場合、順序番号を記述する必要はありません。
順序番号を付けたいItem要素をOrderedList要素で囲むことで、上から順に番号が付きます。これによりserialno要素はXMLでは不要になりました。
また、レベルを下げる場合はOrderedList要素内でさらにOrderedList要素を用いる事で記述します(18~29行目)。その為low1subitem~low6subitem要素は不要になりました。
順序番号はHeader要素がある場合はHeader要素に、ない場合はDetail要素に付きます。
OrderedList要素には他のリスト要素には無いnumberContinued属性という属性があります。
これは2つのOrderedList要素で順序番号を繋げる時に使用する属性です。
他のリスト要素と合わせて記述する為少し複雑になるので、次回詳しく見ていきたいと思います。
UnorderedListも使用方法は同様です。
Item要素を囲んで使用します。
番号が付かないかわりに「●」等の記号が付きます。
下記の様な文章を表現するために用います。
<serialno onoff="off"><variablelabel>順序番号</variablelabel>1</serialno> <detail>●いろはにほへと ちりぬるを</detail> <serialno onoff="off"><variablelabel>順序番号</variablelabel>2</serialno> <detail>●わかよたれそ つねならむ</detail> <serialno onoff="off"><variablelabel>順序番号</variablelabel>3</serialno> <detail>●うゐのおくやま けふこえて</detail> <serialno onoff="off"><variablelabel>順序番号</variablelabel>4</serialno> <detail>●あさきゆめみし ゑひもせすん</detail>
順序番号を記述するserialnoには数字以外を入れられないので、●から始まるリストを表現するために、detail要素内に直接●を記述せざるを得ません。
serialno要素は不要ですが必須要素なので、表示しない場合にもonoff属性をoffにして記述が必要です。
<UnorderedList type="disc"> <Item> <Detail> <Lang xml:lang="ja">いろはにほへと ちりぬるを</Lang> </Detail> </Item> <Item> <Detail> <Lang xml:lang="ja">わかよたれそ つねならむ</Lang> </Detail> </Item> <Item> <Detail> <Lang xml:lang="ja">うゐのおくやま けふこえて</Lang> </Detail> </Item> <Item> <Detail> <Lang xml:lang="ja">あさきゆめみし ゑひもせすん</Lang> </Detail> </Item> </UnorderedList>
UnorderedListで囲む事で各Item要素の文頭に記号が付加されるので、文章内に記号を記述する必要はありません。
OrderedList要素と同様に、もしItem要素内にHeader要素があれば、記号はHeader要素に付加されます。
下記の様な、順序番号も記号も付加しない場合、SimpleList要素を用います。
<serialno onoff="off"><variablelabel>順序番号</variablelabel>1</serialno> <detail>●いろはにほへと ちりぬるを</detail> <serialno onoff="off"><variablelabel>順序番号</variablelabel>2</serialno> <detail>●わかよたれそ つねならむ</detail> <serialno onoff="off"><variablelabel>順序番号</variablelabel>3</serialno> <detail>●うゐのおくやま けふこえて</detail> <serialno onoff="off"><variablelabel>順序番号</variablelabel>4</serialno> <detail>●あさきゆめみし ゑひもせすん</detail>
serialno要素、item要素、detail要素を繰り返しで表現します。
上記にも示した通りserialno要素は省略不可なので、表示上何も無くてもitem要素とdetail要素の直前に必要です。
<SimpleList> <Item> <Header> <Lang xml:lang="ja">見出し1</Lang> </Header> <Detail> <Lang xml:lang="ja">いろはにほへと ちりぬるを</Lang> </Detail> </Item> <Item> <Header> <Lang xml:lang="ja">見出し2</Lang> </Header> <Detail> <Lang xml:lang="ja">わかよたれそ つねならむ</Lang> </Detail> </Item> <Item> <Header> <Lang xml:lang="ja">見出し3</Lang> </Header> <Detail> <Lang xml:lang="ja">うゐのおくやま けふこえて</Lang> </Detail> </Item> <Item> <Header> <Lang xml:lang="ja">見出し4</Lang> </Header> <Detail> <Lang xml:lang="ja">あさきゆめみし ゑひもせすん</Lang> </Detail> </Item> </SimpleList>
Item要素をSimpleListで囲む事で、数字も記号もつかない文章を表現出来ます。
SGMLと比べて、不要な要素を記述する必要もなくItem単位で綺麗に構造化されているのがわかります。
各項目に順序番号や記号を付与する場合は、リスト要素を用います。
数字を付与する場合はOrderedList要素、記号を付与する場合はUnorderedList要素、項目に何も付与しない場合はSimpleList要素を用います。
SGMLではなかったリスト要素の概念を用いることで、serialno要素やlow1subitem~low6subitem要素は不要になりました。
次回は、OrderedList要素のnumberContinued属性について解説します。