I'm pretty sure you can't do 'attributes' like that since they are 'sub-elements'.. so, instead of
case XmlNodeType.Element:
xmlSet.WriteStartElement(reader.Name);
break;
I think you need something more like this
case XmlNodeType.Element:
xmlSet.WriteStartElement(reader.Name);
if(reader.HasAttributes)
{
while(reader.MoveToNextAttribute())
{
}
}
break;
you'll need to check intellisense/fill in the gaps, that's just from a quick brain dump
[Edit] you might need this
if(reader.MoveToFirstAttribute)
{
while(reader.MoveToNextAttribute())
{
}
}
[/Edit]