当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。

テクてく Lotus 技術者 Slack に参加しよう!

2008年9月18日木曜日

訂正記事

DXL関連はお勉強し始めたばかり。ということで、サンプルに問題点があったので、訂正します。

Notes文書をXMLに変換するの記事と、
選択した全Notes文書をXMLに変換するの記事にある

Open "c:\notesxml.xml" For Output As #fn Charset = "UTF-8"
は、
Open "notesxml.xml" For Output As #fn Charset = "UTF-8"
とします。

これは、作成されるXMLのデータ構造を表すdtdファイルのありかを示す、DOCTYPEの行があるのだが、
フルパスで書かれないのである。
どうも、notesのプログラムフォルダを起点としたパスになるようで、筆者の環境では
<!DOCTYPE database SYSTEM 'xmlschemas/domino_7_0_3.dtd'>
となるのだ。

そのため、"c:\notesxml.xml"のようにしてしまうと、できあがったxmlファイルが開かないのである。
※DOCTYPEの行のdtdファイルの箇所をフルパスで書き直してあげれば開くけどね。


もう一つ。
XMLデータをNotesDBに登録するの記事で書いた
If Not stream.Open( "c:\notesxml.xml", "UTF-8" ) Then
についても
If Not stream.Open( "c:\lotus\notes\notesxml.xml", "UTF-8" ) Then
とパスを改めます。
書き出しのパスが変わったのでそれにあわせただけなのであるが、注意すべき点がある。

それは、xmlはフルパスで記述する必要がある。ということだ。
c:\lotus\notes(あくまでも筆者の環境である)にファイルがあれば、"notesxml.xml"でオープンできるのだが、
その後の処理でアボートしてしまうのである。
また、NotesStreamクラスのOpenメソッドの説明にも「フルパス」と書いてあるので、ここは素直に従っておきたい。

Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

3 件のコメント:

匿名 さんのコメント...

いつも役立つ記事をありがとうございます。職場のノーツ7メールを添付ファイルと共にローカルのハードディスク上に保存したいと思い、xmlとロータススクリプトを勉強中です。サンプルプログラムもいつも参考にさせていただいております。今回、訂正のコメントを出していらっしゃったプログラムですが、私の試したところでは、xmlファイルは生成できるのですが、それを開こうとすると「指定されたリソースは見つかりません。リソース 'xmlschemas/domino_7_0_3.dtd' の実行エラーです。リソース 」というエラーメッセージが出てしまいます。何が問題なのでしょうか?ご教授いただけたら幸いです。

およよ さんのコメント...

匿名さん。

答えはこの訂正記事の中に書いてありますので、もう一度良く読んでみてください。

匿名 さんのコメント...

早速のコメントをありがとうございました。
ご指示のように、notesxml.xmlファイルのパス名を書き換えてみましたら無事開くことができました。ありがとうございました。