• ベストアンサー

JAXP + XMLSchema

JAXPにて、XMLSchemaを使用したXML解析をしたいのですが、その際、schemaLocationやnoNamespaceSchemaLocation等をXML文書に記述しないで検証を行う手段はないでしょうか? スキーマのファイルパス情報を、XMLファイルから分離したいのです。 もしもそんな手段がないような場合、「ないんじゃない?」的な意見も頂けるとうれしいです。

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

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

Java開発者じゃないし,正しく意味が取れているか自信がないが,(というかJAXPがなんだか知らない(ぉ) 「schemaLocationやnoNamespaceSchemaLocation等をXML文書に記述しないで検証を行う」方法を調べることにした。 で,見つけたのが以下のValidateTest.javaだ。 また、以下のサンプルはそのままでは動作しない。MyErrorHandlerクラスが載ってないからで,ここをコメントアウトするなり自分で実装するなりすれば動くだろう。 見れば解るだろう が,args[0]がスキーマのファイル名,args[1]が検証するファイル名だ。 http://www015.upp.so-net.ne.jp/heyjude/java_xml010.html

ggaogg
質問者

お礼

JAXPとは、Java API for XML Processor(XMLのJava用API)のことです。(ベンダー非依存の統合されたインターフェイス。) ありがとうございました。 Validatorクラスを使えばよかったんですね。 今までDocumentBuilder#setSchemaで試行錯誤してました。。 そういえば、himajin10万さんには、以前にもお世話になりましたね。 いつもありがとうございます。 Validatorと同じパッケージに、ValidatorHandlerというものがありました。 これを使えば、SAXParserやXMLReadrでパースする際にも、同時に妥当性検証が行えるようです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VB.netでXMLファイルの妥当性チェック

    下記のようなXMLファイルを読み込み、 スキーマファイルで妥当性の検証を行っているのですが、 'http://www.w3.org/2001/XMLSchemainstance:schemaLocation' 属性が宣言されていません。 というエラーになってしまいます。 schemaLocationはxsdにも宣言しないとまずいのでしょうか?どなたかご存知のかた教えてください。 ------------------------------------------------ <?xml version="1.0" encoding="UTF-8"?> <rfd:rdmxmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" xmlns:rfd="file://XML\Samples\TEST" xsi:schemaLocation="file://XML\Samples\TEST C:\XML\Samples\Person.xsd"> <Person> <Date>2003-12-03T13:20:00+08:00</Date> <Name>H.HIGASHINO</Name> </Person> </rfd:rdm> -------------------------------------------------

  • 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" );

    • ベストアンサー
    • Java
  • web.xmlの中の<web-app>についてなんですが

    こんばんは。<web-app>についてなんですが、 <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd" version="2.5"> といった類の内容をよくみかけますし、当たり前のように記述されていますが、 version="2.5"(これはサーブレットのバージョンが2.5という事でいいのでしょうか?)のところをversion="100" とかにしても動きますし、xml:schemaLocationのところにでたらめなurlを入れても動きますし、<web-app>だけでも動きますが、 <web-app>だけでは、なにか都合の悪いことでもあるのでしょうか。

  • XML Schemaの名前空間

    XML Schemaを利用する際、名前空間としてhttp://www.w3.org/2001/XMLSchemaを定義する必要があります。上記の末尾に.xsdを追加し、ブラウザで開くと、組み込みデータ型が定義してあるファイルを参照できます。XML Schemaを利用してXMLの検証を行うアプリは、名前空間を元にこのファイルを参照して、組み込みデータ型の検証を行うのでしょうか。いまいち挙動がわかりません。

    • 締切済み
    • XML
  • XMLShemaからXML文書を作成

    こんにちは VB2005でXML文書をアプリを作成指定しています。 XML文書を読み込んでバリデーションをかけて、OKであれば処理続けていくプログラムです。 実際の業務でバリデーションのために使用する XMLSchemaをもらったのですが、階層が深くなかなか複雑なようで、 ファイルの数は100個近くあります。 プログラムのテストのために、指定のXMLSchema全ての構造体を反映したXMLファイルを作成したいのですが、 手動ではかなり厳しいです。 ちなみに、メインとなるXSDファイルがありますが、 その中では、子要素となる構造を定義したXSDファイルを importやincludeしているだけです。 このようなXSDファイルを指定して、全ての構造を網羅したXMLファイルを作成してくれるツールは存在しますでしょうか? もしくは、そのようなツールを作成するプログラムのサンプルでも結構です。 以上、よろしくお願いいたします。

    • ベストアンサー
    • XML
  • eclipseへのxmlファイル追加

    eclipseでのxmlファイル追加について質問いたします。 パッケージエクスプローラで新規xmlファイルを作成した箇所で右クリック、 [新規作成]-[その他]-[Amateras]-[XMLファイル]を選択し、xmlファイルを作成しました。 スキーマ情報はよくわからなかったので、[スキーマを指定しない]を選択しました。 ちなみに、"urlrewrite.xml"を作成しました。 xmlファイルは作成されたのですが、ビルド実行時に 作成したxmlファイルを読んでくれていないようです。 どうすればeclipseがxmlファイルを認識してくれるでしょうか。 どなたか、お力添えを宜しくお願いします。

  • XML Schemaによる Web入力データの検証方法

    XMLSchemaを使用して、Webフォームで入力した内容が 正しいかどうか検証をしようと思っています。 実現可能でしょうか。 また、可能な場合具体的な方法を教えていただけないでしょうか。 環境 W2KServer IIS5 ASP MSXML4.0 VBのCOM 1.Webフォーム(HTML)で入力した内容を元に、XMLを生成します。 (HTMLのNAME属性と、XMLの要素名を照らし合わせて、XMLを生成します) 2.サーバ側で、生成したXMLと、データ検証用XMLSchemaを使用して、データを検証します。 3.検証のエラー内容により、ブラウザにエラーメッセージを返します。 例)○○が未入力です。○○の文字数が不正です。   日付の形式に誤りがあります。 XMLSchemaで行いたいデータ検証は以下の通りです。 (1)相関チェック (2)日付チェック(現在の日付より前の日付はNGなど) (3)文字数チェック (4)型チェック(数字、文字) (5)未入力チェック (3)~(5)は可能だと思うのですが、(1)(2)はプログラムで制御するしかないと思っています。 本来このような入力チェック処理は、JavaScriptやASPなどで制御すると思います。 今回のシステムの要件は、 「申請手続きをWebから行い 申請情報をサーバ側にXMLとして保存する」 というもので、プログラムを変えずに、申請様式を追加することによって、様々な申請に対応できるという汎用的なものを目指しています。 そこで、入力チェックのコードも、申請様式とセットでXMLSchemaを使用して作成出来ないかと思ったのですが、具体的な資料が無くこまっていました。 よろしくお願いいたします。

    • 締切済み
    • 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
  • XMLスキーマ勉強したいです:みなさんどこで覚えました?

    こんにちは。 SGML/XMLのDTD開発、実装などの経験が4年程あります。 そろそろ(今さら?)XMLスキーマも扱う必要ができました。 私は元もとプログラマーではなく、また文書構造言語としてのSGML/XMLにしか関っていないので、なるべく分りやすい教科書/参考サイトを探しています。 Googleで探せばもちろんゴマンとでてくるでしょうが、皆さんが実際に勉強して、「これは分りやすかった!」「役に立った!」という情報源(本/サイト問わず)を教えていただけないでしょうか。

    • ベストアンサー
    • XML
  • 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
このQ&Aのポイント
  • Win11自作PCを使用中。LogicoolのMX KeysというUSB TypeC充電式のワイアレスキーボードを候補としています。
  • Logicool独自のUSBレシーバーを挿すと、USBデバイスとして認識されるはずなので、Win11自作PCを起動時にDELキー連打でBIOSに入れるでしょうか?
  • BluetoothだとOS起動後に有効になるので、BIOSに入れないそうです。USBレシーバー付属ならBIOSに入れるはずと思っていますが、どうでしょうか?アドバイスください。
回答を見る