DXL 活用の調査・検証で、実現できたことや発見したことご紹介する『DXL Step-by-Step』シリーズの第 8 回です。
今回はイメージリソース(設計要素) を DXL でアクセスして構造を確認します。
イメージリソースの取得
まずは、次のようなイメージリソースを準備しました。
プロパティのフィールドタブを確認すると $TITLE フィールドに設計要素の名前が確認できます。
この構造は 第 5 回 で紹介したエージェント同じですね。今回も同様方法で設計要素を文書で取得してみましょう。サンプルコードも 第 5 回 とほぼ同じで、次の通りです。
Option Declare Private xns As NotesSession Sub Initialize Dim ndb As NotesDatabase Dim ndAgent As NotesDocument Set xns = New NotesSession Set ndb = xns.CurrentDatabase Dim nnc As NotesNoteCollection Set nnc = ndb.CreateNoteCollection(False) nnc.SelectImageResources = True nnc.SelectionFormula = xGetFormula("TitleS.PNG") Call nnc.BuildCollection() Dim dprs As NotesDOMParser If nnc.Count > 0 Then Set ndAgent = ndb.GetDocumentByID(nnc.GetFirstNoteID) Set dprs = xGetDOMParser(ndAgent) Call xSaveDXL(dprs) End If End Sub |
ポイントは赤字の部分です。まず、イメージリソースを取得するので SelectImageResources プロパティに True をセットしています。次にリソース名を検索する式を SelectionFormula に指定しています。
なお、使用している関数は以前作成したものをそのまま利用しています。コードについては、xGetFormula は 第 5 回、xSaveDXL は 第 6 回 を参照ください。
イメージリソースの DXL
実行して取得した DXL は次の通りです。
まず、設計要素全体を表す imageresource エレメントとなっており、name 属性に設計要素名が入っています。
また、imageresource エレメントの中には、png エレメントがあります。ファイルの形式がエレメント名になっていて、その配下の文字列がファイルの中身となっています。
ファイルの中身を表すエレメントの後にフィールドがいくつか存在します。
設計要素のプロパティで確認したフィールドは多数ありましたが、今回の事例では、item エレメントは 3 つだけでした。残りはというと、imageresource エレメントの属性として存在しています。
フィールドによって処理が違うということですね。
まとめ
今回は、イメージリソース(設計要素)を DXL で確認しました。次回は、この DXL から画像ファイルを取り出す方法についてまとめます。
前回 | DXL Step-by-Step | 次回 |
0 件のコメント:
コメントを投稿