Removal of NET_1_1 defines and some NET_2_0; Both defines are true these days in...
[mono.git] / mcs / class / System.XML / Mono.Xml.XPath / XPathNavigatorReader.cs
index b02039c46565803ea643082b64cf80e29954d903..6af8a6158932afc1141ecc3f9c18d7566d506bb9 100644 (file)
@@ -27,7 +27,6 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
 //\r
-#if NET_2_0\r
 \r
 using System;\r
 using System.Text;\r
@@ -42,13 +41,6 @@ namespace Mono.Xml.XPath
        {\r
                public XPathNavigatorReader (XPathNavigator nav)\r
                {\r
-                       switch (nav.NodeType) {\r
-                       case XPathNodeType.Element:\r
-                       case XPathNodeType.Root:\r
-                               break;\r
-                       default:\r
-                               throw new InvalidOperationException (String.Format ("NodeType {0} is not supported to read as a subtree of an XPathNavigator.", nav.NodeType));\r
-                       }\r
                        current = nav.Clone ();\r
                }\r
 \r
@@ -284,6 +276,7 @@ namespace Mono.Xml.XPath
                        return count;\r
                }\r
                \r
+               /*\r
                private bool MoveToAttributeNavigator (int i)\r
                {\r
                        if (ReadState != ReadState.Interactive)\r
@@ -308,7 +301,6 @@ namespace Mono.Xml.XPath
                        return false;\r
                }\r
 \r
-               /*\r
                public override string this [int i] {\r
                        get {\r
                                XPathNavigator backup = current.Clone ();\r
@@ -618,113 +610,14 @@ namespace Mono.Xml.XPath
                        return ret;\r
                }\r
 \r
-#if NET_1_1\r
-#else\r
-               public override string ReadInnerXml ()\r
-               {\r
-                       if (ReadState != ReadState.Interactive)\r
-                               return String.Empty;\r
-\r
-                       switch (NodeType) {\r
-                       case XmlNodeType.Attribute:\r
-                               return Value;\r
-                       case XmlNodeType.Element:\r
-                               if (IsEmptyElement)\r
-                                       return String.Empty;\r
-\r
-                               int startDepth = Depth;\r
-\r
-                               innerXmlBuilder.Length = 0;\r
-                               bool loop = true;\r
-                               do {\r
-                                       Read ();\r
-                                       if (NodeType ==XmlNodeType.None)\r
-                                               throw new InvalidOperationException ("unexpected end of xml.");\r
-                                       else if (NodeType == XmlNodeType.EndElement && Depth == startDepth) {\r
-                                               loop = false;\r
-                                               Read ();\r
-                                       }\r
-                                       else\r
-                                               innerXmlBuilder.Append (GetCurrentTagMarkup ());\r
-                               } while (loop);\r
-                               string xml = innerXmlBuilder.ToString ();\r
-                               innerXmlBuilder.Length = 0;\r
-                               return xml;\r
-                       case XmlNodeType.None:\r
-                               // MS document is incorrect. Seems not to progress.\r
-                               return String.Empty;\r
-                       default:\r
-                               Read ();\r
-                               return String.Empty;\r
-                       }\r
-               }\r
-               \r
-               StringBuilder atts = new StringBuilder ();\r
-               private string GetCurrentTagMarkup ()\r
-               {\r
-                       switch (NodeType) {\r
-                       case XmlNodeType.CDATA:\r
-                               return String.Format ("<![CDATA[{0}]]>", Value.Replace ("]]>", "]]&gt;"));\r
-                       case XmlNodeType.Text:\r
-                               return Value.Replace ("<", "&lt;");\r
-                       case XmlNodeType.Comment:\r
-                               return String.Format ("<!--{0}-->", Value);\r
-                       case XmlNodeType.SignificantWhitespace:\r
-                       case XmlNodeType.Whitespace:\r
-                               return Value;\r
-                       case XmlNodeType.EndElement:\r
-                               return String.Format ("</{0}>", Name);\r
-                       }\r
-\r
-                       bool isEmpty = IsEmptyElement;\r
-                       string name = Name;\r
-                       atts.Length = 0;\r
-                       XPathNavigator temp = current.Clone ();\r
-                       while (temp.MoveToNextAttribute ())\r
-                               atts.AppendFormat (" {0}='{1}'", temp.Name, temp.Value.Replace ("'", "&apos;"));\r
-                       if (!IsEmptyElement)\r
-                               return String.Format ("<{0}{1}>", name, atts);\r
-                       else\r
-                               return String.Format ("<{0}{1} />", name, atts);\r
-               }\r
-\r
-               // Arranged copy of XmlTextReader.ReadOuterXml()\r
-               public override string ReadOuterXml ()\r
-               {\r
-                       if (ReadState != ReadState.Interactive)\r
-                               return String.Empty;\r
-\r
-                       switch (NodeType) {\r
-                       case XmlNodeType.Attribute:\r
-                               // strictly incompatible with MS... (it holds spaces attribute between name, value and "=" char (very trivial).\r
-                               return String.Format ("{0}={1}{2}{1}", Name, QuoteChar, ReadInnerXml ());\r
-                       case XmlNodeType.Element:\r
-                               bool isEmpty = IsEmptyElement;\r
-                               string name = Name;\r
-                               StringBuilder atts = new StringBuilder ();\r
-                               XPathNavigator temp = current.Clone ();\r
-                               while (temp.MoveToNextAttribute ())\r
-                                       atts.AppendFormat (" {0}='{1}'", temp.Name, temp.Value.Replace ("'", "&apos;"));\r
-\r
-                               if (!isEmpty)\r
-                                       return String.Format ("{0}{1}</{2}>", GetCurrentTagMarkup (), atts, ReadInnerXml (), name);\r
-                               else\r
-                                       return String.Format ("{0}", GetCurrentTagMarkup ());\r
-                       case XmlNodeType.None:\r
-                               // MS document is incorrect. Seems not to progress.\r
-                               return String.Empty;\r
-                       default:\r
-                               Read ();\r
-                               return String.Empty;\r
-                       }\r
-               }\r
-#endif\r
 \r
                public override string LookupNamespace (string prefix)\r
                {\r
                        XPathNavigator backup = current.Clone ();\r
                        try {\r
                                this.MoveToElement ();\r
+                               if (current.NodeType != XPathNodeType.Element) // text etc.\r
+                                       current.MoveToParent ();\r
                                if (current.MoveToFirstNamespace ()) {\r
                                        do {\r
                                                if (current.LocalName == prefix)\r
@@ -754,5 +647,3 @@ namespace Mono.Xml.XPath
                #endregion\r
        }\r
 }\r
-\r
-#endif\r