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();