5.4 ESIS-B 形式データの生成
5.4.8 ESIS-B 形式データへの変換規則
(9) 注意事項
• XML データ変換中に変換エラーが発生した場合,障害要因と XML データファイル名をエラー情報出力 ファイルに出力し,変換処理を続行します。変換に失敗した XML データがある場合は,コマンド終了 時に一部の XML データの変換に失敗したとの警告メッセージを出力し,正常終了します。エラー情報 ファイルの出力ファイルを参照して,エラー要因を取り除いてから再度コマンドを実行してください。
• エラー情報は,出力ごとにエラー情報出力ファイルに追加されます。
• 出力する ESIS-B 形式データの文字コードは,必ず-m で指定してください。
この指定は,HiRDB のセットアップ環境に合わせる必要があります。
• 入力する XML データの文字コードは,登録する HiRDB の文字コードに合わせてください。
• PHD_XMLCNV_MAXMEM の値が不正,または大き過ぎる場合は,エラーコードのないエラーメッ セージが出力されます。その場合は,設定値を見直してください。
属性型 規則
ID 「NMTOKEN」と同様に扱われます。
IDREF 「NMTOKEN」と同様に扱われます。
IDREFS 「NMTOKENS」と同様に扱われます。
NMTOKEN 名前字句
属性値として記述された文字列が,前後の半角 スペースとタブおよび改行を削除した形で ESIS-B 形式に適応されます。
NMTOKENS 名前字句並び
属性値として記述された文字列が,一つ以上の 空白文字を区切りとして個々の属性値に分解さ れ,それぞれの属性値が ESIS-B 形式に適応さ れます。検索時には,分解されたそれぞれの属 性値に対して検索を実行できます。
(例)
<element attr="abc△def"/>と記述され ている場合は,複数の属性値"abc","def"と して適応されます。
(3) タグ間テキストの変換規則
タグ間テキストは出現単位に個別に変換されます。タグ間テキストの変換規則を次の表に示します。
表 5‒7 タグ間テキストの変換規則
条件 規則 説明
ENTITY 連結 エンティティの前後に文字列がある場合は,連続した文字列とします。
(例)
エンティティとして,'copyright'を'(c)'にしている場合,「コピーラ イトマークは©right;です。」は,「コピーライトマークは(c)で す。」となります。
CDATA セクション 連結 CDATA セクションの前後に文字列がある場合は,連続した文字列とし
ます。
(例)
「エレメントは<![CDATA[<element>]]>と記述します。」は,「エ レメントは<element>と記述します。」となります。
ELEMENT を内包する文字列 独立 タグ間テキスト内に要素ノードがある場合は,内包する要素ノードの前 後で,それぞれの独立した文字列として扱われます。
(例)
「XML<略語 term="XML" context="Extensible Markup Language"/>とは」は,「XML」と「とは」の個別の文字列としま す。この場合,「XML とは」で検索してもヒットしません。
タグ間テキスト内の,変換に指定した文字コードで表せない文字,空白文字および改行コードの扱いを次に 示します。
(a) タグ間テキスト内の指定文字コードで表せない文字
タグ間テキスト内の指定文字コードで表せない文字は,「?」(疑問符)に置換されます。ただし,XML デー タの XML 宣言部に書かれている文字コードで変換できないコードが含まれている場合は,変換エラーとな ります。
(b) タグ間テキスト内の空白文字
タグ間テキスト内の空白文字(タブ(0x09),半角スペース(0x20)),
改行コード(LF(0x0a),CR(0x0d),DOS 改行(0x0d 0x0a))は,次のように扱われます。
• タグ間テキスト先頭,および末尾の空白文字,改行コードは削除されます。
• タグ間テキスト内の改行コードは,すべて LF(0x0a)に置換されます。
• 空白文字と改行コードが連続する文字列は,それぞれ出現順に一つにまとめられます。
(例)
変換前:<root>改行と(0x20)(0x0a)(0x09)(0x20)(0x0a)(0x09)空白の例</root>
変換後:<root>改行と(0x20)(0x0a)(0x09)空白の例</root>