DTD およびスキーマの生成

DTD 生成プログラムは、ローダー・パッケージで使用する文書タイプ定義 (DTD) およびスキーマを作成できます。 DTD 生成プログラムは、データベースのテーブル名を含む入力ファイルを使用して、 DTD、または DTD およびデータベースを記述する詳細 XML ファイル付きのスキーマのいずれかを生成します。どちらが生成されるかは、DTD 生成コマンドの呼び出し方法によって決まります。

例:  WebSphere Commerce 5.1 で MALL データベースの選択テーブルの DTD を生成する

TableNames.txt 入力ファイルには、 以下のデータベース・テーブル名が 1 行に 1 つずつ含まれています。

MEMBER
ADDRBOOK
ADDRESS

以下は DTD 生成プログラムがどのように呼び出されるかの例です。

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(mypassword) OUTFILE(wc.dtd) INFILE(TableNames.txt)

出力ファイル wc.dtd には以下が含まれます。

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

例:  SAMPLE データベースの EMPLOYEE および STAFF テーブルに対するスキーマおよび詳細 XML ファイルを生成する

この例では、DTD 生成プログラムは以下のようにして、呼び出されます。

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)

スキーマ・ファイルは sample ディレクトリーに作成され、 そのファイル名は WCAWebForm.xsd です。 sample.xml 出力ファイルの内容は以下のとおりです。

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

関連概念

関連タスク

関連参照

IBM 著作権