Il DTD Generator può creare un DTD (document type definition) ed uno schema da utilizzare con il pacchetto Loader. DTD Generator utilizza un file di immissione contenente i nomi della tabella del database e genera un DTD o un DTD e uno schema con un file XML dettagliato che descrive il database, in base a come si richiama il comando DTD Generate.
Esempio: Creazione di un DTD per le tabelle selezionate del database MALL su WebSphere Commerce 5.1
Il file di immissione TableNames.txt contiene i seguenti nomi della tabella del database, uno su ogni riga:
MEMBER
ADDRBOOK
ADDRESS
Di seguito viene riportato un esempio di come sia possibile richiamare il 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(mypassword) OUTFILE(wc.dtd) INFILE(TableNames.txt)
Il file di emissione wc.dtd contiene quanto segue:
<!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 >
Esempio: Creazione di uno schema e di un file XML dettagliato per le tabelle EMPLOYEE e STAFF del database SAMPLE
In questo esempio, il DTD Generator viene richiamato come riportato di seguito:
![]()
![]()
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)
Il file schema viene creato nella directory sample ed è denominato WCAWebForm.xsd. Il file di emissione sample.xml contiene quanto segue:
<?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>
![]() |