История разбора XML и WS API в Java? - PullRequest
1 голос
/ 11 ноября 2009

Кто-то недавно спросил в IRC об истории синтаксического анализа XML и API-интерфейсах WS в Java, и я удивился. Есть ли письменная история? Какие самые свежие и крутые игрушки? Почему их так много?

Обычно знание истории того, почему вещи были разработаны и как они должны улучшаться по сравнению со своими предшественниками, помогает изучать новые и хорошие вещи, поэтому хороший, тщательный ответ на поставленные выше вопросы может быть даже полезен!

Ответы [ 4 ]

1 голос
/ 13 ноября 2009

Некоторые сравнения и краткая история JAX-RPC / JAX-WS . Я думаю, что статья немного запутала различия в привязке данных. JAX-WS в настоящее время использует JAX-B 2.x. JAX-B 2.x сильно отличается от JAX-B 1.x и других инструментов привязки реализации, таких как Castor. В этой статье более подробно рассматриваются различия между JAX-B 1.x и JAX-B 2.x. Если вы действительно хотите оценить различия, вам нужно взглянуть на сгенерированный код и оценить мобильность аннотированных POJO в JAX-B 2.x.

Любое обсуждение Java и XML было бы неполным без упоминания JAX-P. Вот презентация от Java One по истории JAX-P.

Также важна эволюция SAAJ . Самый большой эволюционный шаг, который я могу вспомнить для SAAJ, - это когда он перешел к расширению DOM, чтобы ваши обработчики могли легко взаимодействовать напрямую с XML-сообщением RAW SOAP.

Существует также история связанных реализаций JAX-P, JAX-WS и JAX-B в Sun JVM. В этом FAQ рассматриваются некоторые подробности связанных реализаций JAX-P и способы их переопределения. Если память мне не изменяет, все началось с того, что Crimson и Saxon были объединены (или, по крайней мере, являлись эталонными реализациями), а теперь Xerces и Xalan связаны в дистрибутивах Sun. RI JAX-WS и JAX-B из Metro также объединены в эти дни. Версия каждого связанного API и реализации зависит от основной (и иногда второстепенной) версии JVM, которую вы используете. Ваш сервер приложений также, вероятно, добавит свою собственную реализацию, чтобы испортить вам день. Одобренный механизм отмены стандартов будет вашим другом во многих из этих случаев. Файлы конфигурации и / или системные свойства для определения ваших реализаций фабрики SAAJ и JAX-P также будут полезны.

0 голосов
/ 13 ноября 2009

Их так много, потому что, по мнению каждого, «лучшего» еще нет. Все просто.

Они почти все запоминающиеся и непрозрачные. По крайней мере, мне нравится Xpath всякий раз, когда я просто хочу получить значения из XML-документа. Кроме того, я хотел бы, чтобы любой инструмент XML следовал шаблону builder всякий раз, когда я хочу создать документ XML. Например, XMLBuilder или XMLTool в Google Code.

0 голосов
/ 11 ноября 2009

Для веб-сервисов в java Sun выпустила свой начальный API, где все было очень ручным, затем Apache разработал проект оси, который первоначально мог создавать только статические заглушки, затем вышел JAX-WS, который поддерживал аннотации.

Для истории того, что произошло, когда вы можете посмотреть историю обучающих программ для веб-сервисов, поскольку они упоминают JAX-RPC, о котором я забыл: http://java.sun.com/webservices/docs/2.0/tutorial/information/history.html

0 голосов
/ 11 ноября 2009

DOM и SAX вышли первыми, еще тогда, когда, думаю, вместе. Затем в итоге появился StAX, что, безусловно, является улучшением по сравнению с SAX в том смысле, что он работает в режиме pull, как это всегда бывает у компиляторов.

Почему так много инструментов? Потому что в мире Java все должно быть перегружено.

...