Gymterview
middle

Что такое JAXP?

JAXP (Java API for XML Processing) — стандартный набор API в составе JDK, предоставляющий единый интерфейс для обработки XML-документов в Java. JAXP абстрагирует конкретную реализацию парсера, позволяя переключаться между разными парсерами (Xerces, Crimson и др.) без изменения кода приложения.

Что входит в JAXP

  • DOM API (javax.xml.parsers.DocumentBuilder) — построение дерева документа
  • SAX API (javax.xml.parsers.SAXParser) — событийный парсинг
  • StAX API (javax.xml.stream.*) — потоковый парсинг
  • XSLT API (javax.xml.transform.Transformer) — трансформация документов
  • Validation API (javax.xml.validation.*) — валидация по DTD и XSD

Принцип работы

JAXP использует паттерн Abstract Factory: приложение запрашивает фабрику (DocumentBuilderFactory, SAXParserFactory, XMLInputFactory), которая создает конкретный парсер. Реализация определяется через механизм ServiceLoader или системные свойства.

Пример
// JAXP — код не зависит от конкретной реализации парсера
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse("config.xml");

На собеседовании: ключевое — JAXP не является парсером сам по себе, это API-абстракция над DOM, SAX, StAX и XSLT. Частая ошибка — путать JAXP с JAXB (маршаллинг Java-объектов в XML и обратно).