pepinho: No probe con xmltextReader =s
severino: Si eso intente pero asi como esta planteado no sabria en donde meter la pregunta, ya que en la consulta no se puede meter ningun if para esto o try, en la query hay que indicarle de una que vas a tomar. Igualmente ya lo solucione

Entendí que por consulta no se puede hacer mucho en este caso, ya que no encontre nada al respecto ni en mdsn. Asi que encare el objetivo por otro lado. Cree una lista de Items, en un foreach declaro un XElement y recorro _doc.Desendants("item"). De ese modo si puedo preguntar if el atributo es nulo

guarda que ahí va el codigo:
Lenguaje: csharp
int id;
string color;
Item item;
List<Item> lista = new List<Item>();
XDocument doc = XDocument.Load(@"c:\\datos.xml");
Foreach(XElement e in doc.Descendants("Item"))
{
id = Int.Parse(e.Attribute("id").Value);
if (e.Attribute("color") != null) color = e.Attribute("color").Value;
else color = null;
item = new Item(id,color);
lista.add(item);
}
A la clase Item le cree un constructor.
Bueno esto fue como extraer valores de atributos de elementos irregulares para la consola pc con winxp sp3, espero que les haya gustadooo chau.