Questa sezione descrive le DTD (Document Type Declaration) per il file DAD (Document Access Definition). Il file DAD è un documento XML strutturato ad albero che richiede una DTD. Il nome del file DTD è dxxdad.dtd. La Figura 13 illustra la DTD per il file DAD. Gli elementi di questo file vengono descritti subito dopo la figura.
Figura 13. DTD per il file 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)> |
Il file DAD ha quattro elementi principali:
Xcolumn e Xcollection hanno attributi ed elementi secondari che semplificano l'associazione dei dati XML alle tabelle referenziali DB2. Il seguente elenco descrive gli elementi principali e i relativi attributi ed elementi secondari. Gli esempi di sintassi sono descritti nella sezione Figura 13.
Sintassi: <!ELEMENT dtdid (#PCDATA)>
Sintassi: <!ELEMENT validation(#PCDATA)>
Sintassi: <!ELEMENT Xcolumn (table*)>Xcolumn ha un elemento secondario, table.
Sintassi:
<!ELEMENT table (column+)> <!ATTLIST table name CDATA #REQUIRED key CDATA #IMPLIED orderBy CDATA #IMPLIED>
L'elemento table presenta un attributo:
L'elemento table ha un elemento secondario:
Sintassi:
<!ATTLIST column name CDATA #REQUIRED type CDATA #IMPLIED path CDATA #IMPLIED multi_occurrence CDATA #IMPLIED>L'elemento column ha i seguenti attributi:
Sintassi: <!ELEMENT Xcollection(SQL_stmt*, prolog, doctype, root_node)>Xcollection presenta i seguenti elementi secondari:
Sintassi: <!ELEMENT SQL_stmt #PCDATA >
Sintassi: <!ELEMENT prolog #PCDATA>
Sintassi: <!ELEMENT doctype #PCDATA | RDB_node>doctype può essere specificato in uno dei seguenti modi:
Sintassi: <!ELEMENT root_node(element_node)>
Sintassi:
Un element_node viene definito dai seguenti elementi secondari:
Sintassi:
L'elemento attribute_node deve disporre delle definizioni per un attributo name e per un elemento secondario column o RDB_node. attribute_node presenta il seguente attributo:
attribute_node presenta i seguenti elementi secondari:
Sintassi: Deve essere definito da un elemento secondario column o RDB_node: