Хорошо, вы сначала проверяете входной XML по своей схеме?
Вот пример:
Dim xrs As New XmlReaderSettings()
xrs.Schemas.Add(Nothing, "..\..\XMLSchema1.xsd")
xrs.ValidationType = ValidationType.Schema
Dim doc As XDocument
Using xr As XmlReader = XmlReader.Create("..\..\XMLFile1.xml", xrs)
doc = XDocument.Load(xr)
End Using
For Each img As XElement In doc.<images>.<image>
Console.WriteLine("Type: {0}", img.@type)
Next
со схемой
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="images">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="image">
<xs:complexType>
<xs:attribute name="type" type="xs:string" default="normal"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
и ввод XML
<images>
<image/>
<image type="vector"/>
</images>
этот пример выводит
Type: normal
Type: vector