• No results found

3.5 Dynamic vs static fission paths

3.5.2 Study of the 234 U

Lo siguiente que debemos hacer es agregar a nuestra base de datos los objetos XML que queremos incluir en esta base de datos. Sabemos por lo que hemos visto que Tamino se basa en los esquemas de los documentos XML, el principal problema que tenemos es que para el caso práctico que nos ocupa, el documento XML llamado bib.xml, no tenemos definido el esquema y sí tenemos definido el archivo DTD.

Mediante el Tamino Schema Editor, herramienta para crear esquemas, podemos crear un esquema para nuestro ejemplo práctico a partir del documento DTD del que disponemos.

Figura 5.19. Uso del Tamino Schema Editor (creación del esquema de la base de datos I)

Modificamos el nombre NEW_Schema que encontramos como valor de la propiedad schemaName, en esta caso por biblio y especificamos el nombre de la colección. Una vez hecho esto, mediante el menú Insert seleccionamos DocType para insertar el archivo DTD que nos define el archivo bib.xml

Una vez tenemos hecho esto, seleccionamos la opción Import DTD… del menú File para seleccionar el archivo DTD a partir del que queremos generar el schema. Al final de este proceso tendremos:

Figura 5.21. Uso del Tamino Schema Editor (creación del esquema de la base de datos III)

Observamos que si desplegamos todos los elementos del arbol de navegación tenemos el archivo bib.dtd representado gráficamente:

Por ultimo finalizamos el proceso grabando el esquema que hemos generado como biblio.tsd, el contenido del cual es el siguiente:

<?xml version = "1.0" encoding = "UTF-8"?>

<xs:schema xmlns:tsd = "http://namespaces.softwareag.com/tamino/TaminoSchemaDefinition" xmlns:xs = "http://www.w3.org/2001/XMLSchema">

<xs:annotation> <xs:appinfo>

<tsd:schemaInfo name = "biblio">

<tsd:collection name = "biblio"></tsd:collection> <tsd:doctype name = "NEW_doctype">

<tsd:logical> <tsd:content>closed</tsd:content> </tsd:logical> </tsd:doctype> </tsd:schemaInfo> </xs:appinfo> </xs:annotation>

<xs:element name = "bib"> <xs:complexType> <xs:sequence>

<xs:element ref = "book" minOccurs = "0" maxOccurs = "unbounded"></xs:element> </xs:sequence>

</xs:complexType> </xs:element>

<xs:element name = "book"> <xs:complexType>

<xs:sequence>

<xs:element ref = "title"></xs:element> <xs:choice>

<xs:element ref = "author" maxOccurs = "unbounded"></xs:element> <xs:element ref = "editor" maxOccurs = "unbounded"></xs:element> </xs:choice>

<xs:element ref = "publisher"></xs:element> <xs:element ref = "price"></xs:element> </xs:sequence>

<xs:attribute name = "year" type = "xs:string" use = "required"></xs:attribute> </xs:complexType>

</xs:element>

<xs:element name = "author"> <xs:complexType>

<xs:sequence>

<xs:element ref = "last"></xs:element> <xs:element ref = "first"></xs:element> </xs:sequence>

</xs:complexType> </xs:element>

<xs:element name = "editor"> <xs:complexType>

<xs:sequence>

<xs:element ref = "last"></xs:element> <xs:element ref = "first"></xs:element> <xs:element ref = "affiliation"></xs:element> </xs:sequence>

</xs:complexType> </xs:element>

<xs:element name = "title" type = "xs:string"></xs:element> <xs:element name = "last" type = "xs:string"></xs:element> <xs:element name = "first" type = "xs:string"></xs:element> <xs:element name = "affiliation" type = "xs:string"></xs:element> <xs:element name = "publisher" type = "xs:string"></xs:element> <xs:element name = "price" type = "xs:string"></xs:element> </xs:schema>

Una vez ya tenemos nuestro esquema el siguiente paso es cargar los datos XML a nuestra base de datos Tamino; la manera más sencilla de cargar los datos XML es mediante el Tamino Interactive Interface.

Lo primero que se debe hacer es mediante la pestaña DEFINE, seleccionar el esquema que definirá los datos de nuestra base de datos

Figura 5.23. Carga del esquema de la base de datos en Tamino Interactive Interface

Una vez seleccionado el botón Define ya tenemos cargado el esquema de nuestra base de datos.

Ahora, mediante la pestaña Load seleccionamos el documento XML que aportarán los datos a la base de datos proyecto, en nuestro caso seleccionamos el archivo bib.xml

Figura 5.24. Carga del archivo XML de la base de datos en Tamino Interactive Interface

Para realizar la carga de datos XML a la base de datos también podemos utilizar el comando Data Loader en el que mediante la línea de comandos podemos incluir en nuestra base de datos el documento XML; el comando que ejecuta el data loader es el comando inoxmld al que se deben añadir los parámetros indicados:

Usage: inoxmld <params>

where params are the following :

Function=(Load|Unload|Define) - can be omitted for Load Database=<database name> or

Server=<machine name>:<port> Tamino Server to connect to - MANDATORY User=<uid> Tamino User-Id - if not provided, anonymous

Password=<password>

Collection=<collection>/<doc-type> specification of collection name and doc-type to load data into - MANDATORY Log=<log filename> where to write processing information - optional - default is STDERR

concurrentWrite allow parallel updates

(normally slow, but uses less temporary space) --- for Data Load ---

Input=<input filename> file containing documents to load optional - default is STDIN

Norejects do not tolerate rejects

Rejects=<rejects filename> where to write the rejected documents - optional - not written if omitted

--- for Data Unload ----

Output=<output filename> where to write the unloaded documents - MANDATORY

Así si ejecutamos

inoxmld Database=proyecto Collection=biblio/bib.dtd Input=d:\bib.xml

Tendremos como resultado:

C:\Archivos de programa\Software AG\Tamino\Tamino 4.1.4.1\X_Tools\Tamino_Data_Lo ader>inoxmld Database=proyecto Collection=biblio/bib.dtd Input=d:\bib.xml

<?xml version="1.0" encoding="utf-8" ?>

<ino:response xmlns:ino="http://namespaces.softwareag.com/tamino/response2" xmln s:xql="http://metalab.unc.edu/xql/">

<ino:message>

<ino:messageline>Tamino Data Loader v4.1.4.1 - Copyright (c) Software AG</in o:messageline>

<ino:messageline>Loading from d:\bib.xml to Tamino database proyecto</ino:me ssageline>

<ino:messageline>Start: 2003-09-26T12:03:31</ino:messageline> </ino:message>

<ino:message ino:returnvalue="7935"><ino:messagetext ino:code="INOXDE7935">Sch ema not found</ino:messagetext><ino:messageline>Collection name = biblio</ino:me ssageline></ino:message>

</ino:response>

Related documents