2003-06-01 Miguel de Icaza <miguel@ximian.com>
authorMiguel de Icaza <miguel@gnome.org>
Sun, 1 Jun 2003 06:09:28 +0000 (06:09 -0000)
committerMiguel de Icaza <miguel@gnome.org>
Sun, 1 Jun 2003 06:09:28 +0000 (06:09 -0000)
* XmlSerializationReader.cs (UnknownAttribute, UnknownNode,
UnknownElement): Add line number information.

svn path=/trunk/mcs/; revision=15042

mcs/class/System.XML/System.Xml.Serialization/ChangeLog
mcs/class/System.XML/System.Xml.Serialization/XmlSerializationReader.cs

index c6dff52e438ce088e545d7fec3b8fc131d21a6b0..0fc51fe4597292ae5a794bdf1f1bb3ba55b4bc3c 100755 (executable)
@@ -1,3 +1,8 @@
+2003-06-01  Miguel de Icaza  <miguel@ximian.com>
+
+       * XmlSerializationReader.cs (UnknownAttribute, UnknownNode,
+       UnknownElement): Add line number information.
+
 2003-05-29  Lluis Sanchez Gual <lluis@ximian.com>
 
        * TypeData.cs, TypeTranslator.cs: Renamed some properties.
index 8628650ad5d7e6779c435f9eede951cf64a1fadb..d24ad45064d65eb8729cc9f793bf85aed0bed4ba 100644 (file)
@@ -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();