Rumah >Java >javaTutorial >Bagaimana untuk Mengesahkan XML Terhadap XSD di Java?

Bagaimana untuk Mengesahkan XML Terhadap XSD di Java?

Susan Sarandon
Susan Sarandonasal
2024-12-10 19:54:15585semak imbas

How to Validate XML Against an XSD in Java?

Mengesahkan XML terhadap XSD: Panduan Lengkap

Mengesahkan dokumen XML terhadap fail XSD (Definisi Skema XML) adalah penting untuk memastikan integriti data dan pematuhan kepada piawaian yang ditetapkan. Tutorial ini akan menyelidiki keupayaan pustaka runtime Java untuk pengesahan XML dan memberikan contoh konkrit menggunakan kelas javax.xml.validation.Validator.

Menggunakan API javax.xml.validation

The Pustaka masa jalan Java menawarkan keupayaan pengesahan XML yang mantap melalui API javax.xml.validation. Kelas javax.xml.validation.Validator membentuk asas API ini, membolehkan pembangun mengesahkan dokumen XML terhadap skema tertentu.

Kod Contoh untuk Pengesahan

Coretan kod berikut menunjukkan cara untuk mengesahkan fail XML terhadap XSD skema:

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
}

Pertimbangan

Perlu diambil perhatian bahawa menggunakan DOMParser untuk pengesahan tidak disyorkan jika matlamatnya bukan untuk mencipta model objek DOM. Pendekatan ini boleh membawa kepada penggunaan sumber yang tidak perlu dan bukan kaedah yang cekap untuk pengesahan.

Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan XML Terhadap XSD di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn