for(Object obj : args) {
if (obj instanceof List) {
for (Object o : (List)obj) {
try {
String value = StringFunction.evaluate(o, navigator);
IRI resolved = null;
IRI baseUri = null;
if (o instanceof OMNode) {
OMNode node = (OMNode) o;
OMContainer el = node.getParent();
if (el instanceof Document) {
Document doc = (Document) el;
baseUri = doc.getBaseUri();
} else if (el instanceof Element) {
Element element = (Element) el;
baseUri = element.getBaseUri();
}
} else if (o instanceof OMAttribute) {
OMAttribute attr = (OMAttribute) o;
Element element = (Element) context.getNavigator().getParentNode(attr);
baseUri = element.getBaseUri();
}
if (baseUri != null) {
resolved = baseUri.resolve(value);
results.add(resolved);
}
} catch (Exception e) {}
}
} else {