¿Por qué el atributo 'xmlns' afecta la búsqueda del nodo XPath?

El siguiente código funciona perfecto. Ver archivo XML a continuación.

XPathDocument xPathDoc = new XPathDocument(@"C:\Authors.xml");
XPathNavigator navigator = xPathDoc.CreateNavigator();
XPathNodeIterator iterator = navigator.Select("/Contacts/Author/FirstName");
iterator.MoveNext();
string firstName = iterator.Current.InnerXml;
Console.WriteLine(firstName);

El valor de 'firstName' devuelve 'Joe', que es perfecto. Sin embargo, cuando agrego este attibute xmlns = "http://www.w3.org/1999/xhtml" a la etiqueta '', para que se vea de la siguiente manera:

<Author xmlns="http://www.w3.org/1999/xhtml">

entonces el código no devuelve el valor correcto ('Joe') ¿Por qué entonces el atributo xmlns = "http://www.w3.org/1999/xhtml" afecta el código anterior y qué me falta para devolver el valor correcto?

Cualquier ayuda será apreciada.

Aquí está el archivo xml:

<?xml version="1.0" encoding="UTF-8" ?> 
<Contacts>
<Author>
<FirstName>Joe</FirstName>
</Author>
<Teacher>
<FirstName>Larry</FirstName>
</Teacher>

<Painter>
<FirstName>Mary</FirstName>
</Painter>
</Contacts>

Respuestas a la pregunta(2)

Su respuesta a la pregunta