Java XPath: consultas con espacios de nombre predeterminados xmlns

Quiero hacer una consulta XPath en este archivo (extracto mostrado):

<?xml version="1.0" encoding="UTF-8"?>
<!-- MetaDataAPI generated on: Friday, May 25, 2007 3:26:31 PM CEST -->
<ModelClass xmlns="http://xml.sap.com/2002/10/metamodel/webdynpro" xmlns:IDX="urn:sap.com:WebDynpro.ModelClass:2.0">
    <ModelClass.Parent>
        <Core.Reference package="com.test.mypackage" name="ModelName" type="Model"/>

Este es un fragmento del código que estoy usando:

DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document document = builder.parse(new File(testFile));
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
xpath.setNamespaceContext( new NamespaceContext() {
    public String getNamespaceURI(String prefix) {
...

String result = xpath.evaluate(xpathQueryString, document);
System.out.println(result);

El problema al que me estoy enfrentando es que cuando se hace referencia al espacio de nombres predeterminado en una consulta XPath, no se llama al método getNamespaceURI para resolverlo. Esta consulta por ejemplo no extrae nada:

//xmlns:ModelClass.Parent/xmlns:Core.Reference[@type=\"Model\"]/@package

Ahora he intentado "engañar" al analizador reemplazandoxmlns con un prefijo falsod y luego escribiendo elgetNamespaceURI método en consecuencia (por lo que para volverhttp://xml.sap.com/2002/10/metamodel/webdynpro cuandod se encuentra). En este caso, elgetNamespaceURI se llama pero el resultado de la evaluación de la expresión XPath es siempre una cadena vacía.

Si elimino los espacios de nombres del archivo y de la expresión de consulta XPath, puedo obtener la cadena que quería (com.test.mypackage).

¿Hay alguna manera de hacer que las cosas funcionen correctamente con el espacio de nombres predeterminado?

Respuestas a la pregunta(2)

Su respuesta a la pregunta