ノードの情報

(1) ノードのタイプ

XMLツリーには全部で3種類のノードがあります。それぞれについて説明します。

a) 要素ノード

XMLの要素を表します。実体化(後述)しているものが出力の対象です。要素名は255バイトまでインポートできます。

anyノードアイコンは、マッピングできません。

図4.78 要素ノードアイコン(未実体化状態)

図4.79 要素ノードアイコン(実体化状態)

図4.80 anyノードアイコン

図4.81 要素ノードアイコン(繰り返し基点に設定した状態)

b) 属性ノード

XMLの属性を表します。実体化しているものが出力の対象です。属性名は255バイトまでインポートできます。

図4.82 属性ノードアイコン(未実体化状態)

図4.83 属性ノードアイコン(実体化状態)

c) 内容モデルノード

XMLの内容モデルを表します。直接出力されることはありませんが、実体化することで出力できる範囲が広がります。実体化させるにはいくつかの条件が必要です。

図4.84 内容モデルノードアイコン(未実体化状態)

図4.85 内容モデルノードアイコン(choice実体化状態)

図4.86 内容モデルノードアイコン(sequence実体化状態)

図4.87 内容モデルノードアイコン(all実体化状態)

図4.88 内容モデルノードアイコン(繰り返しの基点に設定した状態)

(2) ノードが持つ情報

ノードが持っている情報について説明します。要素ノードは子要素を持つ場合と持たない場合で異なります。子要素を持つ要素ノードを「中間要素ノード」、子要素を持たない要素を「末端要素ノード」と定義します。「中間要素ノード」と「末端要素ノード」をまとめて「要素ノード」と記載します。

a) name

要素ノードの場合は要素名を表します。属性ノードの場合は属性名を表します。内容モデルノードの場合は「sequence」、「choice」、「all」のいずれかの値です。

b) type

中間要素ノードと内容モデルノードはこの値を持ちません。末端要素ノードと属性ノードは、文字データまたは数値データのいずれかの値を持ちます。

c) minOccurs

要素ノードと内容モデルノードのみ出現頻度の最低値を表示します。

d) maxOccurs

要素ノードと内容モデルノードのみ出現頻度の最高値を表示します。

e) empty

末端要素ノードのみがこの値を持ちます。スキーマファイル上で空要素指定されているか、またはDataMagicがインポートする際にこの末端要素ノードのタイプを特定できない場合にemptyがtrueになります。それ以外はfalseになります。また、emptyがtrueの場合は常に文字データとして扱われます。

注意

emptyは単にその情報を表示のためにしか用いられておらず、空要素に関する何のチェックもDataMagicでは行っていません。たとえば入力側スキーマのemptyがtrueの末端要素ノードに実際には値が入っていてもそれを入力値として用いますし、出力側スキーマのemptyがtrueの末端要素ノードに対してもマッピングが行われれば値が出力されます。

f) default

中間要素ノードと内容モデルノードはこの値を持ちません。末端要素ノードと属性ノードは、デフォルト値がスキーマファイル上に指定されていれば、その値を持ちます。デフォルト値は最大9999バイトまでインポートできます。この値はXMLツリーが入力側である場合にのみ用いられます。マッピングされている入力側の末端要素ノード、または属性ノードに対応する値が入力ファイルに出現しなかった場合、もしスキーマ上にdefault値を持っていれば代わりにその値が入力値として用いられます。

注意

default値が採用される条件は、末端要素ノードの場合はその末端要素ノードの保持する値が存在しなかった場合(空要素であった場合)であり、属性ノードの場合はその属性自体が存在しなかった場合となります。