From f709954efcdfb0eb03b5bea7ff5fb02ba3cd0184 Mon Sep 17 00:00:00 2001 From: Miguel de Icaza Date: Sun, 1 Jun 2003 06:09:28 +0000 Subject: [PATCH] 2003-06-01 Miguel de Icaza * XmlSerializationReader.cs (UnknownAttribute, UnknownNode, UnknownElement): Add line number information. svn path=/trunk/mcs/; revision=15042 --- .../System.Xml.Serialization/ChangeLog | 5 +++ .../XmlSerializationReader.cs | 39 ++++++++++++++++--- 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/mcs/class/System.XML/System.Xml.Serialization/ChangeLog b/mcs/class/System.XML/System.Xml.Serialization/ChangeLog index c6dff52e438..0fc51fe4597 100755 --- a/mcs/class/System.XML/System.Xml.Serialization/ChangeLog +++ b/mcs/class/System.XML/System.Xml.Serialization/ChangeLog @@ -1,3 +1,8 @@ +2003-06-01 Miguel de Icaza + + * XmlSerializationReader.cs (UnknownAttribute, UnknownNode, + UnknownElement): Add line number information. + 2003-05-29 Lluis Sanchez Gual * TypeData.cs, TypeTranslator.cs: Renamed some properties. diff --git a/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationReader.cs b/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationReader.cs index 8628650ad5d..d24ad45064d 100644 --- a/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationReader.cs +++ b/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationReader.cs @@ -551,20 +551,47 @@ namespace System.Xml.Serialization { protected void UnknownAttribute (object o, XmlAttribute attr) { - // TODO: line numbers - eventSource.OnUnknownAttribute (new XmlAttributeEventArgs (attr,0,0,o)); + int line_number, line_position; + + if (Reader is XmlTextReader){ + line_number = ((XmlTextReader)Reader).LineNumber; + line_position = ((XmlTextReader)Reader).LinePosition; + } else { + line_number = 0; + line_position = 0; + } + + eventSource.OnUnknownAttribute (new XmlAttributeEventArgs (attr, line_number, line_position, o)); } protected void UnknownElement (object o, XmlElement elem) { - // TODO: line numbers - eventSource.OnUnknownElement (new XmlElementEventArgs(elem,0,0,o)); + int line_number, line_position; + + if (Reader is XmlTextReader){ + line_number = ((XmlTextReader)Reader).LineNumber; + line_position = ((XmlTextReader)Reader).LinePosition; + } else { + line_number = 0; + line_position = 0; + } + + eventSource.OnUnknownElement (new XmlElementEventArgs (elem, line_number, line_position,o)); } protected void UnknownNode (object o) { - // TODO: line numbers - eventSource.OnUnknownNode (new XmlNodeEventArgs(0, 0, Reader.LocalName, Reader.Name, Reader.NamespaceURI, Reader.NodeType, o, Reader.Value)); + int line_number, line_position; + + if (Reader is XmlTextReader){ + line_number = ((XmlTextReader)Reader).LineNumber; + line_position = ((XmlTextReader)Reader).LinePosition; + } else { + line_number = 0; + line_position = 0; + } + + eventSource.OnUnknownNode (new XmlNodeEventArgs(line_number, line_position, Reader.LocalName, Reader.Name, Reader.NamespaceURI, Reader.NodeType, o, Reader.Value)); if (Reader.NodeType != XmlNodeType.Attribute) { Reader.Skip(); -- 2.25.1