• ベストアンサー

RELAX NG

RELAX NGについていくつか質問があります。 1)RELAX NGとXMLを関連付けるにはどうしたらいいか。 DTDでいうDOCTYPEは、RELAX NGの場合どうしたらいいのでしょうか? 2)RELAX NGに対応した妥当性検証ソフトはあるのか。 出来たら、ダウンロードできるサイトも教えていただければ幸いです。 3)属性の値に一意性を持たせられるのか。 DTDでいう、IDのような指定は出来ないのでしょうか? 以上です。よろしくお願いします。

noname#108740
noname#108740
  • XML
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

1)RELAX NGとXMLを関連付けるにはどうしたらいいか。 DTDでいうDOCTYPEは、RELAX NGの場合どうしたらいいのでしょうか? ざっと周辺サイトを見る限り,標準的な手法というものは存在しないようだ。 http://www.griffinbrown.co.uk/blog/PermaLink,guid,9aebb083-a961-42b1-9748-a57e06a0f19a.aspx 日付を見ると2007年7月26日の投稿なので現在においてもそれほど期待しない方がよさそうだ。 ちなみに, http://www.xmlmind.com/xmleditor/_distrib/doc/rngsupport/specifying_a_schema.html 等を見ると,各アプリケーションごとに処理命令で対処するような話も出ている。(当然ながらある一つのアプリケーションで検証されても他のアプリケーションでは有効にならないだろう) 2)RELAX NGに対応した妥当性検証ソフトはあるのか。 出来たら、ダウンロードできるサイトも教えていただければ幸いです。 いくつかはあるようだ。自分は使ってみたわけじゃないが, @IT他で知ったMSV等。 https://msv.dev.java.net/ #以下のリンクはリンク切れしている http://www.atmarkit.co.jp/fxml/rensai2/xmltool05/01.html 3)属性の値に一意性を持たせられるのか。 DTDでいう、IDのような指定は出来ないのでしょうか? 標準的な方法はやはり存在しないんで,datatypeを使え,ということらしい。 http://www.oasis-open.org/committees/relax-ng/compatibility.html#id http://www.ibm.com/developerworks/jp/xml/library/x-custyp/ XML Schemaでいうkey,keyrefも似たような方法でやれってことなのかなあ? http://www6.airnet.ne.jp/manyo/xml/schema/step35-2.html コレなんか見るとSchematronっていう別なもの導入しているようだが。 http://www.zvon.org/xxl/XMLSchemaTutorial/Output/ser_keys_st5.html

関連するQ&A

  • RELAX NGについて

    RELAX NGについて、教えていただきたいことがあります。 以下のXML文書のスキーマをRELAX NGで作成したいのですが、 うまくいかないので、どなたか教えて下さい。お願いします。 <?xml version="1.0" encoding="Shift_JIS"?> <data> <!-- 1か2のみ選択可能 --> <choice>1</choice> <dataname cd="01"> <!-- 要素choiceの値が1のときのみ記述(2のときは省略!) --> <data_a>111</data_a> <!-- 要素choiceの値が1でも2でも記述 --> <data_b>222</data_b> </dataname> </data>

    • 締切済み
    • XML
  • XML文書の妥当性

    XML文書とDTDを作成しましたが、XML文書の妥当性を検証はどうやってすればよいです?検証ツールがありましたら教えてください。

    • ベストアンサー
    • XML
  • XML Schemaの適用方法

    いつもお世話になっております。 DTDにおいては、XMLのファイルの中に、 <!DOCTYPE root SYSTEM "chap01.dtd"> という感じで、外部ファイルのDTDと関連付けれたのですが、XML Schemaにおいて同じようなことはできないのでしょうか。 ご存知の方よろしくおねがいします。

    • ベストアンサー
    • XML
  • 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自体を勉強し始めたばかりで、まとまりのない質問で申し訳ありませんが、よろしくお願いします。

    • ベストアンサー
    • 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との妥当性をチェックしますが、 これをファイルは無視し、指定した文字列とチェックをさせるなどと いうことは可能でしょうか?

    • ベストアンサー
    • XML
  • XML::DOM / XML::XPathでソート

    XML::DOMで効率的なソートの方法はどんなものがありますでしょうか。 一応動くものは作れたのですが、効率的とは言い難く、しかも ソート項目が一意のデータでないといけないという欠点があります。 ############################################### use XML::DOM::XPath; my $xml = <<EOM; <?xml version="1.0" encoding="UTF-8" ?> <list> <item id="10">Apple</item> <item id="5">Orange</item> <item id="20">Melon</item> </list> EOM my $parser = XML::DOM::Parser->new(); my $doc = $parser->parse( $xml ); ## <item>タグの一覧を作成 my @list = $doc->findnodes('/list/item'); ## <item>タグ id属性一覧を作成 my @idlist = map{ $_->getAttribute("id") } @list; ## id属性順にソート foreach my $id ( sort{ $a<=>$b } @idlist ){ ## id属性値を指定してノードリストを取得 my @item = $doc->findnodes('/list/item[@id='.$id.']'); ## idは一意なのでリストの先頭で固定 print $item[0]->getAttribute('id')."\n"; print $item[0]->getFirstChild->getNodeValue."\n"; } ############################################### ハッシュなら sort{ $hoe{$b} <=> $hoe{$a} } keys %hoe といった方法があるのですが、XML::DOMの場合は同じようにいきません。 良い方法がありましたらお願いします。

    • ベストアンサー
    • Perl
  • <A> に他のHTML用の属性 `TARGET`

    ソースをチェックしたら <A> に他のHTML用の属性 `TARGET` が指定されています。 の部分が <TAG> に XXXX 用の属性 `ATTR` が指定されています。 *5* チェックしているHTMLのヴァージョンではサポートされていないが、他のヴァージョンでサポートされている属性です。あまりこの警告が大量に出るようなら、DOCTYPE宣言が適切でない可能性があります。 というエラーになりました。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"><html lang="ja"> で宣言しているのですが、 これは間違いですか? target="_blank" は使いたいです。

    • ベストアンサー
    • HTML
  • W3Cで悩む 解決方法教えてください

    http://aromagirl.net/kinen/を W3Cでチェックしているのですが <質問1> <TABLE> に他のHTML用の属性 `HEIGHT` が指定されています。 → 解説 80 というときtableタグにheightでテーブルの高さを指定すると マイナス得点になるのですが どう直せばいいのか? 他にも→ 解説 80にいくエラーがものすごい 多いのですが   <質問2> 解説80を見ると <TAG> に XXXX 用の属性 `ATTR` が指定されています。 *5* top チェックしているHTMLのヴァージョンではサポートされていないが、他のヴァージョンでサポートされている属性です。あまりこの警告が大量に出るようなら、DOCTYPE宣言が適切でない可能性があります。 DOCTYPE宣言が適切でない可能性があります。と出るが <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> にしてみたが同じ状態になる。 DOCTYPE宣言はどう書けばいいのか? 悩みます。 .

  • ie6で画像のpaddingを表示させたい

    seesaaブログユーザーです。 seesaaはxhtmlで記述しているようでソースの先頭は 1:<?xml version="1.0" encoding="Shift_JIS"?> 2:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> (1:は一行目, 2:は二行目であることを表しています) のようになっています。 これを 1:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> もしくは 1:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2:<?xml version="1.0" encoding="Shift_JIS"?> としても問題ないのでしょうか? と、質問させていただいた理由は 画像に枠をつけたいと思って、cssでimgにpaddingを指定したのですが ie6では表示されないのでこれを何とかしたいからです。 http://www.koikikukan.com/archives/2006/03/11-015552.php の記事を参照してわかったのですが、 この状態ですと画像のpaddingがie6では適用できないのですね。 そこで、記事にあるようにdoctype宣言を先頭に持っていくと ie6でも表示されるようになりました。 ということで、 「<?xml version="1.0" encoding="Shift_JIS"?>」 の扱いについて質問させていただきます。

    • ベストアンサー
    • XML
  • XMLファイルからXML Schemaを参照する方法?

    XMLファイルの設計をしています。 今まではDTDを使っていたのですが、 勉強するとXML SchemaのほうがXMLの規則にそっていたり、 データ型が多かったりして都合が良い面があると学びました。 そこでXML Schemaを使いたいと思うのですが、 XML SchemaとメインのXMLのファイルはどのように関係させたら良いのでしょうか? DTDのときは以下のように書いていたと思います。 <!DOCTYPE root SYSTEM "sample.dtd" > このような記述をXML Schemaのときには、どのように記載するのだろうと 疑問に思いました。 私なりに調べてみたのですが、 XML Schemaの記述方法は、大まかに理解したのですが、 関係方法をどうすれば良いかは、見つけられませんでした。 本を読んでも、書かれているように思えません。 以下の2つのファイルがあった場合、 【element1.xml】は妥当なXML文書だそうですが、 どのように関連付いているのでしょうか? 【element.xs】 <?xml version="1.0" encoding="Shift_JIS" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <!-- 要素宣言 --> <xs:element name="売上高" type="xs:integer" /> </xs:schema> 【element1.xml】 <?xml version="1.0" encoding="Shift_JIS" ?> <売上高>1000</売上高> もしよろしければ、教えて頂けませんか? ぜひご教示お願いいたします。

    • ベストアンサー
    • XML

専門家に質問してみよう