Рубрики
Без рубрики

ява.ланг.Исключение ArrayIndexOutOfBoundsException Как проверить XML на соответствие XSD в Java

Проверка XML на соответствие XSD в программе Java. Проверка XML java-программа, javax.xml.проверка.Валидатор, XSD-валидатор программного кода java.

Автор оригинала: Pankaj Kumar.

API проверки XML Java может использоваться для проверки XML на соответствие XSD в программе java. javax.xml.проверка.Класс Validator используется в этой программе для проверки xml на соответствие xsd в java.

Проверка XML на соответствие XSD

Вот примеры используемых файлов XSD и XML.

Вот примеры используемых файлов XSD и XML.




	
	
	

	
		
			
		
	
	
	
		
			
			
			
		
	

Обратите внимание, что выше XSD содержит два корневых элемента и пространство имен, кроме того, я создал два примера XML-файла из XSD с помощью Eclipse .

Обратите внимание, что выше XSD содержит два корневых элемента и пространство имен, кроме того, я создал два примера XML-файла из XSD с помощью Eclipse .



  5

Обратите внимание, что выше XSD содержит два корневых элемента и пространство имен, кроме того, я создал два примера XML-файла из XSD с помощью Eclipse .



  1
  Developer
  Pankaj Kumar

Вот еще один XML-файл, который не соответствует Employee.xsd .

Вот еще один XML-файл, который не соответствует || Employee.xsd || .



	Pankaj
	29
	Java Developer
	Male

Вот программа, которая используется для проверки всех трех XML-файлов на соответствие XSD. Метод validateXMLSchema принимает файл XSD и XML в качестве аргумента и возвращает true , если проверка прошла успешно, или возвращает false .

Вот программа, которая используется для проверки всех трех XML-файлов на соответствие XSD. Метод || validateXMLSchema || принимает файл XSD и XML в качестве аргумента и возвращает || true||, если проверка прошла успешно, или возвращает || false || .

package com.journaldev.xml;

import java.io.File;
import java.io.IOException;

import javax.xml.XMLConstants;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;

import org.xml.sax.SAXException;

public class XMLValidation {

    public static void main(String[] args) {
        
      System.out.println("EmployeeRequest.xml validates against Employee.xsd? "+validateXMLSchema("Employee.xsd", "EmployeeRequest.xml"));
      System.out.println("EmployeeResponse.xml validates against Employee.xsd? "+validateXMLSchema("Employee.xsd", "EmployeeResponse.xml"));
      System.out.println("employee.xml validates against Employee.xsd? "+validateXMLSchema("Employee.xsd", "employee.xml"));
      
      }
    
    public static boolean validateXMLSchema(String xsdPath, String xmlPath){
        
        try {
            SchemaFactory factory = 
                    SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
            Schema schema = factory.newSchema(new File(xsdPath));
            Validator validator = schema.newValidator();
            validator.validate(new StreamSource(new File(xmlPath)));
        } catch (IOException | SAXException e) {
            System.out.println("Exception: "+e.getMessage());
            return false;
        }
        return true;
    }
}

Результатом работы вышеуказанной программы является:

EmployeeRequest.xml validates against Employee.xsd? true
EmployeeResponse.xml validates against Employee.xsd? true
Exception: cvc-elt.1: Cannot find the declaration of element 'Employee'.
employee.xml validates against Employee.xsd? false

Преимущество использования API проверки XML Java заключается в том, что нам не нужно анализировать файл и не используются сторонние API.