Консалтинг и автоматизация в области управления
эффективностью банковского бизнеса

Журнал ВРМ World

Что прикажете: JAXB или W3C XML Schema?

Компания Sun выпустила версию 0.7 спецификации JAXB (Java Architecture for XML Binding, Архитектура Java для связывания XML), которая включает частичную - и весьма спорную - поддержку W3C XML Schema.

JAXB определяет архитектуру и интерфейсы прикладного программирования (APIs), которые позволяют связывать объекты Java и фрагменты XML. Подобно существующим разработкам, как, например, Castor или Zeus, JAXB опирается на схемы для определения структуры XML-документов.

Известный автор учебников по Интернет технологиям Эллиотт Расти Хэрольд (Elliotte Rusty Harold) выступил с резкой критикой этого подхода на своем Web-сайте Cafe Con Leche:


"JAXB компилирует схему XML в один или несколько классов Java. (Первая ошибка - JAXB предполагает, что имеется схема. Вторая ошибка - допускается, что эта схема написана на языке W3C XML Schema. И третья ошибка - предполагается, что документы действительно соответствуют этой схеме.)"


Менее воинственно настроенные читатели, однако, заметят, что в JAXB четко указана "частичная поддержка" W3C XML Schema, при этом определен как список свойств, которые должна поддерживать разработка, чтобы заслужить "титул" JAXB, так и перечень факультативных свойств, которые могут быть просто опущены.

Необходимо отметить, что этот список факультативных свойств включает ограничения целостности XPath и множество так называемых объектно-ориентированных свойств W3C XML Schema:

  • переопределения,
  • подстановки типов,
  • группы подстановки,
  • атрибуты управления выводом.

Несмотря то, что различия в уровне и качестве поддержки W3C XML Schema между разными реализациями до сих пор остаются предметом ожесточенной критики, некоторые спецификации - в том числе и собственная спецификация W3C XForms - начинают явно определять W3C XML Schema. Результатом этого могли бы быть "порционные" частичные разработки этой обширной и сложной спецификации.