//\r
// Author:\r
// Duncan Mak (duncan@ximian.com)\r
+// Atsushi Enomoto (ginga@kit.hi-ho.ne.jp)\r
//\r
// (C), Ximian, Inc\r
-//\r
+// (C)2002 Atsushi Enomoto\r
using System;\r
+using System.IO;\r
+using System.Text;\r
\r
namespace System.Xml\r
{\r
public class XmlDocumentFragment : XmlNode\r
{\r
#region Fields\r
-
- private XmlLinkedNode lastLinkedChild;
+\r
+ private XmlLinkedNode lastLinkedChild;\r
\r
#endregion\r
\r
#endregion\r
#region Properties\r
\r
- [MonoTODO]\r
+ [MonoTODO("Setter is as incomplete as that of XmlElement.InnerXml")]\r
public override string InnerXml {\r
- set { throw new NotImplementedException (); }\r
- get { throw new NotImplementedException (); }\r
+ set {\r
+ // Copied from XmlElement.InnerXml (in the meantime;-))\r
+ foreach(XmlNode n in ChildNodes)\r
+ {\r
+ this.RemoveChild (n);\r
+ } \r
+\r
+ // I hope there are any well-performance logic...\r
+ XmlNameTable nt = this.OwnerDocument.NameTable;\r
+ XmlNamespaceManager nsmgr = this.ConstructNamespaceManager ();\r
+ XmlParserContext ctx = new XmlParserContext (nt, nsmgr, XmlLang, this.XmlSpace);\r
+ XmlTextReader xmlReader = OwnerDocument.ReusableReader;\r
+ xmlReader.SetReaderContext (String.Empty, ctx);\r
+ xmlReader.SetReaderFragment (new StringReader (value), XmlNodeType.Element);\r
+ this.ConstructDOM (xmlReader, this);\r
+ }\r
+ get {\r
+ StringBuilder sb = new StringBuilder ();\r
+ foreach(XmlNode n in ChildNodes)\r
+ sb.Append (n.OuterXml);\r
+ return sb.ToString ();\r
+ }\r
}\r
\r
public override string LocalName {\r
get { return null; } // it's always null here.\r
}\r
\r
- // copied this way from XmlElement\r
+ // It is really not a type of XmlLinkedNode,\r
+ // but I copied this way from XmlElement. I looks good.\r
internal override XmlLinkedNode LastLinkedChild\r
{\r
- get { return lastLinkedChild; }
- set { lastLinkedChild = value; }
+ get { return lastLinkedChild; }\r
+ set { lastLinkedChild = value; }\r
}\r
#endregion\r
\r
return new XmlDocumentFragment (OwnerDocument);\r
}\r
\r
- [MonoTODO]\r
public override void WriteContentTo (XmlWriter w)\r
{\r
- throw new NotImplementedException ();\r
+ foreach(XmlNode n in ChildNodes)\r
+ n.WriteContentTo (w);\r
}\r
\r
- [MonoTODO]\r
public override void WriteTo (XmlWriter w)\r
{\r
- throw new NotImplementedException ();\r
+ foreach(XmlNode n in ChildNodes)\r
+ n.WriteTo (w);\r
}\r
\r
#endregion\r