Esta sección describe las DTD (declaraciones de tipo de documento) del archivo DAD (archivo de definición de acceso a documento). El propio archivo DAD es un documento XML con estructura arborescente y necesita una DTD. El nombre del archivo DTD es dxxdad.dtd. La Figura 13 muestra la DTD del archivo DAD. Los elementos de este archivo se describen en la figura siguiente.
Figura 13. Declaraciones DTD de la DAD (definición de acceso a documento)
<?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)> |
El archivo DAD tiene cuatro elementos principales:
Xcolumn y Xcollection tienen elementos y atributos asociados que ayudan a correlacionar datos XML con tablas relacionales de DB2. La lista siguiente describe los elementos principales y sus elementos y atributos asociados. Los ejemplos de sintaxis proceden de la Figura 13.
Sintaxis: <!ELEMENT dtdid (#PCDATA)>
Sintaxis: <!ELEMENT validation(#PCDATA)>
Sintaxis: <!ELEMENT Xcolumn (table*)>Xcolumn tiene un elemento hijo, table.
Sintaxis:
<!ELEMENT table (column+)> <!ATTLIST table name CDATA #REQUIRED key CDATA #IMPLIED orderBy CDATA #IMPLIED>
El elemento table tiene un solo atributo:
El elemento table tiene un solo elemento hijo:
Sintaxis:
<!ATTLIST column name CDATA #REQUIRED type CDATA #IMPLIED path CDATA #IMPLIED multi_occurrence CDATA #IMPLIED>El elemento column tiene los atributos siguientes:
Sintaxis: <!ELEMENT Xcollection(SQL_stmt*, prolog, doctype, root_node)>Xcollection tiene los elementos asociados siguientes:
Sintaxis: <!ELEMENT SQL_stmt #PCDATA >
Sintaxis: <!ELEMENT prolog #PCDATA>
Sintaxis: <!ELEMENT doctype #PCDATA | RDB_node>doctype se puede especificar en una de las maneras siguientes:
Sintaxis: <!ELEMENT root_node(element_node)>
Sintaxis:
Un nodo de elemento está definido por los elementos asociados siguientes:
Sintaxis:
El attribute_node debe tener definiciones para un atributo name y un elemento hijo column o RDB_node. attribute_node tiene el atributo siguiente:
attribute_node tiene los elementos asociados siguientes:
Sintaxis: Debe estar definido por un elemento hijo column o RDB_node: