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

Java で XML を XSD に対して検証するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-10 19:54:15546ブラウズ

How to Validate XML Against an XSD in Java?

XSD に対する XML の検証: 完全ガイド

XSD (XML スキーマ定義) ファイルに対して XML ドキュメントを検証することは、データの整合性と指定された標準への準拠を保証するために重要です。このチュートリアルでは、Java ランタイム ライブラリの XML 検証機能を詳しく説明し、javax.xml.validation.Validator クラスを使用した具体的な例を示します。

javax.xml.validation API の使用

Java ランタイム ライブラリは、javax.xml.validation API を通じて堅牢な XML 検証機能を提供します。 javax.xml.validation.Validator クラスは、この API の基礎を形成し、開発者が特定のスキーマに対して XML ドキュメントを検証できるようにします。

検証のサンプル コード

次のコード スニペットは、検証の方法を示しています。 XML ファイルを XSD に対して検証するschema:

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;

...

// Define the XSD schema URL
URL schemaFile = new URL("http://host:port/filename.xsd");

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

// Create a SchemaFactory instance
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);

try {
  // Create a Schema object from the XSD schema
  Schema schema = schemaFactory.newSchema(schemaFile);

  // Create a Validator object from the Schema object
  Validator validator = schema.newValidator();

  // Validate the XML file against the schema
  validator.validate(xmlFile);

  // Print a success message if validation is successful
  System.out.println(xmlFile.getSystemId() + " is valid");
} catch (SAXException e) {
  // Print an error message if validation fails due to an error
  System.out.println(xmlFile.getSystemId() + " is NOT valid reason:" + e);
} catch (IOException e) {
  // Handle IOException if file is not found or cannot be read
}

考慮事項

DOM オブジェクト モデルの作成が目的でない場合、検証に DOMParser を使用することは推奨されないことに注意してください。このアプローチは不必要なリソースの消費につながる可能性があり、効率的な検証方法ではありません。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。