- - PR -
DTDについて
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2001-10-11 20:06
はじめまして
DTDの役割について漠然としか掴めていないので、もう少し詳しく知りたいと思います。 例えば、ある会社で、独自にDTDを定義し、それをもとに、 会社(システム)独自のXML文書を作成することになったとします。 この際、XMLを文法的にチェックするものとしてDTDがあるのだと思いますが、 その”チェック”は何らかのソフトウェアに独自DTDを流し込み、自動的に 作成したXMLをチェックすることができるのでしょうか、それともXML作成者は 単純に渡されたDTDを元に(見ながら)、XMLを作成していくだけ (仕様書のようにしか使わない)なのでしょうか。 DTDを必要としない”整形式のXML文書”というもあり、 ちょっとDTDの存在意義ついて混乱してしまっています。 ご教授願います。 |
|
投稿日時: 2001-10-11 21:09
>その”チェック”は何らかのソフトウェアに独自DTDを流し込み、自動的に
>作成したXMLをチェックすることができるのでしょうか できます。ここでいう何らかのソフトウェアはXMLパーサと呼ばれるものです。 XMLパーサは「妥当性の検証」をする/しない の設定ができます。 |
|
投稿日時: 2001-10-12 11:08
始めまして Mizさん ふうたさん 途中で割り込んでしまって申し訳ありません。
私はXMLの勉強中の初心者です。ちょっと疑問があったので書込みをさせて いただきます。皆さんよろしくお願いします。 XMLパーサでDTDをチェックするのは分かりました^^ そこで疑問なのですがMSのXMLパーサはXSLの構文が 間違っているとエラーになりますがこれはXSLというタグセットをDTDが チェックしているのでしょうか? それともXSLTプロセッサーがチェックしているのでしょうか? IEはXMLパーサとしてXML技術を提供してますがそのXMLパーサというのは XSLTプロセッサー+XMLパーサ−と考えてよろしいでしょうか? 凄く疑問になってしまいました。つまらないご質問かも知れませんが 皆さんよろしくお願いします。 |
|
投稿日時: 2001-10-12 11:41
マイクロソフトの XML プロセッサは、MSXML.DLL も MSXML3.DLL も、
XSLT プロセッサの機能を併せ持っています。ただし、MSXML.DLL は ドラフト版 XSLT、MSXML3.DLL は勧告版 XSLT に対応しているという 違いがあります。 つまり「一人二役」なので、たまたま MSXML の場合は XSLT のエラー もチェックできるというわけです。すべての XML プロセッサが XSLT を処理できるというわけではない点に注意してください。 _________________ www.kojii.net |
|
投稿日時: 2001-10-12 12:21
inoppeさん どうもありがとうございました。納得しました^^。
つまりXMLプロセッサーは 各XMLプロセッサー事に動きが違うと 考えてよいのでしょうか? つまり アプリケーションを作成するに当たり 例えば WINDOWSで作成するので XMLプロセッサーは マイクロソフト のにしようとか WINDOWSでもJavaを使用するのでSunのXML プロセッサーを使うとか ODBC見たいに仕様は凄い似てるけど内部動作は 微妙に違うようになってしまうっという風になってしまうと考えて問題ないでしょうか? 素人ですいません。皆様よろしくお願いします。 |
|
投稿日時: 2001-10-12 13:17
みなさんご返答ありがとうございます。割り込みになってしまいすいません。
DTDで定義された文法で書かれたXML文書をXMLパーサでチェックできる ということは理解できました。 そこでMSXMLパーサに関して、ふと疑問に思いました、 マイクロソフトのXMLパーサは、独自DTDに基づいて作成されたXML文書 のチェックが行えるのでしょうか。 確かに、IEで、整形式のXML文書を表示することが出来、また、 その構文が間違っているとエラーになりますが、独自で作成したDTDにのっとって 構文チェックをしたいというときには、どのようにして、XMLパーサにそのDTDを 解釈させるのでしょうか。 MSXML(IE)には外部DTDを読み込むような機能がなさそうなのですが。 ご存知の方の意見をお伺いしたいです。 |
|
投稿日時: 2001-10-12 16:00
>hiroさん
どの XML プロセッサも、XML 1.0 の仕様に則って作られているという点では 同一です。ただ、MSXML なら COM ベース、Xerces なら Java ベース、とい うような違いはあるので、XML プロセッサをアプリケーション側から呼び出す 方法には違いが出てきます。 また、アプリケーションと XML 文書のインターフェイスとして DOM か SAX、 あるいはその両方が使える、というような違いは、XML プロセッサごとにあり ます。MSXML/MSXML3 の場合、DOM/SAX 両対応です。 こんな説明でよろしかったでしょうか。 _________________ www.kojii.net |
|
投稿日時: 2001-10-12 16:08
>そこで疑問なのですがMSのXMLパーサはXSLの構文が
>間違っているとエラーになりますがこれはXSLというタグセットをDTDが >チェックしているのでしょうか? ここだけ補足。これは、XSLに以下の記述があると思いますがその記述によって これは、XSLだからXSLのタグとしてチェックをしていると思います。 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> MSXML(←3ではない)のころは、この辺りがまだあまり決まってなくて、違う書き方 になっているようです。 (XSLのタグ自体も違っているところがあると思います。即ち、チェックの仕方が違う。) |