xmlParseFile();
で読み込んだファイルは確実に読み込めているようなのですが、
Xpathで抽出しようとするとうごきません。

xmlParseFile()の抽出結果の確認は
xmlDocGetRootElement()でルートノードを取得しtag名を標準出力したところ、正常に表示できたという根拠です。

<project xmlns="略">
  <modelVersion>4.0.0</modelVersion>
  <groupId>略</groupId>
  <artifactId>略</artifactId>
  <version>1.0.2</version>
  <name>略</name>

  ...
</project>

ようするにmavenのpom.xmlを読み込んで、Xpathで特定ノードを抽出したいんですが、

xmlNodeSetPtr executeXpath(xmlDocPtr &doc, xmlChar *xpath_expr) {
    xmlXPathContextPtr xpath_context;
    xmlXPathObjectPtr  xpath_obj;

    xpath_context = xmlXPathNewContext(doc);
    if (xpath_context == NULL) {
        cerr << "Error: unable to create new XPath context" << endl;
        xmlFreeDoc(doc);
        return NULL;
    }
    xmlNodePtr node = xmlDocGetRootElement(doc);

    /* Evaluate xpath expression */
    xpath_obj = xmlXPathEvalExpression(xpath_expr, xpath_context);
    if (xmlXPathNodeSetIsEmpty(xpath_obj->nodesetval)) {
        cerr << "Error: unable to evaluate xpath expression" << endl;
        xmlXPathFreeContext(xpath_context);
        xmlFreeDoc(doc);
        return NULL;
    }

    /* Print results */
    return xpath_obj->nodesetval;
}

この関数を

xmlNodeSetPtr versionObj = domParser.executeXpath(pomData, (xmlChar *)"//version[1]");

こうしても、

Error: unable to evaluate xpath expression

の箇所で落ちてしまいます。

なぜなのでしょうか?