• 検索結果がありません。

Lotus Domino XML活用の基礎!

N/A
N/A
Protected

Academic year: 2021

シェア "Lotus Domino XML活用の基礎!"

Copied!
48
0
0

読み込み中.... (全文を見る)

全文

(1)

Lotus Domino XML 活用の基礎!

2004/12/01

日本・アイ・ビー・エム株式会社 ソフトウェア事業

(2)

て、できる限り正確を期すよう努めてはおりますが、いかなる明示または暗黙の保証も

責任も負いかねます。本資料の情報は、使用先の責任において使用されるべきもので

あることを、あらかじめご了承ください。

ƒ

掲載情報は不定期に変更されることもあります。他のメディア等に無断で転載する事は

ご遠慮ください。

ƒ

本資料の著作権は日本アイ・ビー・エムにあります。非営利目的の個人利用の場合にお

いて、自由に使用してもかまいませんが、営利目的の使用は禁止させていただきます。

ƒ

IBM、AIX、WebSphere、は IBM Corporation の商標。

Lotus、Lotus Domino、Lotus Notes、Lotus Workplace Messaging、Lotus Enterprise

Integrator、Lotus Enterprise Script Builder、Lotus Domino Unified Communications

Service、Lotus Instant Messaging/Web Conferencing、Lotus Team Workplace、Lotus

Workplace Team Collaboration、Lotus Learning Management System、Lotus Virtual

Classroom、Lotus LearningSpace、Lotus Workplace Collaborative Learning、Lotus

Domino Document Manager、Lotus Discovery Server、Lotus Extended Search、Lotus

Workplace Web Content Management、Lotus Workflow、は IBM-Lotus の商標。

(3)

ƒ

Domino XML の概要

ƒ

Domino XML で見栄えの良い Lotus Domino Web

アプリケーションを作成する

ƒ

データ交換のために

XML を利用した Lotus Domino

Webアプリケーションを作成する

ƒ

フォームで

XML を利用する

ƒ

サーバー・サイドで

XML の生成を行う

ƒ

付録:用語集

(4)

ƒ

XML フォーマットで記述された Lotus Domino デー

タベース構造を表すために設計された言語。

ƒ

Lotus Notes/Domino R5 から利用可能 (注:本書

の内容は

Lotus Notes/Domino 6.x を基にしてい

ます。)

ƒ

DXL のスキーマ言語には DTD を使用(Domino

DTD)。<DominoDirectory>¥xmlschemas¥ に

定義。

(5)

ƒ

ブラウザーに

Lotus Domino のデータを渡し、XSL

DHTML/Javascript/CSS と組み合わせてアプリ

ケーションを作成する。

(6)

ƒ

Lotus Domino のデータが、そのまま XML として利

用でき、別システムを用意する必要がない

ƒ

Lotus Domino の優れた機能がそのまま利用できる



セキュリティー



レプリカ

/クラスタリング※/エージェント/全文索引 など

ƒ

Lotus Domino と XML アーキテクチャの親和性

ƒ

実装方法によっては、既存のデータベースがほぼその

まま使用できる

※ブラウザーをご利用で、本格的なクラスタリングのフェール・オーバーが必要な場合、別途専用機器を導入する必要があります。

(7)

ƒ

考慮すべき点



Web 化による負荷は考慮されているか?



Lotus Notes Client とブラウザーの機能やユーザービリ

ティの違い、利用方法は考慮されているか?(付録参照)



ブラウザーの修正モジュールによる動作の違いを吸収できる

か。セキュリティー対策ができているか。

(8)

ƒ

Web及びXML化する範囲の特定



表現のために

XML を使うのか or データ交換のために

XML を使うのか?



ブラウザーからのアクセスのみ発生するのか、Lotus

Notes Clientなどからのアクセスもありうるのか?



ユーザーの入力が必要になるのか、参照のみか

?

(9)

ƒ

一般的な

XML アプリケーションの実装方法



XML と XSL をサーバーから取り寄せて使用する。



XML と スクリプト言語/DHTML などを組み合わせて使用

する



サーバー側で

XML データを処理し、 HTML データとしてブ

ラウザーに渡す。

アプリケーション作成の指針

(XML 化の実装方法)

(10)

DXL で見栄えの良い

(11)

ƒ

?ReadViewEntries



ブラウザーがビューから

XML として取得するための URLコマンド



通常の

Lotus Domino のビューにアクセスするときの URL

?ReadViewEntries の URLコマンドをつける



Domino DTD に沿った DXL の形式で XML データを生成

(12)

(Browser)

DXL をビューから取得する

http://servername.co.jp /database.nsf/viewname ?ReadViewEntries http://servername.co.jp /database.nsf/viewname (Lotus Domino の データベースのビューを元に DXL を生成)

(13)

<?xml version="1.0" encoding="UTF-8"?> <viewentries toplevelentries="2">

<viewentry position="1" unid="727F4F956E9114A149256F38001B7BD3" noteid="936" children="2" descendants="4" siblings="2">

<entrydata columnnumber="1" name="TITLE"> <text>親文書</text></entrydata>

<entrydata columnnumber="2" name=“BODY"> <text>親文書テキスト</text></entrydata> <entrydata columnnumber="3" name=“DATE">

<datetime>20041025T140049,54+09</datetime></entrydata> <entrydata columnnumber="4" name=“AUTHOR">

<text>Haruto Nakamura/LotusBPTech</text></entrydata> </viewentry>

(... 続く)

</viewentries>

(14)

DXL の中身

日付と時刻のデータ。 datetime 文字列形式のデータ。 text このエントリが含まれる列の名前。 name このエントリを含む列のインデックス番号。 columnnumber ビューの 1 列に対するデータの単一列のセルを表す。 entrydata ビュー階層でこのエントリに属する同レベルの文書の数 (このエントリを含まない) 。 siblings ビュー階層でこのエントリに属する全子エントリの数 (このエントリを含まない) 。 descendants ビュー階層で、このエントリの直属の子エントリの数。 children 文書の NoteID。 noteid 文書のユニバーサル ID (UNID) 。 unid ビュー階層でのエントリの位置。 position ビューの 1 行を示す。 view entry ビュー内のトップレベルエントリまたは主要文書の数。 toplevelentries Lotus Domino データベースのビューの構造を定義。ルート要素。 viewentries

(15)

XML と XSL と結びつける

ƒ

取得した

XML と XSL を結びつけるためには



?ReadViewEntries で取得した XML に対して XSL に結

びつける方法は?

<? xml-stylesheet type=“text/css” href=“style.xsl” ?>

?Readviewentries には

↑上記の↑のようなタグを

直接

XML データに埋め込む簡単な方法がない

ƒ

Dynamic XML を利用する。



本書では

HTML と Javascript を組み合わせて、

(16)
(17)

コーディングのポイント

1. – 設計要素の[ページ]を利用する

ƒ

ページとは



クライアントに画面を表示するための設計要素。フォームと異なり、文書にひ

もづけられてなく、アプリケーションのどの部分でも使用可能

ƒ

Web/XML 化でのページの使用



ページのプロパティの

[ページ情報]

タブの

Web アクセスを HTML にする

ƒ

ブラウザーからページにアクセスする。

http://server/test.nsf/page

(18)
(19)

Demo:Javascript 内

function applyXSL() {

oResults = document.getElementById("results");

oXML = document.getElementById("testxml");

oXSL = document.getElementById("testxsl");

oResults.innerHTML =

oXML.transformNode(oXSL.documentElement);

}

デモのデータベース内で、testxml, testxsl は xml island, results は div として設定されている

(20)

Demo:XLS 内

<td class="Ccol">

<a id="anchor_{../@unid}" href=

"0/{../@unid}"

>

<xsl:value-of select="." />

</a>

</td>

ƒ

文書の unid を URL に指定することで文書を開く。

ƒ

ビューを明示的に指定しない方法として 0/ を指定する方法がある。

コーディングのポイント

3. - リンクの作成

例:http://server.co.jp/test.nsf/0/9F7BCBB6ED1746E449256F3B002FC16C

(21)

ƒ

階層構造のビュー



列構造により、親文書と子文書が同じフィールドの値を取れ

るとは限らない



対象のビューを階層構造にしないか、ブラウザー側で加工

ƒ

パフォーマンス



一度に多くの文書を読み込まない(列数も考慮する)



ブラウザーのレンダリング能力

/スクリプトの処理能力/パー

サーの処理能力を考慮

?

ReadViewEntries を使うときの注意点(1)

(22)

ƒ

ビューの列の順番



ビューの列順どおりに

DXL に読み込まれる

ƒ

entrydata の name 属性の値



列名ではなく、設計要素名が利用される

<entrydata columnnumber="1" name="TITLE">

ƒ

各種ブラウザーとの乗り入れ



各種ブラウザー用のコーディング

(23)

?ReadViewEntries のオプション(一部)

StartKey の種類を指定します。引数が指定されていない場合、デフォ ルトはテキストです。 KeyType = text|time ( UntilKey は StartKey といっしょに使用するときだけ有効です。 StartKey で指定した文書で始まり UntilKey で指定した文書で終わ るビューエントリの範囲を表示することができます。 UntilKey = string string はソートされたビュー内の文書へのキーです。 StartKey = string n には、ビューの表示を開始する行番号を指定します。階層表示ビュー の行番号にはサブインデックスを含めることができます。 Start = n サーバーの全データ型をテキストに変換します。 PreFormat n は表示する文書数です。 Count = n

(24)

ƒ

Count = n



デフォルトでは

30文書に設定

(例)http://servername/db.nsf/view?ReadViewEntries&Count=100 あまり多くの文書を読み込むと、パフォーマンス低下の可能性

ƒ

Start = n



表示する文書の順番のうち、最初に表示させる文書を指定

(例)http://servername/db.nsf/view?ReadViewEntries&Start=100 Count との組み合わせで使用すると効果的 (例)http://servername/db.nsf/view?ReadViewEntries&Start=20&Count=20 <viewentry position=“n”....> の n に相当

?

ReadViewEntries のオプション(一部)

(25)

ƒ

StartKey = string



DXL で最初に取得する文書のキー

(例)http://servername/db.nsf/view?ReadViewEntries&StartKey=親文書50 ビューがソートされている必要あり。

ƒ

UntilKey = string



DXL で最後に取得する文書のキー

(例)http://servername/db.nsf/view?ReadViewEntries&StartKey=親文書 50&UntilKey=親文書75 必ず StartKey の指定が必要。

?

ReadViewEntries のオプション(一部)

(26)

ƒ

Preformat



text 型以外のデータ型をサーバーが自動変換

(例)http://servername/db.nsf/view?ReadViewEntries&Preformat <datetime>20041025T140049,54+09</datetime> ↓ <text>2004/10/25 14:00:49</text>

?

ReadViewEntries のオプション(一部)

(27)

ƒ

DXL による Web 化 -> ポータル化

ƒ

考慮する点



認証

シングルサインオン

(参考)Web サイト領域認証文書



管理

表示させるポータル画面の管理



テンプレート開発

ポータルの実装のコストと手間

Portal化

本格的なポータルをご検討される場合には、既存の弊社ポータル製品をお勧め致します。

(28)

データ交換のために

XMLを利用した

(29)

ƒ

簡単に自動で持ってくる反面、要素名が固定

ƒ

要素名が長く、階層深い

ƒ

必要以外のデータが含まれている

ƒ

データ交換には不向き

?ReadViewEntries での特徴

データ交換のためには

ƒ

必要な要素名のみを使う

ƒ

交換しやすいように要素を決定する

(30)

ƒ

xml のタグを直接ビューに含めるような設計にする



列の先頭/末尾に文書を示すタグを含める



各列に文書の要素を示すタグを含める

View の設定

xml のルートタグがxml のタグ

を含めることが出来ないため、

このままでは使用できない。

(31)

1. page に埋め込みビューとしてビューを埋め込む

ƒ

[作成 - 埋め込み設計要素 – ビュー]

ƒ

ヘッダの内容もブラウザーに渡されるので、必要なければオフにする

(32)

2. page に必要なタグを埋め込む

(33)

3. ブラウザーに表示できる設定を行う

ƒ

ビューの設定 → ビューの設定を HTML として扱う

ƒ

埋め込みビューの設定 → HTML を使用

ƒ

ページの設定 → コンテントタイプ text/xml (xml island などを使い html データにし

たい場合には、 html をチェック)

page の設定

(34)

ƒ

直接ビューに表示する文書数を操作する方法がない



ビューに SELECT 文を追加してビューで文書を振り分ける

ƒ

メンテナンス



フィールドの追加/変更には注意を払う

(35)
(36)

フォームで

XML を利用する

フォームは必ずしも XML 化を行う必要はありません。



ビューだけで機能が充足されるのであれば、必ずしも XML 化を行う必要はない。

(37)

ƒ

ビュー



データベースにひもづけられた設計要素であり、データベースに複数作成す

ることが可能。

ƒ

フォーム



文書にひもづけられた設計要素であり、基本的に文書に一つのみ。

フォームの XML化 - ビューとフォームの特性の違い

(38)

ƒ

簡単なフォームで、表現力が必要でない場合



機能的に必要でなければ、無理に XML にしない(DHTML と CSS で十分

な場合もある)



Lotus Domino Designerで作成したフォームは自動変換によりブラウザー

に表示可能

ƒ

Form を XML で表現したい場合



フォームのプロパティのデフォルトタブの Webアクセス内、コンテントタイプ

に [HTML] またはその他にチェックを入れ “text/xml” を指定する



Lotus Notesとブラウザー両方からアクセスする場合には、

そのための仕組みを実装することが必要

フォームの XML化 - 実装方法

(39)

フォームの XML化 - Lotus Notes とブラウザーのためのフォームの切り分け方法の例

ƒ

フォーム内の非表示式で切り分ける



一つのフォーム内の非表示式で Web と Lotus Notes を切り分ける



設計が複雑になりやすいので注意

ƒ

パススルー HTML を使用する



Lotus Notes 使用時のデザインが通常と異なる

ƒ

計算結果のサブフォームを利用する



フォームの中に Lotus Notes/ Web で表示するサブフォームを埋め込む



@Clienttype, @Browserinfo などを利用する

ƒ

同じ別名を持つフォームを作成する

(40)
(41)
(42)

サーバー・サイドで

XML を生成する

ƒ

長所



クライアント側に負荷がかかりづらい



柔軟なコーディングが可能



Lotus Script や Java で用意されている XML のクラスが使

用できる (DOM parser/SAX)

ƒ

短所

(43)

サーバーサイドで

XML を生成する

ƒ

手順



1. Lotus Domino Designerで処理を行うエージェントを作成



2. ブラウザーからエージェントを呼び出す



3. ブラウザーに結果が表示される

(44)

ƒ

XML 内で XSL を指定してブラウザーで表示する



page/form ではこの方法が使用できる。



?ReadViewEntries では直接この方法は利用できない



xsl はブラウザーの種類により大きく依存する

ƒ

XML と スクリプト言語、 DHTML、CSS などを組み合わせて使用する



ご紹介したすべての設計要素で使用できる



スクリプト言語はブラウザーの種類に依存する部分がある



クライアントの負荷に注意。

ƒ

サーバー側で

XML データを処理し、 HTML データとしてブラウザーに渡す。



柔軟なコーディングが可能だが、若干難度が高い



標準的なHTML をクライアント側に渡せば、クライアントにはほぼ依存しない。



サーバー側の負荷に注意

アプリケーション作成の指針

(XML 化の実装方法)

(45)

ƒ

DXL に関する資料



Lotus Domino Designerでの XML のエクササイズ

http://www-6.ibm.com/jp/domino07/lotus/home.nsf/Content/DN5_X_XML_Designer



XML Powered by Domino How to use XML with Lotus

Domino (英語)

http://www.redbooks.ibm.com/redbooks.nsf/0/7fccf9355f830c15852569510043ef2a? OpenDocument

(46)

ƒ

?ReadviewEntries に関する資料



Using Domino data in Web Applications: XML lessons

from iNotes Web Access (英語)

http://www-10.lotus.com/ldd/today.nsf/Lookup/XML_iNotes



Creating dynamic categorized views (英語)

http://www-10.lotus.com/ldd/today.nsf/lookup/DynamicCategorizedViews

ƒ

xml islands に関する資料



Lotus Domino Designerで XML データ・アイランドを使う

(47)

ƒ

Web 化全般に関する資料



Building dynamic collapsible views for Web

applications(英語)

http://www-10.lotus.com/ldd/today.nsf/Lookup/DynamicCollapsibleViews



Webifying an existing Notes Application(英語)

http://www-10.lotus.com/ldd/today.nsf/lookup/Webifying_Notes_applications



Domino URL 虎の巻

http://www-6.ibm.com/jp/domino07/lotus/home.nsf/Content/DN5_X_Domino_URL_cheat_sheet



(管理者ヘルプ)

Notes および Web アプリケーションを設計するための

ヒント

(48)

xml Document Object model。XML にアクセスするための API。階 層化構造。 xmlDOM HTML 内に存在する xml 文書。 <xml></xml> タグで括られる。 xml island 見栄えのための情報を記述したもの。CSS などが含まれる。 スタイルシート Lotus Notes/Domino R5 から使用できる設計要素で、フォームと似て いるが文書にはひもづいていない。HTML などの記述も可能 ページ データベースの文書の位置情報を示す一意の ID NoteID

Universal IDの略。Lotus Notes/Dominoの文書を一意として識別す るための ID。すべてのレプリカDB上の同じ文書には、同じ UNID が振ら れる。 UNID URL の引数として URL の後ろに付けるコマンド文。サーバー側で処理す るための引数として使われる。 URL コマンド Dynamic に XML 文書にアクセスするための API。 Dynamic XML タグ定義を行う文書の広義。DTD や XML Schema がそれにあたる。 スキーマ言語 埋め込まれたタグの定義を行う定義文書 DTD XML のスタイルを記述するための言語 XSL

Domino DTD で制定されている Lotus Domino 用の XML DXL

参照

関連したドキュメント

Since the optimizing problem has a two-level hierarchical structure, this risk management algorithm is composed of two types of swarms that search in different levels,

1-1 睡眠習慣データの基礎集計 ……… p.4-p.9 1-2 学習習慣データの基礎集計 ……… p.10-p.12 1-3 デジタル機器の活用習慣データの基礎集計………

クチャになった.各NFは複数のNF  ServiceのAPI を提供しNFの処理を行う.UDM(Unified  Data  Management) *11 を例にとれば,UDMがNF  Service

All-In-One Capture, Camtasia, Camtasia Relay, Camtasia Studio, Coach’s Eye, Coach’s Eye +, DubIt, EnSharpen, Enterprise Wide, Jing, Knowmia, Morae, Rich Recording Technology

メモ  : 権利の詳細な管理は、 BlackBerry WorkspacesEnterprise ES モード BlackBerry Workspaces およ. び Enterprise ES ( 制限付きフルアクセス )

Nordenstam, Young, Domino shuffling on Novak half-hexagons and Aztec

The second is more combinatorial and produces a generating function that gives not only the number of domino tilings of the Aztec diamond of order n but also information about

In real world, the company often makes use of supplier selection on fuzzy decision space to promote their commodities. The selection of supplier of enterprise