2023/07/04

DXL ことはじめ:#1)DXL ってどんなもの?

DXLとは、Domino XML Languageを略した呼称で、ドミノ内の文書や設計などのオブジェクトを XML を使用して表現するための記述言語です。

LotusScript では、DXL を操作するための、クラス群が提供されています。


これらクラスの多くは、Notes/Domino 6 で新たに定義されました。Notes 6 のリリースは、2002 年ですので、もう 20 年以上前の機能ということになりますね。


LotusScript のクラスライブラリを使えば、文書を自由に操作でき、様々な処理が行えます。設計要素についてもいくつかクラスが定義され、ある程度は操作できます。そんな背景から、DXL がリリースされた当初、この機能の価値が理解できませんでした。

LotusScript で操作できるものをわざわざ XML 化する理由がわからないですし、ましてやそれを LotusScript で操作するなんて、なおさらです...

こんな理由からずっと放置していた機能だったのですが、昨年、OpenNTF のプロジェクトで DXL を使用したサンプルを発見し、ノーツアプリケーション開発の可能性を広げる機能だと今更ながら再認識しました。

ちなみに参考にしたプロジェクトは、LotusScript Gold Collection で、リッチテキストに画像を見える状態(インラインイメージ)で貼りつける方法を参考にさせていただきました。


現在は、ノーツコンソーシアムの地域別研究会である大阪研究会の有志で、DXL の調査とサンプルアプリの開発を行っています。


今回の『DXL ことはじめ』シリーズでは、LotusScript で DXL を操作するために必要な基礎知識について整理いたしたいと思います。


DXL でできるようになったこと

まだまだ調査途中ではあるのですが、現時点で次のようなことが可能になりました。

□ リッチテキストに対する操作

  • 画像をインラインイメージで添付
  • 表を動的に作成し、罫線や背景色などを設定
  • ボタンなどアクションをコードとともに動的に生成

□ 設計に対する操作

  • イメージリソースを登録/変更/削除
  • エージェントの実行時間設定など詳細な情報の取得


このように、これまでは LotusScript にクラスやプロパティ、メソッドがないため実現できなかったことができるようになりました。詳細は機会があれば紹介しますが、これまであきらめていたことができるとわかり、可能性を感じています。

同様のことは、DXL を使わない場合、C NotesAPI 経由で操作はできるはずです。しかし、DXL で実現すれば、LotusScript だけで実現できるので、難易度が低い上に手探りで作っても安定性も高いと思われます。


DXL ってどんなもの?

Domino Designer を使用すると、DXL を手っ取り早く確認できます。Designer の右側、『アプリケーション』ウィンドウの設計要素を右クリックすると [DXLで編集] というメニューが表示されます(設計要素によって表示されない場合があります)。


このメニューを選択すると、指定した設計要素が DXL で表示されます。例えば以下は、ビューを DXL で編集した画面です。”view” というノードの中に様々なビューのプロパティが列挙されています。

また、セクションの最後の方には、ビューの選択式や列の設定("colmun"ノード)が列の数だけ並びます。詳細を開くと、列のプロパティが確認できます。


このように DXL は、ノーツのデータを階層化されたノードの集合で表現する(できる)機能であることがわかります。


DXL ことはじめ 次回

0 件のコメント:

コメントを投稿