Dieser Abschnitt beschreibt die Dokumenttypdeklarationen (DTD) für die DAD-Datei. Die DAD-Datei selbst ist ein mit einer Baumstruktur definiertes XML-Dokument; sie erfordert eine DTD. Der Name der DTD-Datei lautet dxxdad.dtd. Abbildung 13 zeigt die DTD für die DAD-Datei. Die Elemente dieser Datei sind im Anschluß an die Abbildung beschrieben.
Abbildung 13. Die DTD für die Dokumentzugriffsdefinition (DAD)
<?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)> |
Die DAD-Datei umfaßt vier wichtige Elemente:
Xcolumn und Xcollection haben untergeordnete Elemente und Attribute, die die Zuordnung von XML-Daten zu relationalen Tabellen in DB2 erleichtern. Die folgende Liste beschreibt die wichtigsten Elemente und ihre untergeordneten Elemente und Attribute. Die Syntaxbeispiele stammen aus Abbildung 13.
Syntax: <!ELEMENT dtdid (#PCDATA)>
Syntax: <!ELEMENT validation(#PCDATA)>
Syntax: <!ELEMENT Xcolumn (table*)>Xcolumn hat ein untergeordnetes Element, table.
Syntax:
<!ELEMENT table (column+)> <!ATTLIST table name CDATA #REQUIRED key CDATA #IMPLIED orderBy CDATA #IMPLIED>
Das Element table hat ein Attribut:
Das Element table hat ein untergeordnetes Element:
Syntax:
<!ATTLIST column name CDATA #REQUIRED type CDATA #IMPLIED path CDATA #IMPLIED multi_occurrence CDATA #IMPLIED>Das Element column hat die folgenden Attribute:
Syntax: <!ELEMENT Xcollection(SQL_stmt*, prolog, doctype, root_node)>Xcollection hat die folgenden untergeordneten Elemente:
Syntax: <!ELEMENT SQL_stmt #PCDATA >
Syntax: <!ELEMENT prolog #PCDATA>
Syntax: <!ELEMENT doctype #PCDATA | RDB_node>doctype kann auf eine der folgenden Arten angegeben werden:
Syntax: <!ELEMENT root_node(element_node)>
Syntax:
Ein element_node ist durch die folgenden untergeordneten Elemente definiert:
Syntax:
Der attribute_node muß Definitionen für ein name-Attribut haben sowie ein untergeordnetes Element column oder RDB_node. attribute_node hat die folgenden Attribute:
attribute_node hat die folgenden untergeordneten Elemente:
Syntax: Er muß über ein untergeordnetes Element column oder RDB_node definiert werden: