2002-04-12 Duncan Mak <duncan@ximian.com>
[mono.git] / mcs / class / System.XML / System.Xml / XmlDocumentFragment.cs
index 8605b48527238ff93dff8a027206f4c22d73723e..8bc9aa4aac3a568710db528572e5447fa0d44b64 100644 (file)
@@ -14,7 +14,7 @@ namespace System.Xml
        {\r
                #region Constructor\r
 \r
-               internal XmlDocumentFragment (XmlDocument doc)\r
+               protected internal XmlDocumentFragment (XmlDocument doc)\r
                        : base (doc)\r
                {\r
                }\r
@@ -24,7 +24,8 @@ namespace System.Xml
 \r
                [MonoTODO]\r
                public override string InnerXml {\r
-                       get {throw new NotImplementedException(); }\r
+                       set { throw new NotImplementedException (); }\r
+                       get { throw new NotImplementedException (); }\r
                }\r
                \r
                public override string LocalName {\r
@@ -53,7 +54,17 @@ namespace System.Xml
                #region Methods         \r
                public override XmlNode CloneNode (bool deep)\r
                {\r
-                       return new XmlDocumentFragment (OwnerDocument);\r
+                       if (deep) { // clone document + child nodes\r
+                               XmlNode node = FirstChild;\r
+\r
+                               while ((node != null) && (node.HasChildNodes)) {\r
+                                       AppendChild (node.NextSibling.CloneNode (false));\r
+                                       node = node.NextSibling;\r
+                               }\r
+\r
+                               return node;\r
+                       } else\r
+                               return new XmlDocumentFragment (OwnerDocument);\r
                }\r
 \r
                [MonoTODO]\r