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) :
![]()
![]()
![]()
![]()
java com.ibm.wca.DTDGenerator.GenerateDTD -dbname MALL -dbuser db2inst1
-dbpwd db2ibm -outfile wc.dtd -infile TableNames.txt
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 :
![]()
![]()
java com.ibm.wca.DTDGenerator.GenerateDTD -dbname SAMPLE -dbuser johndoe
-dbpwd password -xmlTableDesc c:\sample\sample.xml -outfile tables.dtd
-tablenames "employee,staff"
![]()
![]()
![]()
java com.ibm.wca.DTDGenerator.GenerateDTD -dbname SAMPLE -dbuser johndoe
-dbpwd password -xmlTableDesc usr/sample/sample.xml -outfile tables.dtd
-tablenames "employee,staff"
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>
![]() |