¿Cómo se unen los prefijos de espacio de nombres cuando se usa QXmlQuery (Qt XQuery)?

Estoy intentando usar QXmlQuery para ejecutar una expresión XQuery en un documento con un espacio de nombres predeterminado declarado.

Para discusión

<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://namespace.com/ns1">
    <node1 attr1="hi"/>
</root>

Ahora, tengo lo siguiente para abrir y consultar el documento:

QFile temp("my.xml");
temp.open(QIODevice::ReadOnly | QIODevice::Text);

QXmlQuery query;
query.setFocus(&temp);

QXmlResultItems items;
query.setQuery("/root");

query.evaluateTo(&items);

Al ejecutar esto, los 'elementos' nunca tienen datos, ya que el documento tiene un espacio de nombres. Por supuesto, si elimino la declaración de espacio de nombres predeterminada, los "elementos" tienen los datos correctos, pero no tengo ese lujo.

He intentado cambiar la consulta a: "/ prefix: root", y Qt ladra una advertencia como:

No namespace binding exists for the prefix prefix in prefix:root

Existe un enlace de espacio de nombres! ¿Pero donde? Veo QXmlNamePool, pero no tiene métodos de mutación. Puedo crear un QXmlName con el grupo desde la consulta ala:

QXmlName name(query.namePool(), "prefix", "http://namespace.com/ns1");

Pero no cambia nada. Estoy perdido, otros kits de herramientas que he usado tienen métodos simples para vincular prefijos a URI de espacio de nombres.

Respuestas a la pregunta(1)

Su respuesta a la pregunta