医薬品チームブログ
新記載要領

添付文書用XML解析 3. Item.Detail要素2

投稿日:2017.11.27

更新日:2022.08.01


前回は文章を構成する最小単位であるItem.Detail要素について触れました。
今回はそれらを包括するリスト要素について見ていきましょう。

3種類のリスト要素

List要素はItem要素を複数まとめてリスト化するためのものです。添付文書XMLでは3種のリスト要素が用意されており、順序番号や記号等の有無により使い分けます。

  • OrderedList(順序付リスト)
  • UnorderedList(順序なしリスト)
  • SimpleList(単純リスト)

OrderedList要素はHTMLタグのOL要素、UnorderedList要素はHTMLタグのULリストの様な使い方をします。1つずつ具体的な使用方法を見ていきましょう。

OrderedList(順序付リスト)

まずはOrderedListについてです。このリストは各項目に順序番号を追加したい場合に使用します。
今回も下記の禁忌の項目を例にSGMLとの違いを確認します。

XML_ContraIndications_Sample1

SGMLの場合

	禁忌
	1
	見出し1
	いろはにほへと ちりぬるを
	2
	見出し2
	わかよたれそ つねならむ
	3
	
		1
		うゐのおくやま けふこえて
		2
		あさきゆめみし ゑひもせすん
	

SGMLでは順序番号を付ける場合、上記の様にserialnoという要素に番号を直接記述していました。
また、レベルを下げて順序番号を付ける場合、下位レベルの内容をlow1subitemで囲み、その内部でserialno要素で番号を記述していました(9~14行目)。さらにレベルを下げる場合low2subitem~low6subitemという要素を用いて表現する必要がありました。

XMLの場合

	
		
			
見出し1
いろはにほへと ちりぬるを
見出し2
わかよたれそ つねならむ うゐのおくやま けふこえて あさきゆめみし ゑひもせすん

XMLの場合、順序番号を記述する必要はありません。順序番号を付けたいItem要素をOrderedList要素で囲むことで、上から順に番号が付きます。これによりserialno要素はXMLでは不要になりました。
また、レベルを下げる場合はOrderedList要素内でさらにOrderedList要素を用いる事で記述します(18~29行目)。その為low1subitem~low6subitem要素は不要になりました。
順序番号はHeader要素がある場合はHeader要素に、ない場合はDetail要素に付きます。

numberContinued属性

OrderedList要素には他のリスト要素には無いnumberContinued属性という属性があります。これは2つのOrderedList要素で順序番号を繋げる時に使用する属性です。他のリスト要素と合わせて記述する為少し複雑になるので、次回詳しく見ていきたいと思います。

UnorderedList(順序なしリスト)

UnorderedListも使用方法は同様です。Item要素を囲んで使用します。番号が付かないかわりに「●」等の記号が付きます。
下記の様な文章を表現するために用います。

XML_UnorderedList_Sample1

SGMLの場合
1
●いろはにほへと ちりぬるを
2
●わかよたれそ つねならむ
3
●うゐのおくやま けふこえて
4
●あさきゆめみし ゑひもせすん

順序番号を記述するserialnoには数字以外を入れられないので、●から始まるリストを表現するために、detail要素内に直接●を記述せざるを得ません。もはやserialno要素は不要ですが必須要素なので、表示しない場合にもonoff属性をoffにして記述が必要です。

XMLの場合

  
    
      いろはにほへと ちりぬるを
    
  
  
    
      わかよたれそ つねならむ
    
  
  
    
      うゐのおくやま けふこえて
    
  
  
    
      あさきゆめみし ゑひもせすん
    
  

UnorderedListで囲む事で各Item要素の文頭に記号が付加されるので、文章内に記号を記述する必要はありません。OrderedList要素と同様に、もしItem要素内にHeader要素があれば、記号はHeader要素に付加されます。

SimpleList(単純リスト)

下記の様な、順序番号も記号も付加しない場合、SimpleList要素を用います。

XML_SimpleList_Sample

SGMLの場合
1
見出し1
いろはにほへと ちりぬるを
2
見出し2
わかよたれそ つねならむ
3
見出し3
うゐのおくやま けふこえて
4
見出し4
あさきゆめみし ゑひもせすん

serialno要素、item要素、detail要素を繰り返しで表現します。上記にも示した通りserialno要素は省略不可なので、表示上何も無くてもitem要素とdetail要素の直前に必要です。

XMLの場合

  
    
見出し1
いろはにほへと ちりぬるを
見出し2
わかよたれそ つねならむ
見出し3
うゐのおくやま けふこえて
見出し4
あさきゆめみし ゑひもせすん

Item要素をSimpleListで囲む事で、数字も記号もつかない文章を表現出来ます。SGMLと比べて、不要な要素を記述する必要もなくItem単位で綺麗に構造化されているのがわかります。

まとめ

各項目に順序番号や記号を付与する場合は、リスト要素を用います。
数字を付与する場合はOrderedList要素、記号を付与する場合はUnorderedList要素、項目に何も付与しない場合はSimpleList要素を用います。
SGMLではなかったリスト要素の概念を用いることで、serialno要素やlow1subitem~low6subitem要素は不要になりました。

次回は、OrderedList要素のnumberContinued属性について解説します。