医療・医薬品添付文書、医薬品添付文書集、医療機器、SGML、新記載要領XMLの作成、組版から各種データ作成、印刷、加工、梱包まで当社にお任せ下さい

技術Blog

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

前回は各List要素について触れました。
今回は前回の続きとしてOrderedList要素が持つnumberContinued属性について触れたいと思います。

numberContinued属性はどのような場合に使用するかというと、下記の様な記述に際して使用します

numberContinued_circle_square

項目を跨いで子の項目番号が振られている記述ですね。
あまり見かけることのない記述かと思います。

さて、この記述をXMLで表現しようとした場合、OrderedList要素で項目番号を振りたいのですが、構造的には

numberContinued_circle

numberContinued_square

との二つの項目に分かれています。
通常のOrderedList要素では連番を表すために、子のItem要素が並列に並んでいる必要があるため、「●●の場合」などのヘッダの記述が再現できません。
また、Item要素の間にヘッダとなる要素を割り込む方法も考えられますが、項目単位でのまとまりが無くなる為、以前説明した項目が取得しやすいというメリットが無くなってしまいます。

そこでnumberContinued属性を使用します。
numberContinued属性は名の通り項目番号を継続させる為のフラグです。
これは実際に見ないと分かりずらいので、まずはXML構造の例を見てみましょう。

今回の例ではSimpleList要素を親に使用し、「●●の場合」と「■■の場合」をそれぞれを別の項目とした上で、各項目内でOrderedList要素を使用しています。
この場合「●●の場合」内のOrderedList要素が一旦閉じられてしまい、Item要素の連番が途切れてしまいますが、再び登場する「■■の場合」内のOrderedList要素にnumberContinued属性が記述されることで、項目番号が継続されるというものです。
これで構造を保持したまま、項目番号を継続することが可能となります。

現状、numberContinued属性に関しては明確な使用例・条件が示されておらず、込み入った説明ができませんが、使い方はおおよそ理解して頂けたかと思います。

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

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

3種類のリスト要素

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

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

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

OrderedList(順序付リスト)

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

XML_ContraIndications_Sample1

SGMLの場合

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

XMLの場合

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の場合

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

XMLの場合

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

SimpleList(単純リスト)

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

XML_SimpleList_Sample

SGMLの場合

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

XMLの場合

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

まとめ

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

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

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

前回のブログでは全体的な構造、主にルート直下に配置される大項目に並びについて触れました。
今回は中項目以下の内容部分の構造について実際の例を用いて解説したいと思います。

Item.Detailを用いた構造の違い

以下の様な禁忌の項目を例に解説したいと思います。

XML_ContraIndications_Sample1

SGMLの場合

上記の禁忌をSGMLで作成すると以下のようになります。

続きを読む

Page 2 / 14123»
PAGETOP
Copyright © Daikocrea Co. Ltd. All Rights Reserved.