- PR -

DOMでDTDを書き込む方法について

1
投稿者投稿内容
けんた
会議室デビュー日: 2002/05/09
投稿数: 5
投稿日時: 2002-05-10 00:01
はじめまして。
早速ですが、質問があります。
現在、VB5.0&MSXML3.0を使用して開発していますが、
いくつかわからないことがあります。

新規でXMLファイルを作成するときにDOMでDTDを記述
したいのですが、可能なのでしょうか?
また、DTDをDOMで読み込んでおいて?チェックしながら
データを書き込むような方法は存在するのでしょうか?

よろしくお願いします。
よねくら
常連さん
会議室デビュー日: 2002/04/24
投稿数: 29
投稿日時: 2002-05-10 09:58
「DTDを解析してタグを追加」のスレッドにも関連する話ですが、DOMを利用してDTDを組み立てることはできません。

また、「DTDをDOMで読み込んでおいて?チェックしながらデータを書き込むような方法」はDOM Level 3でサポートされる予定です。現在のMSXMLでは利用できません。

非常に原始的な方法ですが、DOMツリーを更新する前に、ツリー全体のバックアップを作成し、更新したツリーに対してDTDを用いて検証します。invalidな結果がでたときには、バックアップしたDOMツリーを使ってロールバックします。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2002-05-10 11:38
>新規でXMLファイルを作成するときにDOMでDTDを記述
たぶん、
<?xml ...?>+ DTD + <root/>
の文字列を作り、loadXML Method
(Loads an XML document using the supplied string.)
で 空のDOM木を作ってから、内容を詰めてゆく。(検証OFFで)
save で DTD も出力されると思いますが。

>チェックしながら
validate Method はありますが、
Performs run-time validation on the currently loaded document
This method only validates fully loaded documents
で、部分毎にはできないようです。
最後に一発検証です。MSXML3 では
けんた
会議室デビュー日: 2002/05/09
投稿数: 5
投稿日時: 2002-05-11 09:28
よねくら様、MMX様ご返答ありがとうございます。

DTDの記述方法および検証方法のアドバイス
とても参考になりました。

今後もよろしくお願いいたします。
1

スキルアップ/キャリアアップ(JOB@IT)