Génération d'une DTD et d'un schéma

Le générateur de DTD (DTD Generator) crée une définition de type de document (DTD) et un schéma pouvant être utilisés avec l'utilitaire Loader. DTD Generator utilise un fichier d'entrée contenant des noms de tables de base de données et génère soit uniquement une DTD, soit une DTD et un schéma avec un fichier XML détaillé décrivant la base de données en fonction de la méthode d'appel de l'instruction DTD Generate.

Exemple : génération d'une DTD pour les tables sélectionnées de la base de données MALL sur WebSphere Commerce 5.1

Le fichier d'entrée TableNames.txt contient les noms suivants de tables de base de données, un sur chaque ligne :

MEMBER
ADDRBOOK
ADDRESS

Voici un exemple de méthode d'appel du générateur de DTD (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(DATABASE_NAME) SCHEMA(MALL)
INSTROOT(/QIBM/UserData/WebCommerce/instances/mser)
PASSWD(monmotdepasse) OUTFILE(wc.dtd) INFILE(TableNames.txt)

Le fichier de sortie wc.dtd contient les informations suivantes :

  <!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
  >

Exemple : génération d'un schéma et d'un fichier XML détaillé pour les tables EMPLOYEE et STAFF de la base de données SAMPLE

Dans cet exemple, le DTD Generator est appelé comme suit :

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(MYDB) SCHEMA(SAMPLE)
INSTROOT(/QIBM/UserData/WebCommerce/instances/mser) PASSWD(mypassword)
OUTFILE(tables.dtd) TABNAMES('employee,staff') XMLTABDESC(/sample/sample.xml)

Le fichier schéma est créé dans le répertoire sample et a comme nom WCAWebForm.xsd. Le fichier de sortie sample.xml contient les informations suivantes :

  <?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>

Rubriques connexes

Tâches connexes

Référence connexe

IBM copyright