Lotus Notes/Domino Domino XMLの概要 2005年9月 日本アイ・ビー・エム株式会社
by user
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文書をすべて読み込まなくても処理可能 高速でメモリの負荷が軽い