Recently I came across an interesting product, XYZFind
XYZFind is a persistent repository for XML integrated with a powerful search and query processor.
� A single repository for all XML, regardless of document type.
� Indexes any well-formed XML (DTD agnostic; no schema design or configuration required).
� Incremental Update Incrementally add or delete documents from the repository. Automatically handles changes to document structure in addition to changes in the data values.
� No restrictions on number or types of documents
� Built-in statistics about the documents including the number of occurrences of each unique value (both text and numeric), the hierarchical relevance (what level of depth in the parent-child hierarchy) for every value in the index, and the minimum and maximum values for numeric elements.
Search and Query
� Global Search
� Path-specific search
� Query support for Boolean operators
� Open-ended queries (wildcard query any of a given element's children)
� Unrooted queries (match patterns requiring no absolute path)
� Queries on numeric ranges
� Aggregated results (Document/sub-document content, versus a listing of URLs)
� Directives on which fields to return and/or suppress in returned results
� Metadata results, including lists of available document types, lists of documents, and schema descriptions
� Results pagination
� Aggregated results across common and extended schemas
� XML / HTTP (using XYZQL, our XML Query Language)
� Java API