Java API для обработки XML

Java API для обработки XML , или JAXP , является одним из Java - XML - API - интерфейсы . Это легкий стандартизированный API для проверки , анализа , генерации и преобразования XML-документов. Соответствующая (нестандартная) реализация API является взаимозаменяемой (подключаемой). Четыре основных интерфейса :

J2SE 1.4 JDK был первой версией JDK, которая была опубликована с реализацией JAXP 1.1; текущий JSE поставляется с Apache Xerces и адаптированным вариантом Xalan (для XSLT).

Управление версиями

Версия Java SE включена версия JAXP
1.4 1.1
1.5 1.3
1.6 1.4
1.7.0 1.4.5
1.7.40 1.5
1,8 1.6

DOM интерфейс

Интерфейс DOM имеет очень простую структуру. Он анализирует весь XML-документ и создает полное представление документа «в памяти». Он использует классы и концепции спецификации, которые можно просмотреть в разделе Базовая спецификация уровня 2 объектной модели документа (DOM).

Парсер DOM называется DocumentBuilder, потому что он обеспечивает представление документа в памяти. Экземпляр класса javax.xml.parsers.DocumentBuilder создается классом Factory javax.xml.parsers.DocumentBuilderFactory . DocumentBuilder сначала создает экземпляр org.w3c.dom.Document в форме древовидной структуры, которая содержит узлы в XML-документе. Каждый узел дерева в этой структуре реализует интерфейс org.w3c.dom.Node . Существует множество различных типов узлов дерева, которые представляют соответствующие типы данных из XML-документа.

Наиболее важные узлы:

  • Узлы элементов, возможно, с атрибутами
  • Текстовые узлы, отражающие текст, находящийся между начальным и конечным тегами элемента документа.

Полный список типов узлов см. В документации javadoc пакета org.w3c.dom .

С DOM-API вы можете работать «в обоих направлениях», то есть от XML к DOM «в памяти», а также от DOM к XML. Поэтому он подходит не только для «синтаксического анализа» XML, но и для генерации XML (потоков или файлов).

SAX интерфейс

Парсер SAX, также называемый SAXParser, создается javax.xml.parsers.SAXParserFactory . В отличие от парсера DOM, SAXParser не создает представление XML-документа «в памяти», что, следовательно, делает его более быстрым и менее требовательным с точки зрения потребления памяти. Напротив, SAXParser информирует клиента о структуре XML-документа через функции обратного вызова , т.е. Другими словами, выполняются доступные парсеру методы экземпляра DefaultHandler.

Класс DefaultHandler находится в пакете org.xml.sax.helpers . Это реализует ContentHandler, ErrorHandler, DTDHandler и интерфейс EntityResolver. Большинство клиентов интересуются методами интерфейса ContentHandler.

Методы ContentHandler, реализованные DefaultHandler, вызываются, как только синтаксический анализатор SAX встречает соответствующие элементы XML-документа. Основные методы в этом интерфейсе:

  • в StartDocument () и EndDocument () метода, которые называются по начальным и конечным тегам документа XML.
  • в StartElement () и EndElement () метода, которые называются по начальным и конечным тегам документа элемента .
  • метод characters () . Это вызывается с содержимым между начальным и конечным тегами соответствующего элемента XML-документа.

Клиент предлагает подкласс DefaultHandler , который перезаписывает эти методы и обрабатывает данные. Это также может включать хранение данных в базе данных или запись в поток .

С SAX-API вы можете работать «только в одном направлении», а именно из XML в Java. Поэтому он подходит только для «синтаксического анализа» XML. С SAX вы не можете создавать XML (потоки или файлы).

XMLPULL интерфейс

Streaming API для XML (StAX) был частью JAXP начиная с JAXP 1.2 и, следовательно, JSE 6 и J2EE 1.4 . Это используется для чтения данных XML с помощью так называемого синтаксического анализатора XMLPULL. XMLPULL похож на SAX, за исключением того, что синтаксический анализатор не отправляет информацию в приложение через механизм событий ( «PUSH» ), как в случае с SAX , но приложение получает следующую информацию само, когда ему это нужно (« PULL » ). Парсеры XMLPULL обычно более эффективны, чем парсеры SAX.

XSLT-интерфейс

Е х tensible S tylesheet L anguage для T ransformations, сокращенно XSLT , преобразование позволяет документ XML к другим формам данных.

Проверка XSD

Проверка файлов XSD поддерживается начиная с JAXP 1.2. JAXP 1.2 является частью платформы Java из JSE 6.0 и J2EE 1.4.

Индивидуальные доказательства

  1. https://www.jcp.org/en/jsr/detail?id=206
  2. http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113

веб ссылки