ページの先頭行へ戻る
Symfoware Server V11.1.0 RDB運用ガイド
FUJITSU Software

A.1 XMLデータの形式

XMLデータの文字コード

rdbunlxコマンドがサポートするXMLデータの文字コードを以下に示します。

XMLデータの形式について

rdbunlxコマンドがサポートするXMLデータの形式について以下に記述します。

rdbunlxコマンドは、XML標準である整形式の条件を満たすXMLデータをサポートします。

整形式の条件について記述します。

ポイント

要素とは、開始タグで始まり、終了タグで終わる単位です。

開始タグと終了タグの間に要素の内容があります。要素の内容が空である場合、空要素タグを記述することができます。

XMLデータの構成要素の記述例を以下に記述します。

<Company    Place =  “東京”>  富士通      </Company>
開始タグ名  属性名    属性値  要素の内容    終了タグ名

空要素タグの記述例を以下に記述します。

<Company/>

XMLデータの代表的な構成要素に記述可能な文字は以下となります。

構成要素

記述可能な文字

開始タグ名
終了タグ名
属性名

  • 先頭に記述可能な文字

    • アンダースコア(“_”)

    • コロン(“:”)

    • Letterクラスの文字
      (アルファベット、ひらがな、カタカナ、漢字など)

  • 2文字目以降に記述可能な文字

    • 先頭に記述可能な文字

    • ピリオド(“.”)

    • ハイフン(“-”)

    • Digitクラスの文字(数字)

    • Combining Characterクラスの文字
      (アクセント記号など)

    • Extenderクラスの文字
      (他の文字の後や間に使用される文字)

要素の内容
属性値

キャラクタ(Character)範囲の文字

注意

属性値は、二重引用符、もしくは、引用符で囲う必要があり、二重引用符で囲まれている属性値に二重引用符が指定できません。また、引用符で囲まれている属性値に、引用符が指定できません。

以下に正しいXML形式のXMLデータを記述します。

<受注伝票>
  <伝票番号>E001001</伝票番号>
  <契約日>2007-01-01</契約日>
  <納入日>2007-01-21</納入日>
  <受注先>
    <社名>ABC銀行</社名>
    <コード>B001</コード>
  </受注先>
  <商品>
    <商品名>FMVM47073</商品名>
    <個数>10個</個数>
  </商品>
</受注伝票>

参照

Letterクラスの文字、Digitクラスの文字、Combining Characterの文字、Extenderクラスの文字、および、キャラクタ(character)範囲の文字は、W3Cの勧告として公布されている XML1.0(http://www.w3.org/TR/xml)の内容を参照してください。

rdbunlxコマンドのXMLデータの許容について

rdbunlxコマンドは、整形式でないXMLデータを許容する場合があります。ここでは、rdbunlxコマンドが許容するXMLデータを以下に分類して説明します。

注意

XML標準である整形式の条件に一致していない場合でも、rdbunlxコマンドは正しいXMLデータと許容して動作する場合があります。XMLデータの流通性を考慮した場合、他のシステムでは整形式の条件に一致していないXMLデータは取り扱えない可能性があります。このため整形式の条件に一致したXMLデータを使用することを推奨します。

NULL値

BLOB列に対しNULL値を格納した場合、そのデータは検索対象外のデータとなります。このためNULL値の場合、エラーにはなりません。

UTF-8形式以外のデータ

XMLデータは、UTF-8形式のデータが対象になります。しかし、UTF-8の形式であるか否か、文字の検証をしていないため、UTF-8形式でなくても許容する場合があります。

制御コードを含むデータ

XMLデータ中に存在する制御コードは、以下の表のように、整形式の条件よりも許容する文字の範囲を広くしています。

  

制御コード文字の範囲

rdbunlxコマンドが許容している制御コード

0x07~0x1f,0x7f

整形式の条件で認められている制御コードは、以下の4つです。

  • 改行(0x0a)

  • 復帰(0x0d)

  • タブ(0x09)

  • 削除(0x7f)

記述可能な文字の範囲

rdbunlxコマンドにおいて、XMLデータの文字の範囲は、整形式の条件に一致していない文字に関しても、以下の表に示すとおり一部許容しています。以下に、rdbunlxコマンドが許容している記述可能な文字を示します。

構成要素

記述可能な文字

XML宣言(前書き)
文書型定義(DTD)
要素の内容(文字データ)
属性値
コメント
処理命令(PI)
CDATAセクション

  • キャラクタ(Charcter)範囲の文字

  • 制御コードの一部(0x07~0x1f,0x7f)

上記の記述可能な文字の中には、以下の例外があります。

  • 要素の内容(文字データ)には、以下の文字(文字列)は使用できません。

    • 不等号(“<”)

    • 文字列(“]]>”)

  • 属性値には、以下の文字は使用できません。

    • 不等号(“<”)

開始タグ名
空要素タグ名
終了タグ名
属性名

  • Letterクラスの文字(アルファベット、ひらがな、カタカナ、漢字など)

  • Digitクラスの文字(数字)

  • Combining Characterクラスの文字

  • Extenderクラスの文字

  • その他のマルチバイト文字(半角カナ、全角の英数字、全角の記号など)

  • 制御コードの一部(0x07~0x08,0x0b~0x0c,0x0e~0x1f,0x7f)

  • 以下を除く半角記号(0x21~0x2e,0x3a~0x3b,0x3d,0x40,0x5b~0x60,0x7b~0x7e)

    • 不等号(“<”)(0x3c)

    • 不等号(“>”)(0x3e)

上記の記述可能な文字の中には、以下の例外があります。

  • 他の構成要素と見なされる場合があるため、タグ名として以下から始まる文字は記述しないでください。

    • スラッシュ(“/”)

    • 疑問符(“?”)

    • 感嘆符(“!”)

  • 他の構成要素と見なされる場合があるため、タグ名として以下で終わる文字(文字列)は記述しないでください。

    • 文字列(“]]”)

    • スラッシュ(“/”)

    • 疑問符(“?”)

  • 属性名に、以下の文字は使用できません。

    • 二重引用符(“"”)

    • 引用符(“'”)

    • 等号(“=”)

注意

XML検索式に指定できる文字の範囲は、XMLデータのタグ名として使用できる文字の範囲とは異なります(検索対象とするタグ名や属性名に関しては、XML検索式で使用できる文字を使用してください)。

XML検索式で使用できる文字に関しては、“XQueryリファレンス”を参照してください。

整形式の条件に一致していないデータ

rdbunlxコマンドは、ルートと呼ばれる要素の開始タグから、ルートと呼ばれる要素の終了タグまでの間を検索対象として動作します。

検索処理では、整形式の条件に完全に一致していなくても、開始タグおよび終了タグによって区切られ、入れ子構造をしていれば、そのデータは検索対象として動作します。

以下に、整形式の条件に一致していなくても検索対象とする場合を示します。

  • ルートと呼ばれる要素の開始タグより前に記述する内容に誤りがあった場合

  • 1つの要素内に同じ属性名を重複して記述した場合(それぞれの属性が、検索対象となります)

  • 開始タグ名と終了タグ名が異なる場合(開始タグ名が検索対象となり、終了タグ内の記述が正しいかどうかの検証は行いません)

  • 終了タグ内で、属性を記述した場合(その属性は検索対象とならずに、無視します)

  • 実体参照の記述方法に誤りがあった場合(実体参照に関しては展開を行わないため、実体参照に使用するアンパサンド(“&”)やセミコロン(“;”)を実体参照とは認識しません)

  • コメント、処理命令(PI)に関して誤りがあった場合(コメント、処理命令(PI)は検索対象ではありません)