Manuali IBM

XML Extender - Gestione e programmazione


Appendici


Appendice A. DTD per il file DAD

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.

DTDID
Specifica l'ID della DTD memorizzata nella tabella DTD_REF. DTDID fa riferimento alla DTD che convalida i documenti XML o consente di eseguire l'associazione tra le tabelle della raccolta XML e i documenti XML. DTDID deve essere specificato per le raccolte XML. Per le colonne XML, è facoltativo ed è richiesto solo se si desidera creare delle tabelle laterali per l'indicizzazione degli elementi o attributi oppure per la convalida dei documenti XML di input. DTDID deve essere uguale al SYSTEM ID specificato nel doctype dei documenti XML.

Sintassi: <!ELEMENT dtdid (#PCDATA)>

validation
Indica se convalidare o meno il documento XML con la DTD per DAD. Se si specifica YES, occorre specificare anche DTDID.

Sintassi: <!ELEMENT validation(#PCDATA)>

Xcolumn
Definisce lo schema di indice per una colonna XML. Questo schema è costituito da zero o più tabelle.

Sintassi: <!ELEMENT Xcolumn (table*)>Xcolumn ha un elemento secondario, table.

table
Definisce una o più tabelle relazionali per l'indicizzazione degli elementi o attributi dei documenti memorizzati in una colonna XML.

Sintassi:

<!ELEMENT table (column+)>
  <!ATTLIST table name CDATA #REQUIRED
							key CDATA #IMPLIED
							orderBy CDATA #IMPLIED>

L'elemento table presenta un attributo:

attributo nome
Specifica il nome della tabella laterale

L'elemento table ha un elemento secondario:

attributo chiave
La chiave primaria singola della tabella

attributo orderBy
I nomi delle colonne che determinano l'ordine sequenziale dei valori dell'attributo o del testo dell'elemento a ricorrenza multipla quando vengono creati i documenti XML.

elemento colonna
Specifica la colonna della tabella che contiene il valore di un percorso di ubicazione del tipo specificato.

Sintassi:

<!ATTLIST column  
                     name CDATA #REQUIRED  
                      type CDATA #IMPLIED  
                      path CDATA #IMPLIED  
                       multi_occurrence CDATA #IMPLIED>
L'elemento column ha i seguenti attributi:

attributo nome
Specifica il nome della colonna. E' il nome alias del percorso di ubicazione che identifica un elemento o attributo.

attributo tipo
Definisce il tipo di dati della colonna. Può essere un qualsiasi tipo di dati SQL.

attributo percorso
Indica il percorso di ubicazione di un attributo o elemento XML e deve essere un percorso di ubicazione semplice come specificato nella tabella 3.1.a.

attributo multi_occurrence
Specifica se questo elemento o attributo può essere utilizzato più volte all'interno di un documento XML. I valori possono essere YES e NO.

Xcollection
Definisce l'associazione tra i documenti XML e una raccolta XML di tabelle relazionali.

Sintassi: <!ELEMENT Xcollection(SQL_stmt*, prolog, doctype, root_node)>Xcollection presenta i seguenti elementi secondari:

SQL_stmt
Specifica l'istruzione SQL utilizzata da XML Extender per definire la raccolta. In modo specifico, l'istruzione seleziona i dati XML dalle tabelle della raccolta XML e li utilizza per creare i documenti XML nella raccolta. Il valore di questo elemento deve essere un'istruzione SQL valida. Viene utilizzato per la composizione ed è consentito un solo elemento SQL_stmt. Per la scomposizione, è possibile specificare più valori per SQL_stmt per eseguire la creazione e l'inserimento della tabella necessaria.

Sintassi: <!ELEMENT SQL_stmt #PCDATA >

prolog
Il testo per il prologo XML. Lo stesso prologo è fornito a tutti i documenti dell'intera raccolta. Il valore di prolog è fisso.

Sintassi: <!ELEMENT prolog #PCDATA>

doctype
Definisce il testo per la definizione del tipo di documento XML.

Sintassi: <!ELEMENT doctype #PCDATA | RDB_node>doctype può essere specificato in uno dei seguenti modi:

  • Definire un valore esplicito. Questo valore è fornito a tutti i documenti dell'intera raccolta.
  • Durante la scomposizione, specificare l'elemento secondario, RDB_node, che può essere associato e memorizzato come i dati della colonna di una tabella.
doctype presenta un elemento secondario:

RDB_node
Non ancora implementato.

root_node
Definisce il nodo root virtuale. root_node deve avere un elemento secondario obbligatorio, element_node, che può essere utilizzato una sola volta. L'element_node di root_node è in effetti il root_node del documento XML.

Sintassi: <!ELEMENT root_node(element_node)>

element_node
Indica un elemento XML. Questo deve essere definito nella DTD specificata per la raccolta. Per l'associazione RDB_node, element_node root deve avere un RDB_node per specificare tutte le tabelle contenenti dati XML per tutti i relativi nodi secondari. Può presentare zero o più attribute_node ed element_node secondari oltre a zero o più text_node. Per gli elementi differenti dall'elemento root non è necessario specificare alcun RDB_node.

Sintassi:

Un element_node viene definito dai seguenti elementi secondari:

RDB_node
(Facoltativo) Specifica le tabelle, le colonne e le condizioni per i dati XML. RDB_node per un elemento deve essere definito solo per l'associazione RDB_node. In tal caso, è necessario specificare una o più tabelle. La colonna non è necessaria poiché il contenuto dell'elemento viene specificato da text_node. La condizione è facoltativa, dipende dalla DTD e dalla condizione dell'interrogazione.

nodi secondari
(Facoltativo) Un element_node può anche avere i seguenti nodi secondari:

element_node
Indica gli elementi secondari dell'elemento XML corrente

attribute_node
Indica gli attributi dell'elemento XML corrente

text_node
Indica il testo CDATA dell'elemento XML corrente

attribute_node
Indica un attributo XML. E' il nodo che definisce l'associazione tra un attributo XML e i dati della colonna di una tabella relazionale.

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:

name
Il nome dell'attributo.

attribute_node presenta i seguenti elementi secondari:

Column
Utilizzato per l'associazione SQL. La colonna deve essere specificata nella clausola SELECT di SQL_stmt.

RDB_node
Utilizzato per l'associazione RDB_node. Il nodo definisce l'associazione tra questo attributo e i dati della colonna nella tabella relazionale. E' necessario specificare la tabella e la colonna. La condizione è facoltativa.

text_node
Rappresenta il contenuto del testo di un elemento XML. E' il nodo che definisce l'associazione tra un elemento XML e i dati della colonna di una tabella relazionale.

Sintassi: Deve essere definito da un elemento secondario column o RDB_node:

Column
Richiesto per l'associazione SQL. In questo caso, la colonna deve essere specificata nella clausola SELECT di SQL_stmt.

RDB_node
Richiesto per l'associazione RDB_node. Il nodo definisce l'associazione tra questo contenuto del testo e i dati della colonna nella tabella relazionale. La tabella e la colonna devono essere specificate. La condizione è facoltativa.


[ Inizio pagina | Pagina precedente | Pagina successiva | Indice | Indice analitico ]