ホームページ > Java > &#&チュートリアル > Java で XML ファイルを XSD スキーマに対して検証するにはどうすればよいですか?

Java で XML ファイルを XSD スキーマに対して検証するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-03 13:17:10
オリジナル
725 人が閲覧しました

How Can I Validate XML Files Against XSD Schemas in Java?

XSD スキーマに対する XML ファイルの検証

特定の XSD スキーマに対して生成された XML ファイルの有効性を確認するには、検証を実行する必要があります。 。 Java ランタイム ライブラリは、この検証のサポートを提供します。

javax.xml.validation.Validator の使用

javax.xml.validation.Validator クラスは、 XML ドキュメントを XSD スキーマに対して検証します。使用方法の例を次に示します。

import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
import java.net.URL;

// Instantiate the schema factory
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);

// Load the XSD schema from a URL
URL schemaFile = new URL("http://host:port/filename.xsd");
Schema schema = schemaFactory.newSchema(schemaFile);

// Load the XML file to be validated
Source xmlFile = new StreamSource(new File("web.xml"));

// Create a new validator
Validator validator = schema.newValidator();

try {
  // Validate the XML document
  validator.validate(xmlFile);
  System.out.println(xmlFile.getSystemId() + " is valid");
} catch (SAXException e) {
  System.out.println(xmlFile.getSystemId() + " is NOT valid reason:" + e);
}
ログイン後にコピー

注: 定数 XMLConstants.W3C_XML_SCHEMA_NS_URI は XSD スキーマを定義します。上の例では、XML ファイル web.xml がスキーマ URL http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd に対して検証されます。スキーマ ファイルの URL は、特定のシナリオに合わせて変更できます。

検証に DOMParser を使用しない

検証に DOMParser を単独で使用しないようにすることが重要です。 DOMParser はドキュメントを解析するときに DOM オブジェクトを作成しますが、それらのオブジェクトを使用するつもりがない場合は無駄になる可能性があります。代わりに、Validator クラスを使用して検証を効率的に実行します。

以上がJava で XML ファイルを XSD スキーマに対して検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート