締切済み DTDの必要性 2006/10/12 10:52 XMLデータを作成したところ、DTDの作成も依頼されました。 そもそもDTDは必ずしも必要でないと書かれていましたが、何のために必要なのでしょうか? みんなの回答 (1) 専門家の回答 みんなの回答 BLUEPIXY ベストアンサー率50% (3003/5914) 2006/10/12 19:34 回答No.1 要するに文書構造を検証するために必要なのだと思います。 質問者 お礼 2006/10/12 21:38 やはり検証するためですか わかりました。ありがとうございます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発XML 関連するQ&A DTD DTDというのは XML等の書き方、文書構造のルールそのものをこと言っているのですか DTDについて DTDでXMLのチェックをしようと思っているのですが、 あるタグ配下には、XHTMLのタグをすべてOKにしようとおもっています。その場合のDTDの書き方は、どうすればよいのでしょうか? やはり、すべてのタグを記述しなければ、いけないのでしょうか?(量が多いので、「チェックしない」とかって方法があれば、それでもよいのですが) よろしくお願いします。 DTDファイルについて 客先よりDTDファイルをもらいました。 XMLのようなものということは解ったのですが、このファイルは読み込めないのでしょうか。 読み込む為には他に何か必要なソフトがありますか? 後、わかりやすく説明してあるところなどありましたら教えてください ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム DTDと名前空間 DTDと名前空間の関係について質問します。 XMLの本を読みDTDと名前空間の大まかなイメージを下記のようにつかみました。 DTD: XML文書の妥当性を規定し、DTD宣言で指定。 名前空間: ひとつのXML内で要素名の衝突を避けるために、xmlnsで指定。 XHTMLのDTD宣言 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> XHTMLの名前空間(http://www.w3.org/1999/xhtml) <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> XHTML文書の場合、DTDと名前空間がそれぞれひとつです。 しかし、ひとつのXMLドキュメントで複数の名前空間を利用する場合は、それぞれの名前空間に対して、DTDを宣言するのでしょうか。つまり複数のDTD宣言があるXMLドキュメントになるのでしょうか。 DTDと名前空間の関係が良く分かりません。 XML自体を勉強し始めたばかりで、まとまりのない質問で申し訳ありませんが、よろしくお願いします。 DTDファイルをクラスパスから読み込みたい DTDを利用したXMLファイルを読み込むDOMパーサーを作ってます。 表題のとおり、DOMパーサーがXMLファイル、DTDファイルを読み込む際に DTDファイルをローカルマシン(実行環境)のクラスパスにあるディレクトリ から読み込みたいのですがうまくいきません。 XMLパーサーにxercesを利用し、DOMを使ってます。 例えば、 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pagecontrol SYSTEM "sample.dtd"> <PEOPLE> <NAME>afternoon_cafe</NEME> </PEOPLE> のようなXMLファイルを、DOMパーサーがparse()メソッドによりロード すると、"sample.dtd"をカレントディレクトリからしか検索しません。 この"sample.dtd"をクラスパスにあるディレクトリに置き、それを 読み込むようにしたいのですが、、、 どなたかわかる方がいれば、教えてください。 お願いします。 JAXPのDTD検証 JAXPを使ってXMLの解析をしてるのですが、DTD検証を無効にする方法はあるのでしょうか? XMLに、DTDが記述されているとURLを参照しようとしてエラーになってしまいます。 これを無視するようにしたいのですが。。 ---ソース--- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setValidating(false); factory.setIgnoringComments(true); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse( "hoge._xml" ); XML(DTD)の<!ENTITYを読み込むには? Perlで、XMLのDTD内の、 たとえば以下のような ↓ <!ENTITY rt4 "ルーチン4"> (キー”rt4”と、値”ルーチン4”)を、 読み込むには、どうすればよいのでしょうか? 単純にXML(DTD)をテキストファイルとしてオープンして、 正規表現などで読み込むのではなく、 この<!ENTITY~ タグを利用して、 簡単に読み込める方法があるのでは? と思い、ネット上を探しておりましたが、 具体的な方法が見つけられなかった為、 ご質問させていただきました。 よろしくお願いします。 DTDで、空要素をエラーしたい <title></title>のような形のXMLをDTDでエラーにしたいのですが、可能でしょうか? DTDで、 <!ELEMENT title (#PCDATA)> だと、エラーなくスルーしてしまいます。 よろしくお願いします。 XHTML1.1でのXML宣言とDTD宣言の書き方 XML宣言によるレイアウトの崩れ等の質問はありましたが今回の質問と同じ内容は私には見当たらなかったため質問させて頂きます。 XHTMLでのXML宣言を <?xml version="1.0" encoding="utf-8"?> と記述しています。 上記の記述と <?xml version="1.0" encoding="UTF-8"?> とで、文字コードの大文字か小文字かの違いだけなのですがどちらの方が良いのでしょうか。 同じくDTD宣言を <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> と記述しています。 XMLでは大文字と小文字を区別して扱うため必ず半角で書かなければならないとされていますが、XHTMLでマークアップされているサイトのソースを見るとどこもXML宣言での文字コードとDTD宣言では大文字が使用されています。 細か過ぎるというのは分かっているのですが厳密にはどのような記載が正しいのでしょうか。 ※今回投稿カテゴリーの小カテゴリーにて”XML”を選択致しましたがXHTMLについての質問の場合”XML”と”HTML”どちらにするべきでしょうか。 合わせてご返答、又はご意見を頂戴できれば幸いです。 DTDを記述する意味 DTDを使ってXMLの形式を厳密に定義する方法があると聞いて試してみたのですが、記述した形式を破っても何も起きません。たとえば以下のように <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE root [ <!ELEMENT root (a, b, c+)> ]> <root> <b>BBB</b> <a>AAA</a> </root> と書いた場合、「A,B,Cという要素をこの順番で配置せよ」という命令と「Cという要素を1つ以上配置せよ」という2つの命令を無視していますが、何かしらのエラーを返すといった動作は全くありません。HTML(XHTML)みたいな感じです(テキトーにコーディングしてもエラーを返さない点)。XMLのDTDはそれを守らないとエラーを返すような動作はしないのでしょうか?それではDTDの存在意義が分からなくなってしまいますが・・・ DTDにおける公開識別子について DTDにおいて、公開識別子を使用して外部DTDの参照、もしくはエンティティ宣言を行う場合、公開識別子からその内容をXMLパーサが解析可能である場合システム識別子は省略可能です。 質問なのですが、これはパーサがどういった挙動をとっているのでしょうか。XMLパーサにシステム識別子と公開識別子のマッピングが定義してあるのでしょうか?? ご存知の方ご教示ください。 DTDについて いつもお世話になっております。 以下のインスタンスに対して妥当なXML文書となるDTDはどれかという問題で、(1)は正解で(2)は不正解となっているのですが、自分は(2)がなぜ不正解なのかわかりません。正解じゃないの?と思っています。 お分かりになる方、お知恵を拝借できないでしょうか。よろしくお願いします。 (1)と(2)で違うのはinformationの子要素の出現回数が*か+かの違いです。 (インスタンス) <information><product>PC</product>と<product>モニタ</product>で<price>200000</price>円です。</information> (1) <?xml version="1.0"?> <!DOCTYPE information[ <!ELEMENT information (#PCDATA | product | price)*> <!ELEMENT product (#PCDATA)> <!ELEMENT price (#PCDATA)> ]> (2) <?xml version="1.0"?> <!DOCTYPE information[ <!ELEMENT information (#PCDATA | product | price)+> <!ELEMENT product (#PCDATA)> <!ELEMENT price (#PCDATA)> ]> AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム Perl での XML 処理での DTD 宣言につ Perl の XML::LibXML モジュールを使用して XML を処理しています。 例えば、 <?xml version="1.0" encoding="UTF-16" standalone="no"?> <!DOCTYPE aaa PUBLIC "-//bbb//CCCC//EN" "ddd.dtd" []> <doc> ....... </doc> のようなXMLに対してPerlで処理をして、 最後に documentElement を toString して書き出しています。 しかし、この場合、DTD宣言部分を書き出すことができません。 XML::LibXMLでこの部分を取得して書き出すことはできますでしょうか。 どうぞ、よろしくお願いします。 DTD作成について 以下のXMLをDTDに使用としています。 B以降の設定の方法が分かりません。 よろしくお願い致します。 XML - <Aブロック> - <A a番号="01" b="xxxx" c="x"> <B 番号="1" d="xxxx" /> <B 番号="2" d="xxxx" /> <B 番号="3" d="xxxx" /> </A> DTD <!ELEMENT Aブロック (A*)> <!ELEMENT A EMPTY> <!ATTLIST A a CDATA #REQUIRED> <!ATTLIST A b CDATA #REQUIRED> <!ATTLIST A c CDATA #REQUIRED> DTDの記述 こんにちは。 DTDの記述方法で悩んでいます。 以下のようなXMLをDTDで規定したいのですが、可能でしょうか。 <Elem></Elem> <Elem>ABC</Elem> <Elem> <Child>ABC</Child> <Child>DEF</Child> <Child>GHI</Child> </Elem> つまり、 <!ELEMENT Elem (#PCDATA)> と、 <!ELEMENT Elem (Child*)> を同時に規定したいのです。 <!ELEMENT Elem (#PCDATA|Child*)> だと、エラーになってしまいました。 また、 <!ELEMENT Elem (#PCDATA|Child)*> では、 <Elem> ABC <Child>GHI</Child> </Elem> といった場合も有効になってしまいます。このケースは除外したいのです。 こういった場合の記述はどうしたらいいのでしょうか。 あるいはDTDでの記述は無理なのでしょうか。 HTMLファイル&DTDについて ホームページ作成のテキストに次のように書かれた文言があります。 --------------------------------------- 【HTMLファイルで、どのようなタグや属性が使用されているかを宣言した記述部分を「DTD」といいます。HTMLファイルは、まず最初に「DTD」を記述し、続けてHTMLファイルを記述することが約束事になっています。】 --------------------------------------- もし、「DTD」と言うものを記述しないまま、HTMLファイルを作成した場合、何らかの不都合が生じると言うことでしょうか? 外部サブセットのDTDファイルが作れません 初心者です。 本を読みながらXMLの勉強をはじめました。 表題の、外部サブセットのDTDファイルを作ろうと、拡張子を"dtd"に変えたところ、DTDファイルとして認識していないようです。 (WINDOWマークのアイコンに変わり、開くとアプリケーションを聞かれてしまいます。) 本にはそのようにするとだけしか記載されておらず、どうしていいのかわかりません。 なにかPCの方に入れなければならないものがあるのでしょうか? パソコンはNECのVALUSTAR NXで2年ぐらい前のもの、OSはWINDOWS98、ブラウザIE5.5です。 本当にずぶの素人で何もわからないままはじめたので、質問がこれで適切かどうかもわかりませんが、どなたかお教えください。 よろしくお願いいたします。 AndroidでDTDのXML形式を解析する方法 現在Androidでちょっとしたツールを作っています。 簡単に概要を説明すると、 ・サーバーにあるデータを取ってきます。 データはHTTP通信で取ってきます。 ・HTTP通信で取った情報はDTDのXML形式になっていて、その情報を解析して情報を取りだす。 色々ネットを見てみたのですが、なかなか参考になりそうなものがありません。 もし良い方法、あるいは、参考になるサイトなどご存知の方がありましたら、ご教授お願いします。 SAXでparseを行う際の、DTDとの妥当性チェックついて Java&XMLの初心者です。 用語の使い方など間違っているかもしれませんが、 よろしくお願いします。 XMLパーサーにxercesを利用しています。 以下のようなXMLをがあったときに、 <?xml version="1.0"?> <!DOCTYPE a SYSTEM "a.dtd"> <a> <b>1</b> <b>1</b> </a> 以下のコードを実行すると、 SAXParserFactory f = SAXParserFactory.newInstance(); f.setValidating(true); SAXParser p = f.newSAXParser(); p.parse((InputSource)xml, handler); カレントディレクトリにあるa.dtdとの妥当性をチェックしますが、 これをファイルは無視し、指定した文字列とチェックをさせるなどと いうことは可能でしょうか? i-XHTMLのDTDって何ですか?? i-modeでXHTML対応サイトを作成したいのですがDOCTYPE宣言の中にある.dtdという部分のDTDには何か意味があるようなのですがさっぱりわかりません。この宣言の他に別のタグや宣言を挿入しないと作れないのでしょうか??どなたか助けてください(/><)/ 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
やはり検証するためですか わかりました。ありがとうございます。