I would try to refactor the solution if possable to use a DataContract. Not that your exactly using Data Contracts, but they are another option.
You cannot use the DataContract to get attributes unfortunatly... it simply can't be done. You need to make the XML have only values inside the tags, no attributes.
I've seen some very round about ways to do this but in the long run it becomes way too much work (practically requires an extra library :omg: ..!!) it is just better to do this with XML transforms if you MUST have that attribute there or just refactor the XML (if you can) to be something more like:
<Course>
<CourseInfo>
<Id>3000</Id>
<Name type="BTECH">Bachelor of Technology</Name>
<CourseInfo>
</Course>
Becomes:
<Course>
<CourseInfo>
<Id>3000</Id>
<Name>
<type>BTECH"</type>
<value>Bachelor of Technology</value>
</Name>
<CourseInfo>
</Course>
MSFT doesn't use attributes in DataContracts.
sorry I know it isn't exactly what you were asking but I really like using Data Contracts.. so I evangelise. :-D