0

这是一个示例 OpenSearch 描述文件:

http://webcat.hud.ac.uk/OpenSearch.xml

当我像这样发送查询时:

http://webcat.hud.ac.uk/perl/opensearch.pl?keyword=new&startpage=1&itemsperpage=20

我收到与 OpenSearch 兼容的响应。我如何在 Java 中实现 OpenSearch 规范,或者是否有任何库,或者是否有任何 xsd 可以从中生成 Java 代码?

4

2 回答 2

2

根据OpenSearch 网站关于“阅读 OpenSearch”的部分,有一个 Java 库可以做到这一点,称为Apache Abdera。我自己没有使用过它,所以我无法评论它的质量,但它应该值得研究 - 显然它可以解释和创建 OpenSearch 响应,所以这可能正是您正在寻找的。

或者,有很多非常好的 Java XML 解析器(有关一些建议,请参阅此问题),因此为简单的 OpenSearch XML 文件编写自己的解析器应该不会困难,因为完整的规范可在线获得。

至于 XSD,我找不到“官方”的,但是在各种开源项目中都有用于 OpenSearch 的 XSD,它们已经过测试并且您可以使用,例如这个,它是一个名为“OpenSearch”的项目的一部分验证器。”

编写 OpenSearch 结果的另一个潜在选择是非常成熟和广泛使用的Apache Lucene库,它在之前链接的 OpenSearch 网站中的“编写 OpenSearch 结果”软件列表中。

于 2013-10-25T16:52:42.643 回答
0

ROME还通过其ROME Module A9 OpenSearch 支持 OpenSearch

示例用法:

SyndFeed feed = new SyndFeedImpl();
feed.setFeedType(feedType);

// Add the opensearch module, you would get information like totalResults from the
// return results of your search
List mods = feed.getModules();
OpenSearchModule osm = new OpenSearchModuleImpl();
osm.setItemsPerPage(1);
osm.setStartIndex(1);
osm.setTotalResults(1024);
osm.setItemsPerPage(50);

OSQuery query = new OSQuery();
query.setRole("superset");
query.setSearchTerms("Java Syndication");
query.setStartPage(1);
osm.addQuery(query);

Link link = new Link();
link.setHref("http://www.bargainstriker.com/opensearch-description.xml");
link.setType("application/opensearchdescription+xml");
osm.setLink(link);

mods.add(osm);

feed.setModules(mods);
// end add module
于 2014-12-17T14:16:53.557 回答