DXL 活用の調査・検証で、実現できたことや発見したことご紹介する『DXL Step-by-Step』シリーズの第 11 回です。
DXL は知らないことばかりなので、整理しておきたい情報が多く連投状態となっております。他の連載などはおいおい進めますので、もう少々お待ちください。
さて、前回は、イメージリソース(設計要素)を 新規作成する方法を紹介しました。この処理で生成される DXL は次のようになります。
出来上がりを見るとシンプルでわかりやすいのですが、いくつか制約など注意点がありますので整理しておきます。
タグの順序
DXL をインポートするときタグの順序が正しくないと、保存(Import)時にエラーが発生します。今回の3つのタグを使用して実験を繰り返した結果、条件は次の通りでした。
- <png> タグは先頭であること
- フィールド <item> タグはその次(画像データの後)
- フィールドは銃所が入れ替わってもかまわない
エラーが発生した場合、次のような画一的なメッセージが表示されます。
これでは、エラーの原因はわかりませんよね。
今回ぐらい単純な DXL ならトライ&エラーで原因調査することも可能ですが、複雑な場合はそうもいきません。せめてエラーの発生したタグぐらい表示してほしいですね。
フィールドの作成
今回は $FileSize と $MimeType の2つのフィールドを作成しました。この2つは作成しなくても、イメージリソースの作成は成功しました。また、フォームに呼び出すなど、利用も問題ないようでした。どうやらこれらフィールドは必須ではないようです。
ただ、$FileSize を作成しない場合、設計の一覧でファイルサイズが表示されなくなりました。実害はないようですが、表示された方が安心ですよね。
また、$MimeType フィールドは、ファイル形式を表している唯一のフィールドに見えたのであった方が良いと判断し、作成することとしました。
重複チェックはされない
そして最後に重要な点です。
DXL から設計要素を作成する場合、名称による重複チェックは行われません。例えば今回のエージェントを複数回実行すると次のように同名のイメージリソースが複数作成されます。まるで、設計要素の競合が発生したような状態ですね。
これは、保存(Import)の際、DesignImportOption プロパティに DXLIMPORTOPTION_CREATE を指定していたので、毎回新規作成したのだと思います。なかなか素直ですね。
実用時には、新規作成なのか更新なのかを判定して、DesignImportOption プロパティをコントロールする必要があるということですね。
まとめ
今回のような制限事項は、イメージリソースに限らずあるようです。エラーが発生して初めて気が付くことになりますので、トライ&エラーの連続となります。これが DXL 開発の難点ですね...
前回 | DXL Step-by-Step | 次回 |
0 件のコメント:
コメントを投稿