.net xmlserializer problem
I am new to XMLSerializer and am trying to deserialize a very very simple xml file.
Problem is that it fails with error:
line 6, pos 5: Unknown Node:strItemName
Can anyone tell me whats wrong with my readPo() code?
Thank you
1. <?xml version="1.0" encoding="us-ascii" standalone="yes"?>
2. <?xml-stylesheet version='1.0'?>
3. <ItemList>
4. <Item>
5. <strItemName>in 1</strItemName>
6. </Item>
7. <Item>
8. <strItemName>in 2</strItemName>
9. </Item>
10. </ItemList>
read it into code:
// ret true if read ok else false if error
private static bool bReadPO ( string filename, ref ItemList MyItemList )
{
m_bGotXmlSerializeError = false; // init
XmlSerializer serializer = new XmlSerializer ( typeof ( ItemList ) );
/* If the XML document has been altered with unknown
nodes or attributes, handle them with the
UnknownNode and UnknownAttribute events.*/
serializer.UnknownNode += new XmlNodeEventHandler ( serializer_UnknownNode );
serializer.UnknownAttribute += new XmlAttributeEventHandler ( serializer_UnknownAttribute );
// A FileStream is needed to read the XML document.
FileStream fs = new FileStream ( filename, FileMode.Open );
MyItemList = (ItemList) serializer.Deserialize ( fs );
return ( !m_bGotXmlSerializeError );
}
private static void serializer_UnknownNode ( object sender, XmlNodeEventArgs e )
{
if ( m_bGotXmlSerializeError == false ) {
Debug.WriteLine ( "line " + e.LineNumber + ", pos " + e.LinePosition + ": Unknown Node:" + e.Name + "\t" + e.Text );
Console.WriteLine ( "line " + e.LineNumber + ", pos " + e.LinePosition + ": Unknown Node:" + e.Name + "\t" + e.Text );
m_bGotXmlSerializeError = true;
} else {
// already got error
;
}
return;
}
private static void serializer_UnknownAttribute (object sender, XmlAttributeEventArgs e )
{
System.Xml.XmlAttribute attr = e.Attr;
if ( m_bGotXmlSerializeError == false ) {
Debug.WriteLine ( "line " + e.LineNumber + ", pos " + e.LinePosition + ": Unknown attribute " + attr.Name + "='" + attr.Value + "'");
Console.WriteLine ( "line " + e.LineNumber + ", pos " + e.LinePosition + ": Unknown attribute " + attr.Name + "='" + attr.Value + "'");
m_bGotXmlSerializeError = true;
} else {
// already got error
;
}
return;
}

