La présente section décrit la DTD (définition ou déclaration de type de document) applicable au fichier DAD (définition d'accès au document). Le fichier DAD est un document constitué d'une arborescence XML et requiert une DTD. Le nom de fichier de la DTD est dxxdad.dtd. La Figure 13 présente la DTD correspondant au fichier DAD. Les éléments de ce fichier sont décrits après la figure.
<?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)> |
Le fichier DAD est constitué de quatre éléments principaux :
Xcolumn et Xcollection ont un élément enfant et des attributs qui facilitent le mappage des données XML dans les tables relationnelles de DB2. La liste suivante décrit les éléments principaux et leurs éléments enfants ainsi que leurs attributs. Les exemples de syntaxe sont extraits de la Figure 13.
Syntaxe : <!ELEMENT dtdid (#PCDATA)>
Syntaxe : <!ELEMENT validation(#PCDATA)>
Syntaxe : <!ELEMENT Xcolumn (table*)>Xcolumn dispose d'un élément enfant : table.
Syntaxe :
<!ELEMENT table (column+)> <!ATTLIST table name CDATA #REQUIRED key CDATA #IMPLIED orderBy CDATA #IMPLIED>
L'élément table dispose d'un attribut :
L'élément table possède un élément enfant :
Syntaxe :
<!ATTLIST column name CDATA #REQUIRED type CDATA #IMPLIED path CDATA #IMPLIED multi_occurrence CDATA #IMPLIED>L'élément column comprend les attributs suivants :
Syntaxe : <!ELEMENT Xcollection(SQL_stmt*, prolog, doctype, root_node)>Xcollection détient les éléments enfants suivants :
Syntaxe : <!ELEMENT SQL_stmt #PCDATA >
Syntaxe : <!ELEMENT prolog #PCDATA>
Syntaxe : <!ELEMENT doctype #PCDATA | RDB_node>doctype peut être spécifié de l'une des manières suivantes :
Syntaxe : <!ELEMENT root_node(element_node)>
Syntaxe :
Un element_node est défini par les éléments enfants suivants :
Syntaxe :
attribute_node doit comprendre les définitions d'un attribut name et un élément enfant, soit column ou RDB_node. attribute_node comprend l'attribut suivant :
attribute_node comprend les éléments enfants suivants :
Syntaxe : Il doit être défini par un élément enfant column ou RDB_node :