public void ChildNodes ()
{
XmlTextReader xtr = new XmlTextReader ("<!DOCTYPE root [<!ENTITY ent 'ent-value'><!ENTITY el '<foo>hoge</foo><bar/>'>]><root/>",
XmlNodeType.Document, null);
XmlDocument doc = new XmlDocument ();
doc.Load (xtr);
XmlEntityReference ent = doc.CreateEntityReference ("ent");
// ChildNodes are not added yet.
AssertNull (ent.FirstChild);
doc.DocumentElement.AppendChild (ent);
// ChildNodes are added here.
AssertNotNull (ent.FirstChild);
ent = doc.CreateEntityReference ("foo");
AssertNull (ent.FirstChild);
// Entity value is empty when the matching DTD entity
// node does not exist.
doc.DocumentElement.AppendChild (ent);
AssertNotNull (ent.FirstChild);
AssertEquals (String.Empty, ent.FirstChild.Value);
ent = doc.CreateEntityReference ("el");
AssertEquals ("", ent.InnerText);
doc.DocumentElement.AppendChild (ent);
AssertEquals ("<foo>hoge</foo><bar />", ent.InnerXml);
AssertEquals ("hoge", ent.InnerText);
AssertEquals (XmlNodeType.Element, ent.FirstChild.NodeType);
}