From: Owen R. <exo...@us...> - 2005-04-15 04:45:22
|
Update of /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15960/src/NetReflector/Serialisers Modified Files: XmlTypeSerialiser.cs Log Message: some refactoring of invalid node detection. now also detects duplicates. Index: XmlTypeSerialiser.cs =================================================================== RCS file: /cvsroot/netreflector/NetReflector/src/NetReflector/Serialisers/XmlTypeSerialiser.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** XmlTypeSerialiser.cs 7 Apr 2005 04:30:40 -0000 1.5 --- XmlTypeSerialiser.cs 15 Apr 2005 04:45:09 -0000 1.6 *************** *** 91,99 **** { IDictionary childNodes = new ListDictionary(); ! foreach (XmlNode attribute in node.Attributes) ! childNodes[attribute.Name] = attribute; ! ! foreach (XmlNode childNode in node.ChildNodes) // check for duplicates ! childNodes[childNode.Name] = childNode; foreach (IXmlMemberSerialiser serialiser in MemberSerialisers) --- 91,96 ---- { IDictionary childNodes = new ListDictionary(); ! AddChildNodesToDictionary(node.Attributes, childNodes, table); ! AddChildNodesToDictionary(node.ChildNodes, childNodes, table); foreach (IXmlMemberSerialiser serialiser in MemberSerialisers) *************** *** 109,113 **** foreach (XmlNode orphan in childNodes.Values) ! table.OnUnusedNode(orphan); } } --- 106,122 ---- foreach (XmlNode orphan in childNodes.Values) ! table.OnInvalidNode(new InvalidNodeEventArgs(orphan, "Unused node detected: " + orphan.OuterXml)); ! } ! ! private void AddChildNodesToDictionary(IEnumerable nodes, IDictionary childNodes, NetReflectorTypeTable table) ! { ! foreach (XmlNode node in nodes) ! { ! if (childNodes.Contains(node.Name)) ! { ! table.OnInvalidNode(new InvalidNodeEventArgs(node, "Duplicate node detected: " + node.OuterXml)); ! } ! childNodes[node.Name] = node; ! } } } |