2002-10-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mcs / class / System.XML / System.Xml / XmlDocumentFragment.cs
1 //\r
2 // System.Xml.XmlDocumentFragment\r
3 //\r
4 // Author:\r
5 //   Duncan Mak  (duncan@ximian.com)\r
6 //\r
7 // (C), Ximian, Inc\r
8 //\r
9 using System;\r
10 \r
11 namespace System.Xml\r
12 {\r
13         public class XmlDocumentFragment : XmlNode\r
14         {\r
15                 #region Fields\r
16
17                 private XmlLinkedNode lastLinkedChild;
18 \r
19                 #endregion\r
20 \r
21                 #region Constructor\r
22 \r
23                 protected internal XmlDocumentFragment (XmlDocument doc)\r
24                         : base (doc)\r
25                 {\r
26                 }\r
27                 \r
28                 #endregion\r
29                 #region Properties\r
30 \r
31                 [MonoTODO]\r
32                 public override string InnerXml {\r
33                         set { throw new NotImplementedException (); }\r
34                         get { throw new NotImplementedException (); }\r
35                 }\r
36                 \r
37                 public override string LocalName {\r
38                         get { return "#document-fragment"; }\r
39                 }\r
40 \r
41 \r
42                 public override string Name { \r
43                         get { return "#document-fragment"; }\r
44                 }\r
45 \r
46                 public override XmlNodeType NodeType {\r
47                         get { return XmlNodeType.DocumentFragment; }\r
48                 }\r
49 \r
50                 public override XmlDocument OwnerDocument {\r
51                         get { return base.OwnerDocument; }\r
52                 }\r
53 \r
54                 public override XmlNode ParentNode {\r
55                         get { return null; } // it's always null here.\r
56                 }\r
57 \r
58                 // copied this way from XmlElement\r
59                 internal override XmlLinkedNode LastLinkedChild\r
60                 {\r
61                         get { return lastLinkedChild; }
62                         set { lastLinkedChild = value; }
63                 }\r
64                 #endregion\r
65 \r
66                 #region Methods         \r
67                 public override XmlNode CloneNode (bool deep)\r
68                 {\r
69                         if (deep) { // clone document + child nodes\r
70                                 XmlNode node = FirstChild;\r
71 \r
72                                 while ((node != null) && (node.HasChildNodes)) {\r
73                                         AppendChild (node.NextSibling.CloneNode (false));\r
74                                         node = node.NextSibling;\r
75                                 }\r
76 \r
77                                 return node;\r
78                         } else\r
79                                 return new XmlDocumentFragment (OwnerDocument);\r
80                 }\r
81 \r
82                 [MonoTODO]\r
83                 public override void WriteContentTo (XmlWriter w)\r
84                 {\r
85                         throw new NotImplementedException ();\r
86                 }\r
87 \r
88                 [MonoTODO]\r
89                 public override void WriteTo (XmlWriter w)\r
90                 {\r
91                         throw new NotImplementedException ();\r
92                 }\r
93 \r
94                 #endregion\r
95         }\r
96 }\r