+2006-12-11 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlDocument.cs : call overriden CreateAttribute() when loading from
+ XmlReader.
+
2006-12-05 Atsushi Enomoto <atsushi@ximian.com>
* XmlReader.cs : new 2.0 MoveToAttribute(int) failed to move to the
reader.MoveToFirstAttribute ();
else if (reader.NodeType != XmlNodeType.Attribute)
throw new InvalidOperationException (MakeReaderErrorMessage ("bad position to read attribute.", reader));
- XmlAttribute attribute = CreateAttribute (reader.Prefix, reader.LocalName, reader.NamespaceURI, false, false); // different NameTable
+ XmlAttribute attribute = CreateAttribute (reader.Prefix, reader.LocalName, reader.NamespaceURI);
#if NET_2_0
if (reader.SchemaInfo != null)
SchemaInfo = new XmlSchemaInfo (reader.SchemaInfo);
+2006-12-11 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XmlDocumentTests.cs : make sure to call overriden CreateAttribute()
+ when loading from XmlReader.
+
2006-12-05 Atsushi Enomoto <atsushi@ximian.com>
* XmlNodeTests.cs : added another test for GetPrefixOfNamespace().
doc.LoadXml (xml);
XmlNodeList nodeList = doc.GetElementsByTagName ("Signature");
}
+
+ class MyXmlDocument : XmlDocument
+ {
+ public override XmlAttribute CreateAttribute (string p, string l, string n)
+ {
+ return base.CreateAttribute (p, "hijacked", n);
+ }
+ }
+
+ [Test]
+ public void UseOverridenCreateAttribute ()
+ {
+ XmlDocument doc = new MyXmlDocument ();
+ doc.LoadXml ("<root a='sane' />");
+ AssertNotNull (doc.DocumentElement.GetAttributeNode ("hijacked"));
+ AssertNull (doc.DocumentElement.GetAttributeNode ("a"));
+ }
}
}