Axis
Axis - это исполнительная подсистема SOAP. Axis предоставляет реализацию JAX-RPC и
расширяемую реализацию, которая допускает огромную гибкость настройки.
Axis является нейтральным по отношению к производителю инструмент.
Axis имеет собственный standalone контейнер для отладочных целей, а также интегрируется в любой другой сервер приложений. Хорошим примером здесь является Jakarta Tomcat.
Xindice
Apache Xindice - это XML-«база данных». Она хранит и индексирует сжатые XML документы, обеспечивая доступ клиентов к этим данным. Эта система была задумана для хранения большого числа маленьких XML-документов. О достоинствах и недостатках Xindice можно прочитать в разделе FAQ на официальном сайте (http://xml.apache.org/xindice/faq.html).
Xindice поддерживает XML:DB API (http://xmldb-org.sourceforge.net).
Xindice хранит коллекции документов в иерархической форме, так же как хранятся файлы в файловой системе. Xindice предоставляет язык запросов XPath (http://www.w3.org/TR/xpath) для выборки элементов из коллекций и поддерживает язык XUpdate (см. XML:DB API), позволяющий изменять коллекции.
Новые версии Xindice устанавливаются в контейнер (например, Tomcat) в виде web-приложения (WAR). Путь к базе данных - корневой элемент всех коллекций - или отдельной коллекции задается при помощи URI вида:
xmldb:xindice://localhost:8080/xindice/db/orders. Здесь xmldb:xindice - имя протокола, localhost:8080 - сервер и порт, /xindice - контекст web-приложения Xindice, /db - база данных (корневая коллекция), orders - название коллекции.
В одной базе можно создать несколько коллекций, причем, в каждой коллекции могут быть как вложенные коллекции, так и XML-документы.
Xindice предоставляет средства управления коллекциями в виде командной строки и набора API:
1. XML:DB XML Database API - для создания Xindice-приложений на Java;
2. Xindice XML-RPC API - для создания Xindice-приложений на других языках;
3. Core Server API - API ядра системы для добавления нового функционала.
XML:DB API эквивалентна функциональности которую предоставляют JDBC и ODBC для доступа к реляционным базам данных.
XML:DB API основана на концепции коллекций, которые хранят ресурсы. Вообще ресурсом может быть все что угодно: XML-документ, blob-объект или любой другой тип, но Xindice поддерживает только работу с XML-ресурсами - ресурсами, содержимое которых - XML-документы.
Xindice предоставляет реализацию XML:DB API Core Level 1: обязательный сервис XPathQueryService (возможности выполнения XPath запросов), необязательные -XUpdateQueryService (выполнение запросов XUpdate) и
CollectionManagementService (базовый функционал для добавления и удаления коллекций).
Также Xindice предоставляет ряд других, специфический классов: DatabaseInstanceManager (программное управление сервером) и CollectionManager (создание и конфигурирование коллекций внутри сервера). См. также разделы «Схема данных» и «Класс XindiceHelper».