XSD схема - пошаговое руководство
XSD (XML Schema Definition) схема – это документ, который определяет структуру и ограничения для XML-данных. Она используется для проверки корректности структуры XML-файла и согласования его формата с другими системами. XSD-схемы могут содержать определения элементов, атрибутов, псевдонимов типов, ограничений и других особенностей структуры XML.
Давайте рассмотрим пример, где используется XSD-схема. Например, у нас есть XML-документ, содержащий информацию о книгах:
xml
Норвежский Лес
Харуки Мураками
1987
451 градус по Фаренгейту
Рэй Брэдбери
1953
Мы можем создать XSD-схему для этого XML-документа следующим образом:
xsd
Это определяет, что элемент "Books" должен содержать элементы "Book", число которых неограничено. Каждый "Book" должен содержать элемент "Title" с типом "string", элемент "Author" с типом "string" и элемент "Year" с типом "integer".
Таким образом, мы можем использовать эту XSD-схему для проверки корректности структуры и данных в нашем XML-документе. Если создадим XML-документ, который не соответствует этой схеме (например, забудем добавить элемент "Author"), то XSD-валидатор выдаст ошибку.
Пример кода для проверки XML-документа на соответствие XSD-схеме при помощи Java DOM:
java
import javax.xml.XMLConstants;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Schema;
import javax.xml.validation.Validator;
import org.w3c.dom.Document;
public class XSDValidator {
public static void main(String[] args) {
try {
// Загрузка XML-документа
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
Document doc = factory.newDocumentBuilder().parse("books.xml");
// Загрузка XSD-схемы
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = schemaFactory.newSchema(new File("books.xsd"));
// Валидация XML-документа по XSD-схеме
Validator validator = schema.newValidator();
validator.validate(new DOMSource(doc));
System.out.println("XML-документ соответствует XSD-схеме");
} catch (Exception e) {
System.out.println("XML-документ не соответствует XSD-схеме: " + e.getMessage());
}
}
}
Этот код загружает XML-документ и XSD-схему, затем проводит валидацию XML-документа по XSD-схеме с помощью валидатора и выводит сообщение о результате проверки.