[解決済み】XSDファイルに対してXMLファイルを検証する方法は?
2022-04-03 14:29:44
質問
xsdファイルに準拠する必要があるxmlファイルをいくつか生成しています。 どのように適合性を確認すればよいのでしょうか?
どのように解決するのですか?
Javaランタイムライブラリは、バリデーションをサポートしています。前回確認したときは、これはApache Xercesパーサが隠れていました。あなたはおそらく javax.xml.validation.Validator .
import javax.xml.XMLConstants;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.*;
import java.net.URL;
import org.xml.sax.SAXException;
//import java.io.File; // if you use File
import java.io.IOException;
...
URL schemaFile = new URL("http://host:port/filename.xsd");
// webapp example xsd:
// URL schemaFile = new URL("http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd");
// local file example:
// File schemaFile = new File("/location/to/localfile.xsd"); // etc.
Source xmlFile = new StreamSource(new File("web.xml"));
SchemaFactory schemaFactory = SchemaFactory
.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
try {
Schema schema = schemaFactory.newSchema(schemaFile);
Validator validator = schema.newValidator();
validator.validate(xmlFile);
System.out.println(xmlFile.getSystemId() + " is valid");
} catch (SAXException e) {
System.out.println(xmlFile.getSystemId() + " is NOT valid reason:" + e);
} catch (IOException e) {}
スキーマファクトリ定数は、文字列
http://www.w3.org/2001/XMLSchema
XSD を定義するものです。上記のコードでは、WAR 配置記述子の検証を URL
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
しかし、ローカルファイルに対する検証も同様に簡単に行うことができます。
ドキュメントの検証に DOMParser を使用するべきではありません (ドキュメントオブジェクトモデルを作成することが目的でない限り)。これは、ドキュメントをパースする際に DOM オブジェクトを作成し始めます。
関連
-
[解決済み] Java enumのメンバーを比較する:==またはequals()?
-
[解決済み] Eclipse デフォルトのフォント名
-
[解決済み] java.util.concurrent.ExecutionException 例外をどのように処理しますか?
-
[解決済み] タイプの安全性。アンチェック・キャスト
-
[解決済み] JavaScriptでメールアドレスを検証するのに最適な方法は何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] PHPでHTML/XMLをパースして処理する方法とは?
-
[解決済み] XMLの<![CDATA[]]>は何を意味するのですか?
-
[解決済み] XMLを解析して、特定のノード属性のインスタンスをカウントするには?
-
[解決済み】JavaScriptで10進数を検証する - IsNumeric()
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] enumのordinalを使用するのは良い習慣ですか?
-
[解決済み] XX:MaxDirectMemorySizeの既定値
-
[解決済み] 環境変数JAVA_OPTSの使い方を教えてください。
-
[解決済み] javac ソースファイルが見つかりません
-
[解決済み] raw 型のメンバへのアンチェックの呼び出し
-
[解決済み] eclipseからTomcatに物理的に発行されるmyjspはどこにあるのでしょうか?
-
[解決済み] Javaにおけるシンボリック参照
-
[解決済み] SubclipseとJavaHLのインストールで頭を悩ます
-
[解決済み] Eclipseでクラスとそれに対応するファイルの名前を変更する方法は?
-
[解決済み] java.io.IOException。DER長の短い読み取り