Generar una DTD y un esquema

DTD Generator puede crear una Definición de Tipo de Documento (DTD) y un esquema para utilizarlos con Loader package. DTD Generator utiliza un archivo de entrada que contiene nombres de tablas de base de datos y genera una DTD o una DTD y un esquema con un archivo XML detallado que describe la base de datos, dependiendo de cómo se invoca el mandato DTD Generate.

Ejemplo:  Generar una DTD para tablas seleccionadas de la base de datos MALL en WebSphere Commerce 5.1

El archivo de entrada TableNames.txt contiene los nombres de tabla de base de datos siguientes, uno en cada línea:

MEMBER
ADDRBOOK
ADDRESS

A continuación se muestra un ejemplo de cómo puede invocarse DTD Generator:

Windows NT Windows 2000 AIX Solaris Linux
java com.ibm.wca.DTDGenerator.GenerateDTD -dbname MALL -dbuser db2inst1
-dbpwd db2ibm -outfile wc.dtd -infile TableNames.txt

iSeries
QWEBCOMM/GENWCSDTD DATABASE(NOMBRE_BASEDATOS) SCHEMA(MALL)
INSTROOT(/QIBM/UserData/WebCommerce/instances/mser)
PASSWD(micontraseña) OUTFILE(wc.dtd) INFILE(TableNames.txt)

El archivo de salida wc.dtd contiene lo siguiente:

  <!ELEMENT MALL (( MEMBER | ADDRBOOK | ADDRESS)*)>
  <!ELEMENT MEMBER EMPTY>
  <!ATTLIST MEMBER
     MEMBER_ID            CDATA           #REQUIRED
     TYPE                 CDATA           #REQUIRED
     STATE                CDATA           #IMPLIED
  >
  <!ELEMENT ADDRBOOK EMPTY>
  <!ATTLIST ADDRBOOK
     ADDRBOOK_ID          CDATA           #REQUIRED
     MEMBER_ID            CDATA           #REQUIRED
     TYPE         	  CDATA           #IMPLIED
     DISPLAYNAME          CDATA           #REQUIRED
     DESCRIPTION          CDATA           #IMPLIED
  >
  <!ELEMENT ADDRESS EMPTY>
  <!ATTLIST ADDRESS
     ADDRESS_ID           CDATA           #REQUIRED
     ADDRESSTYPE          CDATA           #IMPLIED
     MEMBER_ID            CDATA           #REQUIRED
     ADDRBOOK_ID          CDATA           #REQUIRED
     ORGUNITNAME          CDATA           #IMPLIED
     FIELD3               CDATA           #IMPLIED
     BILLINGCODE          CDATA           #IMPLIED
     BILLINGCODETYPE      CDATA           #IMPLIED
     STATUS               CDATA           #IMPLIED
     ORGNAME              CDATA           #IMPLIED
     ISPRIMARY            CDATA           #IMPLIED
     LASTNAME             CDATA           #IMPLIED
     PERSONTITLE          CDATA           #IMPLIED
     FIRSTNAME            CDATA           #IMPLIED
     MIDDLENAME           CDATA           #IMPLIED
     BUSINESSTITLE        CDATA           #IMPLIED
     PHONE1               CDATA           #IMPLIED
     FAX1                 CDATA           #IMPLIED
     PHONE2               CDATA           #IMPLIED
     ADDRESS1             CDATA           #IMPLIED
     FAX2                 CDATA           #IMPLIED
     NICKNAME             CDATA           #REQUIRED
     ADDRESS2             CDATA           #IMPLIED
     ADDRESS3             CDATA           #IMPLIED
     CITY                 CDATA           #IMPLIED
     STATE                CDATA           #IMPLIED
     COUNTRY              CDATA           #IMPLIED
     ZIPCODE              CDATA           #IMPLIED
     EMAIL1               CDATA           #IMPLIED
     EMAIL2               CDATA           #IMPLIED
     PHONE1TYPE           CDATA           #IMPLIED
     PHONE2TYPE           CDATA           #IMPLIED
     PUBLISHPHONE1        CDATA           #IMPLIED
     PUBLISHPHONE2        CDATA           #IMPLIED
     BESTCALLINGTIME      CDATA           #IMPLIED
     PACKAGESUPPRESSION   CDATA           #IMPLIED
     LASTCREATE           CDATA           #IMPLIED
     OFFICEADDRESS        CDATA           #IMPLIED
     SELFADDRESS          CDATA           "0"
     FIELD1               CDATA           #IMPLIED
     FIELD2               CDATA           #IMPLIED
     TAXGEOCODE           CDATA           #IMPLIED
     SHIPPINGGEOCODE      CDATA           #IMPLIED
  >

Ejemplo:  generar un esquema y un archivo XML detallado para las tablas EMPLOYEE y STAFF de la base de datos SAMPLE

En este ejemplo, DTD Generator se invoca de la manera siguiente:

Windows NT Windows 2000
java com.ibm.wca.DTDGenerator.GenerateDTD -dbname SAMPLE -dbuser johndoe
-dbpwd password -xmlTableDesc c:\sample\sample.xml -outfile tables.dtd
-tablenames "employee,staff"

AIX Solaris Linux
java com.ibm.wca.DTDGenerator.GenerateDTD -dbname SAMPLE -dbuser johndoe
-dbpwd password -xmlTableDesc usr/sample/sample.xml -outfile tables.dtd
-tablenames "employee,staff"

iSeries
QWEBCOMM/GENWCSDTD DATABASE(MIBD) SCHEMA(SAMPLE)
INSTROOT(/QIBM/UserData/WebCommerce/instances/mser) PASSWD(micontraseña)
OUTFILE(tables.dtd) TABNAMES('employee,staff') XMLTABDESC(/sample/sample.xml)

El archivo de esquema se crea en el directorio sample con el nombre WCAWebForm.xsd. El archivo de salida sample.xml contiene lo siguiente:

  <?xml version="1.0" encoding="UTF-8"?>
  <formList xmlns="WCAWebForm.xsd" dbname="SAMPLE" dtdname="tables.dtd">
  <form name="EMPLOYEE">
  <uniqueIndex name="U2" columns="FIRSTNME,LASTNAME"/>
  <uniqueIndex name="U3" columns="MIDINIT,LASTNAME"/>
  <field name="EMPNO" type="string" maxlength="6" minOccurs='1' uniqueKey="true" showColumnInList="true" />
  <field name="FIRSTNME" type="string" maxlength="32" minOccurs='1' showColumnInList="true" />
  <field name="MIDINIT" type="string" maxlength="1" minOccurs='1' showColumnInList="true" />
  <field name="LASTNAME" type="string" maxlength="15" minOccurs='1'showColumnInList="true" />
  <field name="WORKDEPT" type="string" maxlength="3" showColumnInList="true" />
  <field name="PHONENO" type="string" maxlength="4"/>
  <field name="HIREDATE" type="date" maxlength="10"/>
  <field name="JOB" type="string" maxlength="8"/>
  <field name="EDLEVEL" type="integer" maxlength="5" minOccurs='1' />
  <field name="SEX" type="string" maxlength="1"/>
  <field name="BIRTHDATE" type="date" maxlength="10"/>
  <field name="SALARY" type="decimal" maxlength="9"/>
  <field name="BONUS" type="decimal" maxlength="9"/>
  <field name="COMM" type="decimal" maxlength="9"/>
  </form>
  <form name="STAFF">
  <field name="ID" type="integer" maxlength="5" minOccurs='1' uniqueKey="true" showColumnInList="true" />
  <field name="NAME" type="string" maxlength="9" showColumnInList="true" />
  <field name="DEPT" type="integer" maxlength="5" showColumnInList="true" />
  <field name="JOB" type="string" maxlength="5" showColumnInList="true" />
  <field name="YEARS" type="integer" maxlength="5" showColumnInList="true" />
  <field name="SALARY" type="decimal" maxlength="7"/>
  <field name="COMM" type="decimal" maxlength="7"/>
  </form>
  </formList>

Conceptos relacionados

Tareas relacionadas

Referencias relacionadas

Copyright de IBM