この節では、 文書アクセス定義 (DAD) ファイル用の文書タイプ宣言 (DTD) について説明します。 DAD ファイル自体がツリー構造の XML 文書であり、DTD を必要とします。 その DTD ファイル名は dxxdad.dtd です。 図 13 は DAD ファイル用の DTD を示しています。 このファイルの要素は以下の図に示されています。
<?xml encoding="US-ASCII"?> <!ELEMENT DAD (dtdid?, validation, (Xcolumn | Xcollection))> <!ELEMENT dtdid (#PCDATA)> <!ELEMENT validation (#PCDATA)> <!ELEMENT Xcolumn (table*)> <!ELEMENT table (column*)> <!ATTLIST table name CDATA #REQUIRED key CDATA #IMPLIED orderBy CDATA #IMPLIED> <!ELEMENT column EMPTY> <!ATTLIST column name CDATA #REQUIRED type CDATA #IMPLIED path CDATA #IMPLIED multi_occurrence CDATA #IMPLIED> <!ELEMENT Xcollection (SQL_stmt?, objids?, prolog, doctype, root_node)> <!ELEMENT SQL_stmt (#PCDATA)> <!ELEMENT objids (column+)> <!ELEMENT prolog (#PCDATA)> <!ELEMENT doctype (#PCDATA | RDB_node)*> <!ELEMENT root_node (element_node)> <!ELEMENT element_node (RDB_node*, attribute_node*, text_node?, element_node*, namespace_node*, process_instruction_node*, comment_node*)> <!ATTLIST element_node name CDATA #REQUIRED ID CDATA #IMPLIED multi_occurrence CDATA "NO" BASE_URI CDATA #IMPLIED> <!ELEMENT attribute_node (column | RDB_node)> <!ATTLIST attribute_node name CDATA #REQUIRED> <!ELEMENT text_node (column | RDB_node)> <!ELEMENT RDB_node (table+, column?, condition?)> <!ELEMENT condition (#PCDATA)> <!ELEMENT comment_node (#PCDATA)> <!ELEMENT namespace_node (EMPTY)> <!ATTLIST namespace_node name CDATA #IMPLIED value CDATA #IMPLIED> <!ELEMENT process_instruction_node (#PCDATA)> |
DAD ファイルの主な要素は次の 4 つです。
Xcolumn および Xcollection には、 XML データを DB2 のリレーショナル表にマッピングする際に使われる子要素および属性があります。 以下のリストは、主な要素およびそれらの子要素や属性について説明しています。 構文例は、図 13 から引用しています。
構文: <!ELEMENT dtdid (#PCDATA)>
構文: <!ELEMENT validation(#PCDATA)>
構文: <!ELEMENT Xcolumn (table*)> Xcolumn には 1 つの子要素 table があります。
構文:
<!ELEMENT table (column+)> <!ATTLIST table name CDATA #REQUIRED key CDATA #IMPLIED orderBy CDATA #IMPLIED>
table 要素の属性は次の 1 つです。
table 要素の子要素は次の 1 つです。
構文:
<!ATTLIST column name CDATA #REQUIRED type CDATA #IMPLIED path CDATA #IMPLIED multi_occurrence CDATA #IMPLIED>column 要素には以下の属性があります。
構文: <!ELEMENT Xcollection(SQL_stmt*, prolog, doctype, root_node)> Xcollection には次のような子要素があります。
構文: <!ELEMENT SQL_stmt #PCDATA >
構文: <!ELEMENT prolog #PCDATA>
構文: <!ELEMENT doctype #PCDATA | RDB_node> doctype は以下のいずれかの方法で指定できます。
doctype の子要素は次の 1 つです。
構文: <!ELEMENT root_node(element_node)>
構文:
element_node は、次の子要素によって定義されます。
構文:
attribute_node には name 属性の定義が必要であり、 あわせて column または RDB_node 子要素のいずれかが必要です。 attribute_node には以下の属性があります。
attribute_node には以下の子要素があります。
構文: これは、以下の column または RDB_node 子要素によって定義する必要があります。