Howard Katz has posted version 0.61 of XQEngine, an open-source, Java-based query engine for collections of XML documents. According to Katz,
Utilizing XQuery as its front-end query language, it lets you interrogate collections of XML documents for boolean combinations of keywords, much as Google and other search engines let you do for HTML. XQuery, however, provides much more powerful search capabilities than equivalent HTML-based engines, since its XPath component lets you specify constraints on attributes and element hierarchies, in addition to the specific word content you're searching on. Refer to the W3C's XML Query website to see what the W3C and other vendors are doing with XQuery and XPath.
XQEngine is a compact (roughly 250K) embeddable component written in Java. It's not a standalone application and requires a reasonable amount of Java programming skill to use. It has a straightforward programming interface that makes that fairly easy to do. It's single-threaded and should work well as a personal productivity tool on a single desktop, as part of a CD-based application, or on a server with low to moderate traffic. (Making the engine thread-capable is not overly difficult and remains a future project.)