void OnUnknownNode(XmlNode node, object o, string qnames) { 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; } if (node is XmlAttribute) { UnknownAttribute(o, (XmlAttribute)node, qnames); return; } else if (node is XmlElement) { UnknownElement(o, (XmlElement)node, qnames); return; } else { if (eventSource != null) { eventSource.OnUnknownNode(new XmlNodeEventArgs(line_number, line_position, node.LocalName, node.Name, node.NamespaceURI, node.NodeType, o, node.Value)); } if (Reader.ReadState == ReadState.EndOfFile) { throw new InvalidOperationException("End of document found"); } } }