// Namespace prefix specified
localName = key.substring(colon + 1);
String prefix = key.substring(0, colon);
namespaceUri = namespaces.translateNamespacePrefixToUri(prefix);
if(namespaceUri == null) {
throw new TemplateModelException("Namespace prefix " + prefix + " is not registered.");
}
}
if(localName.charAt(0) == '@') {
op = navigator.getAttributeOperator();
localName = localName.substring(1);
}
else {
op = navigator.getChildrenOperator();
}
}
List result = new ArrayList();
for (Iterator iter = nodes.iterator(); iter.hasNext();) {
try {
op.process(iter.next(), localName, namespaceUri, result);
}
catch(RuntimeException e) {
throw new TemplateModelException(e);
}
}
return deriveModel(result);
}