Quick Tip: Serializing an Object Field as an XML Attribute
The addition of the XML Serializer is one of the reasons I really love version 2 of the .NET Compact Framework. I use the XML Serializer in very nearly every application I write; to save application state, data files, etc. By default, the XML Serializer will create a child node for every field in a type. For example, the following object
public class TestData{ public Int32 TestID; public String Description;}
becomes
<TestData xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema"> <Description>Sample test description.</Description> <TestID>0</TestID></TestData>
There are times that you may wish to serialize one or more fields as attributes on the object's node (ex: reduce the size of the XML). By decorating the TestID field with an XmlAttribute attribute, the TestID field
[XmlAttribute()]public Int32 TestID;
now becomes an attribute (highlighted in purple) on the TestData node.
<TestData xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema" TestID="0"> <Description>Sample test description.</Description></TestData>
Enjoy!
-- DK
Disclaimers:
This posting is provided "AS IS" with no warranties, and confers no rights.
Comments
- Anonymous
October 05, 2006
There are times that you may wish to serialize one or more fields as attributes on the object's node