// OAI hierarchy is flat (no sub-directories) - only allow 'null' as pdURI!
ArrayList<URI> resultList = new ArrayList<URI>();
OaiPmhServer server = new OaiPmhServer(baseURL);
try {
RecordsList list;
if (q == null) {
list = server.listRecords(metaDataPrefix, "2009-07-12T10:50:20Z", "2009-07-14T16:38:20Z", set);
} else {
if (!(q instanceof QueryDateRange))
throw new QueryValidationException("Unsupported query type");
list = server.listRecords(metaDataPrefix, dateFormat.format(((QueryDateRange) q).getStartDate().getTime()), dateFormat.format(((QueryDateRange) q).getEndDate().getTime()), set);
}
// Prepare XPath expression
HashMap<String, String> map = new HashMap<String, String>();
map.put("pmh", "http://www.openarchives.org/OAI/2.0/");
map.put("xb", "http://com/exlibris/digitool/repository/api/xmlbeans");
try {
XPath xpathURL = new Dom4jXPath("/pmh:OAI-PMH/pmh:ListRecords/pmh:record/pmh:metadata/xb:digital_entity/pmh:urls/pmh:url[@type='stream']");
xpathURL.setNamespaceContext(new SimpleNamespaceContext(map));
List urlList = xpathURL.selectNodes(list.getResponse());
for (Object aNode : urlList) {
try {
if (aNode instanceof Node) {
resultList.add(new URI(((Node) aNode).getText()));
}