SelectSingleNode devuelve nulo para una ruta de nodo xml buena conocida usando XPath

Considere este simple documento XML. El XML serializado que se muestra aquí es el resultado de un XmlSerializer de un objeto POCO complejo cuyo esquema no tengo control.

<My_RootNode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="">
  <id root="2.16.840.1.113883.3.51.1.1.1" extension="someIdentifier" xmlns="urn:hl7-org:v3" /> 
  <creationTime xsi:nil="true" xmlns="urn:hl7-org:v3" />      
</My_RootNode>

El objetivo es extraer el valor del atributo de extensión en el nodo id. En este caso, estamos utilizando el método SelectSingleNode, y se nos da una expresión XPath como tal:

XmlNode idNode = myXmlDoc.SelectSingleNode("/My_RootNode/id");
//idNode is evaluated to null at this point in the debugger!
string msgID = idNode.Attributes.GetNamedItem("extension").Value;

El problema es que laSelectSingleNode El método devuelve nulo para la expresión XPath dada.

Pregunta: ¿Alguna idea sobre la corrección de esta consulta de XPath, o por qué este método call + XPath expresión devolvería un valor nulo? Tal vez los espacios de nombres son parte del problema?

Respuestas a la pregunta(8)

Su respuesta a la pregunta