...

Lotus Notes/Domino Domino XMLの概要 2005年9月 日本アイ・ビー・エム株式会社

by user

on
Category: Documents
105

views

Report

Comments

Transcript

Lotus Notes/Domino Domino XMLの概要 2005年9月 日本アイ・ビー・エム株式会社
®
IBM Software Group
Lotus Notes/Domino
Domino XMLの概要
2005年9月
日本アイ・ビー・エム株式会社
ソフトウェア事業
Lotusテクニカル・セールス
© 2005 IBM Corporation
IBM Software Group | Lotus software
特記事項
ƒ 本資料の記載内容は、正式な IBM のテストやレビューを受けておりません。内容に
ついて、できる限り正確を期すよう努めてはおりますが、いかなる明示または暗黙の
保証も責任も負いかねます。本資料の情報は、使用先の責任において使用されるべ
きものであることを、あらかじめご了承ください。
ƒ 掲載情報は不定期に変更されることもあります。他のメディア等に無断で転載する事
はご遠慮ください。
ƒ 本資料の著作権は日本アイ・ビー・エムにあります。非営利目的の個人利用の場合
において、自由に使用してもかまいませんが、営利目的の使用は禁止させていただ
きます。
ƒ IBM、AIX、WebSphere、は IBM Corporation の商標。
Lotus、Lotus Domino、Lotus Notesは IBM-Lotus の商標。
その他、記載された社名および製品名は、それぞれ各社の商標または登録商標で
す。
IBM Software Group | Lotus software
Agenda
ƒ Lotus Notes/DominoとXMLの関係
ƒ Lotus Notes/DominoにおけるXMLサポート
DXL、Domino DTD
Lotus DominoのJavaメソッド
XML4J、LotusXSL
DXLプロセッサー・クラス
XMLプロセッサー・クラス
ƒ Lotus DominoにXMLデータをImportする方法
外部XMLデータをDXLに変換してImport
エージェント(LotusScript/Java)を利用する方法
サーブレットを利用する方法
IBM Software Group | Lotus software
Lotus Notes/DominoとXMLの関係
ƒ Lotus Notes/Dominoのオブジェクト・モデルはXMLの考え方に似ています
Dataとプレゼンテーションが分離
•Data=文書
•プレゼンテーション=FormやViewなどの設計要素
ツリー構造で親子関係のオブジェクトを管理
データ
表示
Domino Form
Lotus Domino
文書
XML文書
Field NAME: 日本太郎
Field COMPANY: 日本IBM
XSL Stylesheet
<Name> 日本太郎</Name>
<Company> 日本IBM</Company>
IBM Software Group | Lotus software
Lotus Notes/DominoにおけるXMLサポート
Lotus Domino文書の
XML表現
„ DXL (Domino XML
Langage)
„ Domino DTD
„ Lotus Dominoの
XMLメソッド
zgenerateXML
ztransformXML
zparseXML
XML文書の処理
„ Java API
zXML4J
zLotusXSL
„LotusScript
zXML基本クラス
NotesXMLProcessor
zDXLプロセッサー・クラス
NotesDXLExporter
NotesDXLImporter
zXMLプロセッサー・クラス
NotesXSLTransformer
NotesSAXParser
NotesDOMParser
IBM Software Group | Lotus software
Lotus Notes/DominoにおけるXMLサポート
-DXL、Domino DTD
ƒ DXL
XML フォーマットで記述された Lotus Domino データベース構造を表す
ために設計された言語
リッチテキストも表現可能
設計要素のエキスポートも可能
ƒ Domino DTD
DXLで使用される要素や属性を定義したファイル
<DominoDirectory>¥xmlschemas¥ に定義
IBM Software Group | Lotus software
Lotus Notes/DominoにおけるXMLサポート
-Lotus DominoのXMLメソッド
ƒ Lotus Domino Javaメソッド
Document.generateXML
•
ドミノ文書をXMLテキストに変換
Item.transformXML
•
アイテムの値をスタイルを指定して添付ファイル内の内容をXMLテキス
トに変換
Item.parseXML
•
添付ファイル内のアイテムの値をDOMオブジェクトに変換
ƒ Lotus Domino URLコマンド
ReadViewEntries
•
•
•
•
ビューに表示されている情報をXML文書として出力
自動でデータを取得する反面、要素名が固定
要素名が長く、階層も深いため、必要以上のデータを取得してしまう
データ交換には不向き
IBM Software Group | Lotus software
Lotus Notes/DominoにおけるXMLサポート
-XML4J、LotusXSL
ƒ JavaのXMLパーサー
XML4J・・・DOM/SAX API
LotusXSL・・・XSLT
ƒ 現在はXerces/Xalanとして発展
ƒ JavaでXMLを使用する際には以下3つのファイルをclasspathにとおす
必要があります(これらのファイルはLotus Dominoサーバーの
Data¥domino¥javaディレクトリ以下にあります)
NCSO.jar
XML4J.jar
LotusXSL.jar
IBM Software Group | Lotus software
Lotus Notes/DominoにおけるXMLサポート
-DXLプロセッサー・クラス
ƒ NotesDXLExporter
Lotus DominoデータをDXL言語で記述されたXMLに変換
ƒ NotesDXLImporter
DXL化されたXMLデータをLotus Dominoデータに変換
IBM Software Group | Lotus software
Lotus Notes/DominoにおけるXMLサポート
-XMLプロセッサー・クラス
ƒ NotesDOMParser
メモリー上にDOMツリーを構築し、DOMツリー内をノードからノードへと移
動して構文解析
DOM・・・Document Object Model
ƒ NotesSAXParser
XMLデータをストリームとして読み出した後、アプリケーションが処理できる
イベントとして生成
SAX・・・Simple API for XML
ƒ NotesXSLTransformer
XSLTを介してDXLデータを変換
IBM Software Group | Lotus software
Lotus DominoにXMLデータをImportする方法
- 外部XMLデータをDXLに変換してImport :-
ƒ Lotus Dominoにインポートする前に、あらかじめDXLフォーマットにXMLファイル
を変換しておけばNotesDXLImportで簡単にImport可能
ƒ Servletなどの外部プログラムでDXLをハードコードする方法もあり
XSLT
XML文書
NotesDXLImport
DXL
Lotus Domino
DB(nsf)
外部システム
XSL
Stylesheet
Lotus
Domino
IBM Software Group | Lotus software
Lotus DominoにXMLデータをImportする方法
-エージェント(LotusScript/Java)を利用する方法-
ƒ Lotus DominoのエージェントはLotusScriptでもJavaでも記述可能
ƒ エージェントでまずXML Dataを Lotus Domino DBに直接格納
Text Field
Rich Text Field
添付ファイル
メール
ƒ 格納後、DOMかSAXでDXLに変換
XML文書
DOM/SAX
Parser
Form
Date
XML Data
Agent
Lotus Domino
DB(nsf)
外部システム
Lotus
Domino
IBM Software Group | Lotus software
Lotus DominoにXMLデータをImportする方法
-サーブレットを利用する方法(1)-
ƒ CORBA/IIOPを利用してLotus Domino側にオブジェクトを格納
ƒ ServletでまずXML DataをLotus Domino DBに直接格納
Text Field
Rich Text Field
添付ファイル
ƒ 格納後、DOMかSAXでDXLに変換
Form
Date
XML
Data
CORBA/IIOP
XML Data
Servlet
外部システム
DOM/SAX
Parser
Lotus
Domino
Domino
DB(nsf)
IBM Software Group | Lotus software
Lotus DominoにXMLデータをImportする方法
-サーブレットを利用する方法(2)-
ƒ HTTPでLotus Domino側にXML文書をファイルとして格納
ƒ ServletでまずXML文書をLotus Domino Webサーバー上に置く
ƒ Lotus Domino側では受け取ったXML文書ファイルをエージェントでLotus Domino
DB内に取り込む
ƒ 取り込み後、DOMかSAXでDXLに変換
Form
Date
Agent
XML
文書
HTTP
Servlet
外部システム
XML Data
XML
文書
DOM/SAX
Parser
Domino
DB(nsf)
Lotus Domino
IBM Software Group | Lotus software
XMLデータの処理方法:Agent vs Servlet
Agent
Servlet
トリガー
ユーザーからのアクションに加え、スケ
ジュール/イベントベースでの実行が可
能
Webクライアント/Webサーバーからの
URLリクエストをトリガーとして実行さ
れる
記述言語
@関数、LotusScript、Java
Javaのみ
保管場所
エージェント・オブジェクトとしてドミノ上
のデータベース(nsfファイル)に保管さ
れる
Webアプリケーション・サーバー上の
classファイルの中に格納
実行環境
Lotus NotesクライアントからでもWeb
ブラウザーからでも実行可能
Webクライアントかサーバーから実行
される
メモリ利用
実行される度にメモリー上に呼び出さ
れる
メモリー上にキャッシュして利用される
IBM Software Group | Lotus software
参考情報: DOM vs SAX
ƒ DOM (Document Object Model)
XMLをすべて読み込んでメモリー上に親子関係のツリー構造で表現
内容の追加・修正・削除が容易
XML文書の新規作成に向く
ƒ SAX (Simple API for XML)
XMLの先頭から走査して必要な部分のみイベントとして処理
XML文書をすべて読み込まなくても処理可能
高速でメモリの負荷が軽い
Fly UP