public XMLElement evaluate() {
if(xpointer.hasPointerParts()) { //Scheme based pointer.
//Take each pointer part at a time and evaluate it against the root element. The first result found will be returned.
XMLElement result = null;
for(Iterator it = Arrays.asList(xpointer.getPointerParts()).iterator(); it.hasNext(); ) {
PointerPart pointerPart = (PointerPart)it.next();
//TODO Add extra pointer parts here once we support them.
if (pointerPart instanceof ElementPointerPart) {
result = evaluateElementPointerPart((ElementPointerPart)pointerPart);
}
if (result != null) return result;