解説
制約事項
新規データの作成
DTD(文書型定義)
コマンドとXMLtableバージョンについて
XMLtableの今後
MUSAHSIでは処理対象となる表構造のデータをXMLtableによって記述しています。
XMLtableは以下に示されるような完全なXML文書です。XMLデータを表示可能なブラウザ(例えばIE 6.0)では、ここをクリックすればより美しく閲覧できます。
<?xml version="1.0" encoding="euc-jp"?>
<xmltbl version="1.1">
<header>
<title>日別顧客購買数量金額</title>
<comment>XMLtableサンプルデータ</comment>
<field no="1" name="顧客番号" sort="1">3桁の数字</field>
<field no="2" name="顧客名"></field>
<field no="3" name="日付">その顧客が購入した日付</field>
<field no="4" name="購買数量">その日に何アイテム商品を購入したか</field>
<field no="5" name="購買金額" sort="2" numeric="1" reverse="1">その日に購入にした商品の金額合計</field>
</header>
<body><![CDATA[
100 宮本武蔵 20010509 1 459
100 宮本武蔵 20010811 1 341
100 宮本武蔵 20010423 1 271
101 佐々木小次郎 20010811 15 1800
101 佐々木小次郎 20010423 10 878
101 佐々木小次郎 20010621 8 799
101 佐々木小次郎 20010509 3 589
101 佐々木小次郎 20010423 1 112
102 巌流島太郎 20010509 1 456
102 巌流島太郎 20010426 1 254
102 巌流島太郎 20010915 1 245
102 巌流島太郎 20010811 1 121
201 巌流島太郎 20010621 1 98
]]></body>
</xmltbl>
以下の図は、上記のXMLtableをIEで表示させたものです。
MUSASHIのコマンドがXMLtableを処理する際には、以下の制約をデフォルトとしている。
コンパイル時に、mssConfig.hを編集すれば、制約を変更することができる。
タイトル最大長 256バイト コメント最大長 10240バイト 項目名長 256バイト 一行あたり最大文字数 2048バイト 一行あたり最大項目数 256項目 一項目あたり最大文字数 256バイト 最大行数 約21億行
XMLtableによって新たなデータを手入力で作成したい時は、原則的には、次の方法に従って作成してください。
1. 全てのXMLタグを無視し、データ部のみをテキストエディタで入力する(その時、一行目に項目名を指定しておく)。
顧客番号 顧客名 日付 購買数量 購買金額
100 宮本武蔵 20010509 1 459
100 宮本武蔵 20010811 1 341
100 宮本武蔵 20010423 1 271
101 佐々木小次郎 20010811 15 1800
101 佐々木小次郎 20010423 10 878
101 佐々木小次郎 20010621 8 799
101 佐々木小次郎 20010509 3 589
101 佐々木小次郎 20010423 1 112
102 巌流島太郎 20010509 1 456
102 巌流島太郎 20010426 1 254
102 巌流島太郎 20010915 1 245
102 巌流島太郎 20010811 1 121
201 巌流島太郎 20010621 1 98
2. txt2xtコマンドを利用してXMLtableに変換する。
% txt2xt -F -i sample.txt -o sample.xt
XMLtable version 1.1 <!ELEMENT xmltbl (header,body)> <!ELEMENT header (title?,comment?,field+)> <!ELEMENT body (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT comment (#PCDATA)> <!ELEMENT field (#PCDATA)> <!ATTLIST xmltable version (1.1) "1.1"> <!ATTLIST field no ID #REQUIRED name CDATA #REQUIRED sort NMTOKEN #IMPLIED numeric (0|1) #IMPLIED reverse (0|1) #IMPLIED >
上記リンクのDTDファイルは、ブラウザ上では閲覧できません。ダウンロードした後にテキストエディタ等で閲覧してください(サンプルXMLデータはブラウザがXMLに対応していれば閲覧できます)。
現在のMUSASHIの全てのコマンドは、入力データについては両バージョンともサポートしています。
出力データは、デフォルトでは1.1で出力されます。
1.0で出力したい場合(例えば、MUSASHI-GUIはバージョン1.0を前提としています)は、"mssConfig.h"の"MssXtDefVer"マクロを修正の上、再コンパイルが必要となります。
XMLtableは今後、以下の点を中心に、さらに充実させる予定です。