Added new enumerations
authorMiguel de Icaza <miguel@gnome.org>
Sun, 2 Sep 2001 18:12:17 +0000 (18:12 -0000)
committerMiguel de Icaza <miguel@gnome.org>
Sun, 2 Sep 2001 18:12:17 +0000 (18:12 -0000)
svn path=/trunk/mcs/; revision=707

18 files changed:
mcs/class/System.XML/System.Xml/EntityHandling.cs [new file with mode: 0755]
mcs/class/System.XML/System.Xml/Formatting.cs [new file with mode: 0755]
mcs/class/System.XML/System.Xml/ReadState.cs
mcs/class/System.XML/System.Xml/Test.cs [deleted file]
mcs/class/System.XML/System.Xml/TreePosition.cs [new file with mode: 0755]
mcs/class/System.XML/System.Xml/Validation.cs [new file with mode: 0755]
mcs/class/System.XML/System.Xml/WhitespaceHandling.cs
mcs/class/System.XML/System.Xml/WriteState.cs [new file with mode: 0755]
mcs/class/System.XML/System.Xml/XPathNodeType.cs [new file with mode: 0755]
mcs/class/System.XML/System.Xml/XmlCaseOrder.cs [new file with mode: 0755]
mcs/class/System.XML/System.Xml/XmlDataType.cs [new file with mode: 0755]
mcs/class/System.XML/System.Xml/XmlExceptionCode.cs [new file with mode: 0755]
mcs/class/System.XML/System.Xml/XmlNodeChangedAction.cs [new file with mode: 0755]
mcs/class/System.XML/System.Xml/XmlNodeType.cs
mcs/class/System.XML/System.Xml/XmlSortOrder.cs [new file with mode: 0755]
mcs/class/System.XML/System.Xml/XmlSpace.cs
mcs/class/System.XML/System.Xml/common.src
mcs/class/System.XML/Test/Test.cs [new file with mode: 0755]

diff --git a/mcs/class/System.XML/System.Xml/EntityHandling.cs b/mcs/class/System.XML/System.Xml/EntityHandling.cs
new file mode 100755 (executable)
index 0000000..843ed77
--- /dev/null
@@ -0,0 +1,46 @@
+// EntityHandling.cs\r
+//\r
+// This code was automatically generated from\r
+// ECMA CLI XML Library Specification.\r
+// Generator: libgen.xsl\r
+// Source file: all.xml\r
+// URL: http://devresource.hp.com/devresource/Docs/TechPapers/CSharp/all.xml\r
+//\r
+// (C) 2001 Ximian, Inc.  http://www.ximian.com\r
+\r
+\r
+namespace System.Xml {\r
+\r
+\r
+       /// <summary>\r
+       ///                Specifies how entities are handled.\r
+       ///             </summary>\r
+       public enum EntityHandling {\r
+\r
+               /// <summary>\r
+               /// <para>\r
+               ///                   Expand all entities. This is the default.\r
+               ///                </para>\r
+               /// <para>\r
+               ///                   Nodes of NodeType EntityReference are not returned. The entity text is\r
+               ///                   expanded in place of the entity references.\r
+               ///                </para>\r
+               /// </summary>\r
+               ExpandEntities = 1,\r
+\r
+               /// <summary>\r
+               /// <para>Expand character entities and return general\r
+               ///                   entities as nodes (NodeType=XmlNodeType.EntityReference, Name=the name of the\r
+               ///                   entity, HasValue=\r
+               ///                   false).</para>\r
+               /// <para>You must call <see cref="M:System.Xml.XmlReader.ResolveEntity" /> to see what the general entities expand to. This\r
+               ///                allows you to optimize entity handling by only expanding the entity the\r
+               ///                first time it is used.</para>\r
+               /// <para>If you call <see cref="M:System.Xml.XmlReader.GetAttribute(System.String)" /> \r
+               ///             , general entities are also expanded as entities are of\r
+               ///             no interest in this case.</para>\r
+               /// </summary>\r
+               ExpandCharEntities = 2,\r
+       } // EntityHandling\r
+\r
+} // System.Xml\r
diff --git a/mcs/class/System.XML/System.Xml/Formatting.cs b/mcs/class/System.XML/System.Xml/Formatting.cs
new file mode 100755 (executable)
index 0000000..510544c
--- /dev/null
@@ -0,0 +1,35 @@
+// Formatting.cs\r
+//\r
+// This code was automatically generated from\r
+// ECMA CLI XML Library Specification.\r
+// Generator: libgen.xsl\r
+// Source file: AllTypes.xml\r
+// URL: http://msdn.microsoft.com/net/ecma/AllTypes.xml\r
+//\r
+// (C) 2001 Ximian, Inc.  http://www.ximian.com\r
+\r
+\r
+namespace System.Xml {\r
+\r
+\r
+       /// <summary>\r
+       /// <para> Specifies formatting options for an instance of the <see cref="T:System.Xml.XmlTextWriter" /> class.\r
+       ///    </para>\r
+       /// </summary>\r
+       public enum Formatting {\r
+\r
+               /// <summary><para> No special formatting is applied. This is the default.\r
+               ///       </para></summary>\r
+               None = 0,\r
+\r
+               /// <summary><para> Causes child elements to be indented\r
+               ///       according to the <see cref="P:System.Xml.XmlTextWriter.Indentation" /> and <see cref="P:System.Xml.XmlTextWriter.IndentChar" />\r
+               ///       settings.\r
+               ///       This option\r
+               ///       \r
+               ///       indents element content only; mixed content is not affected.</para><block subset="none" type="note"><para>For the XML 1.0 definitions of these terms, see the W3C documentation \r
+               ///          (http://www.w3.org/TR/1998/REC-xml-19980210#sec-element-content and http://www.w3.org/TR/1998/REC-xml-19980210#sec-mixed-content).</para></block></summary>\r
+               Indented = 1,\r
+       } // Formatting\r
+\r
+} // System.Xml\r
index 373488ef51b9f254fa9e7bdeb5ae32cf68abff8d..53940d8921d7ec793062ef581bba77a5e6a6195f 100644 (file)
@@ -1,21 +1,42 @@
-// -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-\r
+// ReadState.cs\r
 //\r
-// System.Xml.ReadState.cs\r
-//\r
-// Author:\r
-//   Jason Diamond (jason@injektilo.org)\r
-//\r
-// (C) 2001 Jason Diamond  http://injektilo.org/\r
+// This code was automatically generated from\r
+// ECMA CLI XML Library Specification.\r
+// Generator: libgen.xsl\r
+// Source file: AllTypes.xml\r
+// URL: http://msdn.microsoft.com/net/ecma/AllTypes.xml\r
 //\r
+// (C) 2001 Ximian, Inc.  http://www.ximian.com\r
+\r
+\r
+namespace System.Xml {\r
+\r
+\r
+       /// <summary>\r
+       /// <para>Specifies the state of an instance of a class derived \r
+       ///       from the <see cref="T:System.Xml.XmlReader" /> class.</para>\r
+       /// </summary>\r
+       public enum ReadState {\r
+\r
+               /// <summary><para>The <see cref="M:System.Xml.XmlReader.Read" /> method has not been called.</para></summary>\r
+               Initial = 0,\r
+\r
+               /// <summary><para>The <see cref="M:System.Xml.XmlReader.Read" /> method\r
+               ///    has been called. Additional methods may be called on the reader.</para></summary>\r
+               Interactive = 1,\r
+\r
+               /// <summary>\r
+               ///     An error occurred that prevents the\r
+               ///     read operation from continuing.\r
+               ///  </summary>\r
+               Error = 2,\r
+\r
+               /// <summary><para> The end of the file has been\r
+               ///       reached.</para></summary>\r
+               EndOfFile = 3,\r
+\r
+               /// <summary><para>The <see cref="M:System.Xml.XmlReader.Close" /> method has been called.</para></summary>\r
+               Closed = 4,\r
+       } // ReadState\r
 \r
-namespace System.Xml\r
-{\r
-       public enum ReadState\r
-       {\r
-               Closed,\r
-               EndOfFile,\r
-               Error,\r
-               Initial,\r
-               Interactive\r
-       }\r
-}\r
+} // System.Xml\r
diff --git a/mcs/class/System.XML/System.Xml/Test.cs b/mcs/class/System.XML/System.Xml/Test.cs
deleted file mode 100644 (file)
index cac9d0c..0000000
+++ /dev/null
@@ -1,1147 +0,0 @@
-// -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-\r
-//\r
-// System.Xml.Test.cs\r
-//\r
-// Author:\r
-//   Jason Diamond (jason@injektilo.org)\r
-//\r
-// (C) 2001 Jason Diamond  http://injektilo.org/\r
-//\r
-\r
-using System;\r
-using System.Diagnostics;\r
-using System.IO;\r
-\r
-using NUnit.Framework;\r
-\r
-namespace System.Xml\r
-{\r
-       public class Test : TestCase\r
-       {\r
-               public Test(string name) : base(name) { }\r
-\r
-               private void AssertStartDocument(XmlReader xmlReader)\r
-               {\r
-                       Assert(xmlReader.ReadState == ReadState.Initial);\r
-                       Assert(xmlReader.NodeType == XmlNodeType.None);\r
-                       Assert(xmlReader.Depth == 0);\r
-                       Assert(!xmlReader.EOF);\r
-               }\r
-\r
-               private void AssertNode(\r
-                       XmlReader xmlReader,\r
-                       XmlNodeType nodeType,\r
-                       int depth,\r
-                       bool isEmptyElement,\r
-                       string name,\r
-                       string value,\r
-                       int attributeCount)\r
-               {\r
-                       Assert(xmlReader.Read());\r
-                       Assert(xmlReader.ReadState == ReadState.Interactive);\r
-                       Assert(!xmlReader.EOF);\r
-\r
-                       Assert(xmlReader.NodeType == nodeType);\r
-                       Assert(xmlReader.Depth == depth);\r
-                       Assert(xmlReader.IsEmptyElement == isEmptyElement);\r
-                       Assert(xmlReader.Name == name);\r
-                       Assert(xmlReader.HasValue == (value != String.Empty));\r
-                       Assert(xmlReader.Value == value);\r
-                       Assert(xmlReader.HasAttributes == (attributeCount > 0));\r
-                       Assert(xmlReader.AttributeCount == attributeCount);\r
-               }\r
-\r
-               private void AssertAttribute(\r
-                       XmlReader xmlReader,\r
-                       string name,\r
-                       string value)\r
-               {\r
-                       Assert(xmlReader[name] == value);\r
-                       Assert(xmlReader.GetAttribute(name) == value);\r
-               }\r
-\r
-               private void AssertEndDocument(XmlReader xmlReader)\r
-               {\r
-                       Assert(!xmlReader.Read());\r
-                       Assert(xmlReader.NodeType == XmlNodeType.None);\r
-                       Assert(xmlReader.Depth == 0);\r
-                       Assert(xmlReader.ReadState == ReadState.EndOfFile);\r
-                       Assert(xmlReader.EOF);\r
-\r
-                       xmlReader.Close();\r
-                       Assert(xmlReader.ReadState == ReadState.Closed);\r
-               }\r
-\r
-               public void TestEmptyElement()\r
-               {\r
-                       string xml = "<foo/>";\r
-                       XmlReader xmlReader =\r
-                               new XmlTextReader(new StringReader(xml));\r
-\r
-                       AssertStartDocument(xmlReader);\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Element, // nodeType\r
-                               0, // depth\r
-                               true, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertEndDocument(xmlReader);\r
-               }\r
-\r
-               public void TestEmptyElementWithWhitespace()\r
-               {\r
-                       string xml = "<foo />";\r
-                       XmlReader xmlReader =\r
-                               new XmlTextReader(new StringReader(xml));\r
-\r
-                       AssertStartDocument(xmlReader);\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Element, // nodeType\r
-                               0, //depth\r
-                               true, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertEndDocument(xmlReader);\r
-               }\r
-\r
-               public void TestEmptyElementWithStartAndEndTag()\r
-               {\r
-                       string xml = "<foo></foo>";\r
-                       XmlReader xmlReader =\r
-                               new XmlTextReader(new StringReader(xml));\r
-\r
-                       AssertStartDocument(xmlReader);\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Element, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.EndElement, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertEndDocument(xmlReader);\r
-               }\r
-\r
-               public void TestEmptyElementWithStartAndEndTagWithWhitespace()\r
-               {\r
-                       string xml = "<foo ></foo >";\r
-                       XmlReader xmlReader =\r
-                               new XmlTextReader(new StringReader(xml));\r
-\r
-                       AssertStartDocument(xmlReader);\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Element, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.EndElement, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertEndDocument(xmlReader);\r
-               }\r
-\r
-               public void TestNestedEmptyTag()\r
-               {\r
-                       string xml = "<foo><bar/></foo>";\r
-                       XmlReader xmlReader =\r
-                               new XmlTextReader(new StringReader(xml));\r
-\r
-                       AssertStartDocument(xmlReader);\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Element, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Element, // nodeType\r
-                               1, //depth\r
-                               true, // isEmptyElement\r
-                               "bar", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.EndElement, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertEndDocument(xmlReader);\r
-               }\r
-\r
-               public void TestNestedText()\r
-               {\r
-                       string xml = "<foo>bar</foo>";\r
-                       XmlReader xmlReader =\r
-                               new XmlTextReader(new StringReader(xml));\r
-\r
-                       AssertStartDocument(xmlReader);\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Element, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Text, // nodeType\r
-                               1, //depth\r
-                               false, // isEmptyElement\r
-                               String.Empty, // name\r
-                               "bar", // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.EndElement, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertEndDocument(xmlReader);\r
-               }\r
-\r
-               public void TestEmptyElementWithAttribute()\r
-               {\r
-                       string xml = @"<foo bar=""baz""/>";\r
-                       XmlReader xmlReader =\r
-                               new XmlTextReader(new StringReader(xml));\r
-\r
-                       AssertStartDocument(xmlReader);\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Element, // nodeType\r
-                               0, //depth\r
-                               true, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               1 // attributeCount\r
-                       );\r
-\r
-                       AssertAttribute(\r
-                               xmlReader, // xmlReader\r
-                               "bar", // name\r
-                               "baz" // value\r
-                       );\r
-\r
-                       AssertEndDocument(xmlReader);\r
-               }\r
-\r
-               public void TestStartAndEndTagWithAttribute()\r
-               {\r
-                       string xml = @"<foo bar='baz'></foo>";\r
-                       XmlReader xmlReader =\r
-                               new XmlTextReader(new StringReader(xml));\r
-\r
-                       AssertStartDocument(xmlReader);\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Element, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               1 // attributeCount\r
-                       );\r
-\r
-                       AssertAttribute(\r
-                               xmlReader, // xmlReader\r
-                               "bar", // name\r
-                               "baz" // value\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.EndElement, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertEndDocument(xmlReader);\r
-               }\r
-\r
-               public void TestEmptyElementWithTwoAttributes()\r
-               {\r
-                       string xml = @"<foo bar=""baz"" quux='quuux'/>";\r
-                       XmlReader xmlReader =\r
-                               new XmlTextReader(new StringReader(xml));\r
-\r
-                       AssertStartDocument(xmlReader);\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Element, // nodeType\r
-                               0, //depth\r
-                               true, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               2 // attributeCount\r
-                       );\r
-\r
-                       AssertAttribute(\r
-                               xmlReader, // xmlReader\r
-                               "bar", // name\r
-                               "baz" // value\r
-                       );\r
-\r
-                       AssertAttribute(\r
-                               xmlReader, // xmlReader\r
-                               "quux", // name\r
-                               "quuux" // value\r
-                       );\r
-\r
-                       AssertEndDocument(xmlReader);\r
-               }\r
-\r
-               public void TestProcessingInstructionBeforeDocumentElement()\r
-               {\r
-                       string xml = "<?foo bar?><baz/>";\r
-                       XmlReader xmlReader =\r
-                               new XmlTextReader(new StringReader(xml));\r
-\r
-                       AssertStartDocument(xmlReader);\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.ProcessingInstruction, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               "bar", // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Element, // nodeType\r
-                               0, //depth\r
-                               true, // isEmptyElement\r
-                               "baz", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertEndDocument(xmlReader);\r
-               }\r
-\r
-               public void TestCommentBeforeDocumentElement()\r
-               {\r
-                       string xml = "<!--foo--><bar/>";\r
-                       XmlReader xmlReader =\r
-                               new XmlTextReader(new StringReader(xml));\r
-\r
-                       AssertStartDocument(xmlReader);\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Comment, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               String.Empty, // name\r
-                               "foo", // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Element, // nodeType\r
-                               0, //depth\r
-                               true, // isEmptyElement\r
-                               "bar", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertEndDocument(xmlReader);\r
-               }\r
-\r
-               public void TestPredefinedEntities()\r
-               {\r
-                       string xml = "<foo>&lt;&gt;&amp;&apos;&quot;</foo>";\r
-                       XmlReader xmlReader =\r
-                               new XmlTextReader(new StringReader(xml));\r
-\r
-                       AssertStartDocument(xmlReader);\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Element, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Text, // nodeType\r
-                               1, //depth\r
-                               false, // isEmptyElement\r
-                               String.Empty, // name\r
-                               "<>&'\"", // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.EndElement, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertEndDocument(xmlReader);\r
-               }\r
-\r
-               public void TestEntityReference()\r
-               {\r
-                       string xml = "<foo>&bar;</foo>";\r
-                       XmlReader xmlReader =\r
-                               new XmlTextReader(new StringReader(xml));\r
-\r
-                       AssertStartDocument(xmlReader);\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Element, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.EntityReference, // nodeType\r
-                               1, //depth\r
-                               false, // isEmptyElement\r
-                               "bar", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.EndElement, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertEndDocument(xmlReader);\r
-               }\r
-\r
-               public void TestEntityReferenceInsideText()\r
-               {\r
-                       string xml = "<foo>bar&baz;quux</foo>";\r
-                       XmlReader xmlReader =\r
-                               new XmlTextReader(new StringReader(xml));\r
-\r
-                       AssertStartDocument(xmlReader);\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Element, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Text, // nodeType\r
-                               1, //depth\r
-                               false, // isEmptyElement\r
-                               String.Empty, // name\r
-                               "bar", // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.EntityReference, // nodeType\r
-                               1, //depth\r
-                               false, // isEmptyElement\r
-                               "baz", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Text, // nodeType\r
-                               1, //depth\r
-                               false, // isEmptyElement\r
-                               String.Empty, // name\r
-                               "quux", // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.EndElement, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertEndDocument(xmlReader);\r
-               }\r
-\r
-               public void TestCharacterReferences()\r
-               {\r
-                       string xml = "<foo>&#70;&#x4F;&#x4f;</foo>";\r
-                       XmlReader xmlReader =\r
-                               new XmlTextReader(new StringReader(xml));\r
-\r
-                       AssertStartDocument(xmlReader);\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Element, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Text, // nodeType\r
-                               1, //depth\r
-                               false, // isEmptyElement\r
-                               String.Empty, // name\r
-                               "FOO", // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.EndElement, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertEndDocument(xmlReader);\r
-               }\r
-\r
-               public void TestEntityReferenceInAttribute()\r
-               {\r
-                       string xml = "<foo bar='&baz;'/>";\r
-                       XmlReader xmlReader =\r
-                               new XmlTextReader(new StringReader(xml));\r
-\r
-                       AssertStartDocument(xmlReader);\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Element, // nodeType\r
-                               0, //depth\r
-                               true, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               1 // attributeCount\r
-                       );\r
-\r
-                       AssertAttribute(\r
-                               xmlReader, // xmlReader\r
-                               "bar", // name\r
-                               "&baz;" // value\r
-                       );\r
-\r
-                       AssertEndDocument(xmlReader);\r
-               }\r
-\r
-               public void TestPredefinedEntitiesInAttribute()\r
-               {\r
-                       string xml = "<foo bar='&lt;&gt;&amp;&apos;&quot;'/>";\r
-                       XmlReader xmlReader =\r
-                               new XmlTextReader(new StringReader(xml));\r
-\r
-                       AssertStartDocument(xmlReader);\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Element, // nodeType\r
-                               0, //depth\r
-                               true, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               1 // attributeCount\r
-                       );\r
-\r
-                       AssertAttribute(\r
-                               xmlReader, // xmlReader\r
-                               "bar", // name\r
-                               "<>&'\"" // value\r
-                       );\r
-\r
-                       AssertEndDocument(xmlReader);\r
-               }\r
-\r
-               public void TestCharacterReferencesInAttribute()\r
-               {\r
-                       string xml = "<foo bar='&#70;&#x4F;&#x4f;'/>";\r
-                       XmlReader xmlReader =\r
-                               new XmlTextReader(new StringReader(xml));\r
-\r
-                       AssertStartDocument(xmlReader);\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Element, // nodeType\r
-                               0, //depth\r
-                               true, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               1 // attributeCount\r
-                       );\r
-\r
-                       AssertAttribute(\r
-                               xmlReader, // xmlReader\r
-                               "bar", // name\r
-                               "FOO" // value\r
-                       );\r
-\r
-                       AssertEndDocument(xmlReader);\r
-               }\r
-\r
-               public void TestCDATA()\r
-               {\r
-                       string xml = "<foo><![CDATA[<>&]]></foo>";\r
-                       XmlReader xmlReader =\r
-                               new XmlTextReader(new StringReader(xml));\r
-\r
-                       AssertStartDocument(xmlReader);\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.Element, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.CDATA, // nodeType\r
-                               1, //depth\r
-                               false, // isEmptyElement\r
-                               String.Empty, // name\r
-                               "<>&", // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertNode(\r
-                               xmlReader, // xmlReader\r
-                               XmlNodeType.EndElement, // nodeType\r
-                               0, //depth\r
-                               false, // isEmptyElement\r
-                               "foo", // name\r
-                               String.Empty, // value\r
-                               0 // attributeCount\r
-                       );\r
-\r
-                       AssertEndDocument(xmlReader);\r
-               }\r
-\r
-// The following is #if'ed out because it's specific to the Mono\r
-// implementation and won't compile when testing Microsoft's code.\r
-// Feel free to turn it on if you want to test Mono's name tables.\r
-\r
-#if false\r
-\r
-               public void TestIsFirstNameChar()\r
-               {\r
-                       for (int ch = 0; ch <= 0xFFFF; ++ch)\r
-                       {\r
-                               Assert(\r
-                                       XmlChar.IsFirstNameChar(ch) ==\r
-                                               IsFirstNameChar(ch));\r
-                       }\r
-               }\r
-\r
-               public void TestIsNameChar()\r
-               {\r
-                       for (int ch = 0; ch <= 0xFFFF; ++ch)\r
-                       {\r
-                               Assert(\r
-                                       XmlChar.IsNameChar(ch) ==\r
-                                               IsNameChar(ch));\r
-                       }\r
-               }\r
-\r
-               private static bool IsFirstNameChar(int ch)\r
-               {\r
-                       return\r
-                               IsLetter(ch) ||\r
-                               (ch == '_') ||\r
-                               (ch == ':');\r
-               }\r
-\r
-               private static bool IsNameChar(int ch)\r
-               {\r
-                       return\r
-                               IsLetter(ch) ||\r
-                               IsDigit(ch) ||\r
-                               (ch == '.') ||\r
-                               (ch == '-') ||\r
-                               (ch == '_') ||\r
-                               (ch == ':') ||\r
-                               IsCombiningChar(ch) ||\r
-                               IsExtender(ch);\r
-               }\r
-\r
-               private static bool IsLetter(int ch)\r
-               {\r
-                       return\r
-                               IsBaseChar(ch) ||\r
-                               IsIdeographic(ch);\r
-               }\r
-\r
-               private static bool IsBaseChar(int ch)\r
-               {\r
-                       return\r
-                               (ch >= 0x0041 && ch <= 0x005A) ||\r
-                               (ch >= 0x0061 && ch <= 0x007A) ||\r
-                               (ch >= 0x00C0 && ch <= 0x00D6) ||\r
-                               (ch >= 0x00D8 && ch <= 0x00F6) ||\r
-                               (ch >= 0x00F8 && ch <= 0x00FF) ||\r
-                               (ch >= 0x0100 && ch <= 0x0131) ||\r
-                               (ch >= 0x0134 && ch <= 0x013E) ||\r
-                               (ch >= 0x0141 && ch <= 0x0148) ||\r
-                               (ch >= 0x014A && ch <= 0x017E) ||\r
-                               (ch >= 0x0180 && ch <= 0x01C3) ||\r
-                               (ch >= 0x01CD && ch <= 0x01F0) ||\r
-                               (ch >= 0x01F4 && ch <= 0x01F5) ||\r
-                               (ch >= 0x01FA && ch <= 0x0217) ||\r
-                               (ch >= 0x0250 && ch <= 0x02A8) ||\r
-                               (ch >= 0x02BB && ch <= 0x02C1) ||\r
-                               (ch == 0x0386) ||\r
-                               (ch >= 0x0388 && ch <= 0x038A) ||\r
-                               (ch == 0x038C) ||\r
-                               (ch >= 0x038E && ch <= 0x03A1) ||\r
-                               (ch >= 0x03A3 && ch <= 0x03CE) ||\r
-                               (ch >= 0x03D0 && ch <= 0x03D6) ||\r
-                               (ch == 0x03DA) ||\r
-                               (ch == 0x03DC) ||\r
-                               (ch == 0x03DE) ||\r
-                               (ch == 0x03E0) ||\r
-                               (ch >= 0x03E2 && ch <= 0x03F3) ||\r
-                               (ch >= 0x0401 && ch <= 0x040C) ||\r
-                               (ch >= 0x040E && ch <= 0x044F) ||\r
-                               (ch >= 0x0451 && ch <= 0x045C) ||\r
-                               (ch >= 0x045E && ch <= 0x0481) ||\r
-                               (ch >= 0x0490 && ch <= 0x04C4) ||\r
-                               (ch >= 0x04C7 && ch <= 0x04C8) ||\r
-                               (ch >= 0x04CB && ch <= 0x04CC) ||\r
-                               (ch >= 0x04D0 && ch <= 0x04EB) ||\r
-                               (ch >= 0x04EE && ch <= 0x04F5) ||\r
-                               (ch >= 0x04F8 && ch <= 0x04F9) ||\r
-                               (ch >= 0x0531 && ch <= 0x0556) ||\r
-                               (ch == 0x0559) ||\r
-                               (ch >= 0x0561 && ch <= 0x0586) ||\r
-                               (ch >= 0x05D0 && ch <= 0x05EA) ||\r
-                               (ch >= 0x05F0 && ch <= 0x05F2) ||\r
-                               (ch >= 0x0621 && ch <= 0x063A) ||\r
-                               (ch >= 0x0641 && ch <= 0x064A) ||\r
-                               (ch >= 0x0671 && ch <= 0x06B7) ||\r
-                               (ch >= 0x06BA && ch <= 0x06BE) ||\r
-                               (ch >= 0x06C0 && ch <= 0x06CE) ||\r
-                               (ch >= 0x06D0 && ch <= 0x06D3) ||\r
-                               (ch == 0x06D5) ||\r
-                               (ch >= 0x06E5 && ch <= 0x06E6) ||\r
-                               (ch >= 0x0905 && ch <= 0x0939) ||\r
-                               (ch == 0x093D) ||\r
-                               (ch >= 0x0958 && ch <= 0x0961) ||\r
-                               (ch >= 0x0985 && ch <= 0x098C) ||\r
-                               (ch >= 0x098F && ch <= 0x0990) ||\r
-                               (ch >= 0x0993 && ch <= 0x09A8) ||\r
-                               (ch >= 0x09AA && ch <= 0x09B0) ||\r
-                               (ch == 0x09B2) ||\r
-                               (ch >= 0x09B6 && ch <= 0x09B9) ||\r
-                               (ch >= 0x09DC && ch <= 0x09DD) ||\r
-                               (ch >= 0x09DF && ch <= 0x09E1) ||\r
-                               (ch >= 0x09F0 && ch <= 0x09F1) ||\r
-                               (ch >= 0x0A05 && ch <= 0x0A0A) ||\r
-                               (ch >= 0x0A0F && ch <= 0x0A10) ||\r
-                               (ch >= 0x0A13 && ch <= 0x0A28) ||\r
-                               (ch >= 0x0A2A && ch <= 0x0A30) ||\r
-                               (ch >= 0x0A32 && ch <= 0x0A33) ||\r
-                               (ch >= 0x0A35 && ch <= 0x0A36) ||\r
-                               (ch >= 0x0A38 && ch <= 0x0A39) ||\r
-                               (ch >= 0x0A59 && ch <= 0x0A5C) ||\r
-                               (ch == 0x0A5E) ||\r
-                               (ch >= 0x0A72 && ch <= 0x0A74) ||\r
-                               (ch >= 0x0A85 && ch <= 0x0A8B) ||\r
-                               (ch == 0x0A8D) ||\r
-                               (ch >= 0x0A8F && ch <= 0x0A91) ||\r
-                               (ch >= 0x0A93 && ch <= 0x0AA8) ||\r
-                               (ch >= 0x0AAA && ch <= 0x0AB0) ||\r
-                               (ch >= 0x0AB2 && ch <= 0x0AB3) ||\r
-                               (ch >= 0x0AB5 && ch <= 0x0AB9) ||\r
-                               (ch == 0x0ABD) ||\r
-                               (ch == 0x0AE0) ||\r
-                               (ch >= 0x0B05 && ch <= 0x0B0C) ||\r
-                               (ch >= 0x0B0F && ch <= 0x0B10) ||\r
-                               (ch >= 0x0B13 && ch <= 0x0B28) ||\r
-                               (ch >= 0x0B2A && ch <= 0x0B30) ||\r
-                               (ch >= 0x0B32 && ch <= 0x0B33) ||\r
-                               (ch >= 0x0B36 && ch <= 0x0B39) ||\r
-                               (ch == 0x0B3D) ||\r
-                               (ch >= 0x0B5C && ch <= 0x0B5D) ||\r
-                               (ch >= 0x0B5F && ch <= 0x0B61) ||\r
-                               (ch >= 0x0B85 && ch <= 0x0B8A) ||\r
-                               (ch >= 0x0B8E && ch <= 0x0B90) ||\r
-                               (ch >= 0x0B92 && ch <= 0x0B95) ||\r
-                               (ch >= 0x0B99 && ch <= 0x0B9A) ||\r
-                               (ch == 0x0B9C) ||\r
-                               (ch >= 0x0B9E && ch <= 0x0B9F) ||\r
-                               (ch >= 0x0BA3 && ch <= 0x0BA4) ||\r
-                               (ch >= 0x0BA8 && ch <= 0x0BAA) ||\r
-                               (ch >= 0x0BAE && ch <= 0x0BB5) ||\r
-                               (ch >= 0x0BB7 && ch <= 0x0BB9) ||\r
-                               (ch >= 0x0C05 && ch <= 0x0C0C) ||\r
-                               (ch >= 0x0C0E && ch <= 0x0C10) ||\r
-                               (ch >= 0x0C12 && ch <= 0x0C28) ||\r
-                               (ch >= 0x0C2A && ch <= 0x0C33) ||\r
-                               (ch >= 0x0C35 && ch <= 0x0C39) ||\r
-                               (ch >= 0x0C60 && ch <= 0x0C61) ||\r
-                               (ch >= 0x0C85 && ch <= 0x0C8C) ||\r
-                               (ch >= 0x0C8E && ch <= 0x0C90) ||\r
-                               (ch >= 0x0C92 && ch <= 0x0CA8) ||\r
-                               (ch >= 0x0CAA && ch <= 0x0CB3) ||\r
-                               (ch >= 0x0CB5 && ch <= 0x0CB9) ||\r
-                               (ch == 0x0CDE) ||\r
-                               (ch >= 0x0CE0 && ch <= 0x0CE1) ||\r
-                               (ch >= 0x0D05 && ch <= 0x0D0C) ||\r
-                               (ch >= 0x0D0E && ch <= 0x0D10) ||\r
-                               (ch >= 0x0D12 && ch <= 0x0D28) ||\r
-                               (ch >= 0x0D2A && ch <= 0x0D39) ||\r
-                               (ch >= 0x0D60 && ch <= 0x0D61) ||\r
-                               (ch >= 0x0E01 && ch <= 0x0E2E) ||\r
-                               (ch == 0x0E30) ||\r
-                               (ch >= 0x0E32 && ch <= 0x0E33) ||\r
-                               (ch >= 0x0E40 && ch <= 0x0E45) ||\r
-                               (ch >= 0x0E81 && ch <= 0x0E82) ||\r
-                               (ch == 0x0E84) ||\r
-                               (ch >= 0x0E87 && ch <= 0x0E88) ||\r
-                               (ch == 0x0E8A) ||\r
-                               (ch == 0x0E8D) ||\r
-                               (ch >= 0x0E94 && ch <= 0x0E97) ||\r
-                               (ch >= 0x0E99 && ch <= 0x0E9F) ||\r
-                               (ch >= 0x0EA1 && ch <= 0x0EA3) ||\r
-                               (ch == 0x0EA5) ||\r
-                               (ch == 0x0EA7) ||\r
-                               (ch >= 0x0EAA && ch <= 0x0EAB) ||\r
-                               (ch >= 0x0EAD && ch <= 0x0EAE) ||\r
-                               (ch == 0x0EB0) ||\r
-                               (ch >= 0x0EB2 && ch <= 0x0EB3) ||\r
-                               (ch == 0x0EBD) ||\r
-                               (ch >= 0x0EC0 && ch <= 0x0EC4) ||\r
-                               (ch >= 0x0F40 && ch <= 0x0F47) ||\r
-                               (ch >= 0x0F49 && ch <= 0x0F69) ||\r
-                               (ch >= 0x10A0 && ch <= 0x10C5) ||\r
-                               (ch >= 0x10D0 && ch <= 0x10F6) ||\r
-                               (ch == 0x1100) ||\r
-                               (ch >= 0x1102 && ch <= 0x1103) ||\r
-                               (ch >= 0x1105 && ch <= 0x1107) ||\r
-                               (ch == 0x1109) ||\r
-                               (ch >= 0x110B && ch <= 0x110C) ||\r
-                               (ch >= 0x110E && ch <= 0x1112) ||\r
-                               (ch == 0x113C) ||\r
-                               (ch == 0x113E) ||\r
-                               (ch == 0x1140) ||\r
-                               (ch == 0x114C) ||\r
-                               (ch == 0x114E) ||\r
-                               (ch == 0x1150) ||\r
-                               (ch >= 0x1154 && ch <= 0x1155) ||\r
-                               (ch == 0x1159) ||\r
-                               (ch >= 0x115F && ch <= 0x1161) ||\r
-                               (ch == 0x1163) ||\r
-                               (ch == 0x1165) ||\r
-                               (ch == 0x1167) ||\r
-                               (ch == 0x1169) ||\r
-                               (ch >= 0x116D && ch <= 0x116E) ||\r
-                               (ch >= 0x1172 && ch <= 0x1173) ||\r
-                               (ch == 0x1175) ||\r
-                               (ch == 0x119E) ||\r
-                               (ch == 0x11A8) ||\r
-                               (ch == 0x11AB) ||\r
-                               (ch >= 0x11AE && ch <= 0x11AF) ||\r
-                               (ch >= 0x11B7 && ch <= 0x11B8) ||\r
-                               (ch == 0x11BA) ||\r
-                               (ch >= 0x11BC && ch <= 0x11C2) ||\r
-                               (ch == 0x11EB) ||\r
-                               (ch == 0x11F0) ||\r
-                               (ch == 0x11F9) ||\r
-                               (ch >= 0x1E00 && ch <= 0x1E9B) ||\r
-                               (ch >= 0x1EA0 && ch <= 0x1EF9) ||\r
-                               (ch >= 0x1F00 && ch <= 0x1F15) ||\r
-                               (ch >= 0x1F18 && ch <= 0x1F1D) ||\r
-                               (ch >= 0x1F20 && ch <= 0x1F45) ||\r
-                               (ch >= 0x1F48 && ch <= 0x1F4D) ||\r
-                               (ch >= 0x1F50 && ch <= 0x1F57) ||\r
-                               (ch == 0x1F59) ||\r
-                               (ch == 0x1F5B) ||\r
-                               (ch == 0x1F5D) ||\r
-                               (ch >= 0x1F5F && ch <= 0x1F7D) ||\r
-                               (ch >= 0x1F80 && ch <= 0x1FB4) ||\r
-                               (ch >= 0x1FB6 && ch <= 0x1FBC) ||\r
-                               (ch == 0x1FBE) ||\r
-                               (ch >= 0x1FC2 && ch <= 0x1FC4) ||\r
-                               (ch >= 0x1FC6 && ch <= 0x1FCC) ||\r
-                               (ch >= 0x1FD0 && ch <= 0x1FD3) ||\r
-                               (ch >= 0x1FD6 && ch <= 0x1FDB) ||\r
-                               (ch >= 0x1FE0 && ch <= 0x1FEC) ||\r
-                               (ch >= 0x1FF2 && ch <= 0x1FF4) ||\r
-                               (ch >= 0x1FF6 && ch <= 0x1FFC) ||\r
-                               (ch == 0x2126) ||\r
-                               (ch >= 0x212A && ch <= 0x212B) ||\r
-                               (ch == 0x212E) ||\r
-                               (ch >= 0x2180 && ch <= 0x2182) ||\r
-                               (ch >= 0x3041 && ch <= 0x3094) ||\r
-                               (ch >= 0x30A1 && ch <= 0x30FA) ||\r
-                               (ch >= 0x3105 && ch <= 0x312C) ||\r
-                               (ch >= 0xAC00 && ch <= 0xD7A3);\r
-               }\r
-\r
-               private static bool IsIdeographic(int ch)\r
-               {\r
-                       return\r
-                               (ch >= 0x4E00 && ch <= 0x9FA5) ||\r
-                               (ch == 0x3007) ||\r
-                               (ch >= 0x3021 && ch <= 0x3029);\r
-               }\r
-\r
-               private static bool IsDigit(int ch)\r
-               {\r
-                       return\r
-                               (ch >= 0x0030 && ch <= 0x0039) ||\r
-                               (ch >= 0x0660 && ch <= 0x0669) ||\r
-                               (ch >= 0x06F0 && ch <= 0x06F9) ||\r
-                               (ch >= 0x0966 && ch <= 0x096F) ||\r
-                               (ch >= 0x09E6 && ch <= 0x09EF) ||\r
-                               (ch >= 0x0A66 && ch <= 0x0A6F) ||\r
-                               (ch >= 0x0AE6 && ch <= 0x0AEF) ||\r
-                               (ch >= 0x0B66 && ch <= 0x0B6F) ||\r
-                               (ch >= 0x0BE7 && ch <= 0x0BEF) ||\r
-                               (ch >= 0x0C66 && ch <= 0x0C6F) ||\r
-                               (ch >= 0x0CE6 && ch <= 0x0CEF) ||\r
-                               (ch >= 0x0D66 && ch <= 0x0D6F) ||\r
-                               (ch >= 0x0E50 && ch <= 0x0E59) ||\r
-                               (ch >= 0x0ED0 && ch <= 0x0ED9) ||\r
-                               (ch >= 0x0F20 && ch <= 0x0F29);\r
-               }\r
-\r
-               private static bool IsCombiningChar(int ch)\r
-               {\r
-                       return\r
-                               (ch >= 0x0300 && ch <= 0x0345) ||\r
-                               (ch >= 0x0360 && ch <= 0x0361) ||\r
-                               (ch >= 0x0483 && ch <= 0x0486) ||\r
-                               (ch >= 0x0591 && ch <= 0x05A1) ||\r
-                               (ch >= 0x05A3 && ch <= 0x05B9) ||\r
-                               (ch >= 0x05BB && ch <= 0x05BD) ||\r
-                               (ch == 0x05BF) ||\r
-                               (ch >= 0x05C1 && ch <= 0x05C2) ||\r
-                               (ch == 0x05C4) ||\r
-                               (ch >= 0x064B && ch <= 0x0652) ||\r
-                               (ch == 0x0670) ||\r
-                               (ch >= 0x06D6 && ch <= 0x06DC) ||\r
-                               (ch >= 0x06DD && ch <= 0x06DF) ||\r
-                               (ch >= 0x06E0 && ch <= 0x06E4) ||\r
-                               (ch >= 0x06E7 && ch <= 0x06E8) ||\r
-                               (ch >= 0x06EA && ch <= 0x06ED) ||\r
-                               (ch >= 0x0901 && ch <= 0x0903) ||\r
-                               (ch == 0x093C) ||\r
-                               (ch >= 0x093E && ch <= 0x094C) ||\r
-                               (ch == 0x094D) ||\r
-                               (ch >= 0x0951 && ch <= 0x0954) ||\r
-                               (ch >= 0x0962 && ch <= 0x0963) ||\r
-                               (ch >= 0x0981 && ch <= 0x0983) ||\r
-                               (ch == 0x09BC) ||\r
-                               (ch == 0x09BE) ||\r
-                               (ch == 0x09BF) ||\r
-                               (ch >= 0x09C0 && ch <= 0x09C4) ||\r
-                               (ch >= 0x09C7 && ch <= 0x09C8) ||\r
-                               (ch >= 0x09CB && ch <= 0x09CD) ||\r
-                               (ch == 0x09D7) ||\r
-                               (ch >= 0x09E2 && ch <= 0x09E3) ||\r
-                               (ch == 0x0A02) ||\r
-                               (ch == 0x0A3C) ||\r
-                               (ch == 0x0A3E) ||\r
-                               (ch == 0x0A3F) ||\r
-                               (ch >= 0x0A40 && ch <= 0x0A42) ||\r
-                               (ch >= 0x0A47 && ch <= 0x0A48) ||\r
-                               (ch >= 0x0A4B && ch <= 0x0A4D) ||\r
-                               (ch >= 0x0A70 && ch <= 0x0A71) ||\r
-                               (ch >= 0x0A81 && ch <= 0x0A83) ||\r
-                               (ch == 0x0ABC) ||\r
-                               (ch >= 0x0ABE && ch <= 0x0AC5) ||\r
-                               (ch >= 0x0AC7 && ch <= 0x0AC9) ||\r
-                               (ch >= 0x0ACB && ch <= 0x0ACD) ||\r
-                               (ch >= 0x0B01 && ch <= 0x0B03) ||\r
-                               (ch == 0x0B3C) ||\r
-                               (ch >= 0x0B3E && ch <= 0x0B43) ||\r
-                               (ch >= 0x0B47 && ch <= 0x0B48) ||\r
-                               (ch >= 0x0B4B && ch <= 0x0B4D) ||\r
-                               (ch >= 0x0B56 && ch <= 0x0B57) ||\r
-                               (ch >= 0x0B82 && ch <= 0x0B83) ||\r
-                               (ch >= 0x0BBE && ch <= 0x0BC2) ||\r
-                               (ch >= 0x0BC6 && ch <= 0x0BC8) ||\r
-                               (ch >= 0x0BCA && ch <= 0x0BCD) ||\r
-                               (ch == 0x0BD7) ||\r
-                               (ch >= 0x0C01 && ch <= 0x0C03) ||\r
-                               (ch >= 0x0C3E && ch <= 0x0C44) ||\r
-                               (ch >= 0x0C46 && ch <= 0x0C48) ||\r
-                               (ch >= 0x0C4A && ch <= 0x0C4D) ||\r
-                               (ch >= 0x0C55 && ch <= 0x0C56) ||\r
-                               (ch >= 0x0C82 && ch <= 0x0C83) ||\r
-                               (ch >= 0x0CBE && ch <= 0x0CC4) ||\r
-                               (ch >= 0x0CC6 && ch <= 0x0CC8) ||\r
-                               (ch >= 0x0CCA && ch <= 0x0CCD) ||\r
-                               (ch >= 0x0CD5 && ch <= 0x0CD6) ||\r
-                               (ch >= 0x0D02 && ch <= 0x0D03) ||\r
-                               (ch >= 0x0D3E && ch <= 0x0D43) ||\r
-                               (ch >= 0x0D46 && ch <= 0x0D48) ||\r
-                               (ch >= 0x0D4A && ch <= 0x0D4D) ||\r
-                               (ch == 0x0D57) ||\r
-                               (ch == 0x0E31) ||\r
-                               (ch >= 0x0E34 && ch <= 0x0E3A) ||\r
-                               (ch >= 0x0E47 && ch <= 0x0E4E) ||\r
-                               (ch == 0x0EB1) ||\r
-                               (ch >= 0x0EB4 && ch <= 0x0EB9) ||\r
-                               (ch >= 0x0EBB && ch <= 0x0EBC) ||\r
-                               (ch >= 0x0EC8 && ch <= 0x0ECD) ||\r
-                               (ch >= 0x0F18 && ch <= 0x0F19) ||\r
-                               (ch == 0x0F35) ||\r
-                               (ch == 0x0F37) ||\r
-                               (ch == 0x0F39) ||\r
-                               (ch == 0x0F3E) ||\r
-                               (ch == 0x0F3F) ||\r
-                               (ch >= 0x0F71 && ch <= 0x0F84) ||\r
-                               (ch >= 0x0F86 && ch <= 0x0F8B) ||\r
-                               (ch >= 0x0F90 && ch <= 0x0F95) ||\r
-                               (ch == 0x0F97) ||\r
-                               (ch >= 0x0F99 && ch <= 0x0FAD) ||\r
-                               (ch >= 0x0FB1 && ch <= 0x0FB7) ||\r
-                               (ch == 0x0FB9) ||\r
-                               (ch >= 0x20D0 && ch <= 0x20DC) ||\r
-                               (ch == 0x20E1) ||\r
-                               (ch >= 0x302A && ch <= 0x302F) ||\r
-                               (ch == 0x3099) ||\r
-                               (ch == 0x309A);\r
-               }\r
-\r
-               private static bool IsExtender(int ch)\r
-               {\r
-                       return\r
-                               (ch == 0x00B7) ||\r
-                               (ch == 0x02D0) ||\r
-                               (ch == 0x02D1) ||\r
-                               (ch == 0x0387) ||\r
-                               (ch == 0x0640) ||\r
-                               (ch == 0x0E46) ||\r
-                               (ch == 0x0EC6) ||\r
-                               (ch == 0x3005) ||\r
-                               (ch >= 0x3031 && ch <= 0x3035) ||\r
-                               (ch >= 0x309D && ch <= 0x309E) ||\r
-                               (ch >= 0x30FC && ch <= 0x30FE);\r
-               }\r
-\r
-#endif\r
-\r
-               public void TestIsName()\r
-               {\r
-                       Assert(XmlReader.IsName("foo"));\r
-                       Assert(!XmlReader.IsName("1foo"));\r
-                       Assert(!XmlReader.IsName(" foo"));\r
-               }\r
-\r
-               public void TestIsNameToken()\r
-               {\r
-                       Assert(XmlReader.IsNameToken("foo"));\r
-                       Assert(XmlReader.IsNameToken("1foo"));\r
-                       Assert(!XmlReader.IsNameToken(" foo"));\r
-               }\r
-       }\r
-}\r
diff --git a/mcs/class/System.XML/System.Xml/TreePosition.cs b/mcs/class/System.XML/System.Xml/TreePosition.cs
new file mode 100755 (executable)
index 0000000..925c43e
--- /dev/null
@@ -0,0 +1,67 @@
+// TreePosition.cs\r
+//\r
+// This code was automatically generated from\r
+// ECMA CLI XML Library Specification.\r
+// Generator: libgen.xsl\r
+// Source file: all.xml\r
+// URL: http://devresource.hp.com/devresource/Docs/TechPapers/CSharp/all.xml\r
+//\r
+// (C) 2001 Ximian, Inc.  http://www.ximian.com\r
+\r
+\r
+namespace System.Xml {\r
+\r
+\r
+       /// <summary>\r
+       /// <para>\r
+       ///                   Specifies a position relative to the current node.\r
+       ///                </para>\r
+       /// </summary>\r
+       public enum TreePosition {\r
+\r
+               /// <summary>\r
+               ///                No position.\r
+               ///             </summary>\r
+               None = 0,\r
+\r
+               /// <summary>\r
+               ///                The sibling immediately before the current\r
+               ///                node/record.\r
+               ///             </summary>\r
+               Before = 1,\r
+\r
+               /// <summary>\r
+               ///                The sibling immediately after the current\r
+               ///                node/record.\r
+               ///             </summary>\r
+               After = 2,\r
+\r
+               /// <summary>\r
+               ///                The first child of the current node/record.\r
+               ///             </summary>\r
+               FirstChild = 3,\r
+\r
+               /// <summary>\r
+               ///                The last child of the current node/record.\r
+               ///             </summary>\r
+               LastChild = 4,\r
+\r
+               /// <summary>\r
+               ///                The parent of the current node/record.\r
+               ///             </summary>\r
+               Parent = 5,\r
+\r
+               /// <summary>\r
+               ///                The first attribute of the current\r
+               ///                node/record.\r
+               ///             </summary>\r
+               FirstAttribute = 6,\r
+\r
+               /// <summary>\r
+               ///                The last attribute of the current\r
+               ///                node/record.\r
+               ///             </summary>\r
+               LastAttribute = 7,\r
+       } // TreePosition\r
+\r
+} // System.Xml\r
diff --git a/mcs/class/System.XML/System.Xml/Validation.cs b/mcs/class/System.XML/System.Xml/Validation.cs
new file mode 100755 (executable)
index 0000000..1368eba
--- /dev/null
@@ -0,0 +1,82 @@
+// Validation.cs\r
+//\r
+// This code was automatically generated from\r
+// ECMA CLI XML Library Specification.\r
+// Generator: libgen.xsl\r
+// Source file: all.xml\r
+// URL: http://devresource.hp.com/devresource/Docs/TechPapers/CSharp/all.xml\r
+//\r
+// (C) 2001 Ximian, Inc.  http://www.ximian.com\r
+\r
+\r
+namespace System.Xml {\r
+\r
+\r
+       /// <summary>\r
+       ///                Specifies the type of validation to perform.\r
+       ///             </summary>\r
+       public enum Validation {\r
+\r
+               /// <summary>\r
+               /// <para>\r
+               ///                   The Auto member does the following:\r
+               ///                </para>\r
+               /// <list type="number">\r
+               /// <item>\r
+               /// <term>\r
+               ///                         If there is no DTD or schema, it will parse the XML\r
+               ///                         without validation.\r
+               ///                      </term>\r
+               /// </item>\r
+               /// <item>\r
+               /// <term>\r
+               ///                         If there is a DTD defined in a &lt;!DOCTYPE ...&gt;\r
+               ///                         declaration, it will load the DTD and process the DTD declarations such that\r
+               ///                         default attributes and general entities will be made available. General\r
+               ///                         entities are only loaded and parsed if they are used (expanded).\r
+               ///                      </term>\r
+               /// </item>\r
+               /// <item>\r
+               /// <term>\r
+               ///                         If there is no &lt;!DOCTYPE ...&gt; declaration but\r
+               ///                         there is an XSD "schemaLocation" attribute, it will load and process those XSD\r
+               ///                         schemas and it will return any default attributes defined in those schemas.\r
+               ///                      </term>\r
+               /// </item>\r
+               /// <item>\r
+               /// <term>\r
+               ///                         If there is no &lt;!DOCTYPE ...&gt; declaration and no XSD\r
+               ///                         "schemaLocation" attribute but there are some namespaces using the MSXML\r
+               ///                         "x-schema:" URN prefix, it will load and process those schemas and it will\r
+               ///                         return any default attributes defined in those schemas.\r
+               ///                      </term>\r
+               /// </item>\r
+               /// </list>\r
+               /// </summary>\r
+               Auto = 0,\r
+\r
+               /// <summary>\r
+               /// <para>\r
+               ///                   No validation.\r
+               ///                </para>\r
+               /// </summary>\r
+               None = 1,\r
+\r
+               /// <summary>\r
+               /// <para>\r
+               ///                   Validate according to DTD.\r
+               ///                </para>\r
+               /// </summary>\r
+               DTD = 2,\r
+\r
+               /// <summary>\r
+               /// <para>\r
+               ///                   Validate according to XDR and XSD schemas, including inline schemas. An error\r
+               ///                   is returned if both XDR and XSD schemas are referenced from the same\r
+               ///                   document.\r
+               ///                </para>\r
+               /// </summary>\r
+               Schema = 3,\r
+       } // Validation\r
+\r
+} // System.Xml\r
index 895bf8b2fb5b6d52690fb3e36683e7a84610b60c..b99aff9cd583b9851aac025ddb280c8fc34a747f 100644 (file)
@@ -1,19 +1,40 @@
-// -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-\r
+// WhitespaceHandling.cs\r
 //\r
-// System.Xml.WhitespaceHandling.cs\r
-//\r
-// Author:\r
-//   Jason Diamond (jason@injektilo.org)\r
-//\r
-// (C) 2001 Jason Diamond  http://injektilo.org/\r
+// This code was automatically generated from\r
+// ECMA CLI XML Library Specification.\r
+// Generator: libgen.xsl\r
+// Source file: AllTypes.xml\r
+// URL: http://msdn.microsoft.com/net/ecma/AllTypes.xml\r
 //\r
+// (C) 2001 Ximian, Inc.  http://www.ximian.com\r
+\r
+\r
+namespace System.Xml {\r
+\r
+\r
+       /// <summary>\r
+       /// <para> Specifies the type of white space returned by instances of \r
+       ///       the <see cref="T:System.Xml.XmlTextReader" /> class.\r
+       ///       </para>\r
+       /// </summary>\r
+       /// <remarks>\r
+       /// <para>Significant white space is white space between markup in \r
+       ///       a mixed content model, or white space within an element that has the xml:space =\r
+       ///       "preserve" attribute. Insignificant\r
+       ///       white space is any other white space between markup.</para>\r
+       /// </remarks>\r
+       public enum WhitespaceHandling {\r
+\r
+               /// <summary><para>Return both significant and insignificant white space. This is the default. </para></summary>\r
+               All = 0,\r
+\r
+               /// <summary><para> Return significant white space only.\r
+               ///       </para></summary>\r
+               Significant = 1,\r
+\r
+               /// <summary><para>Return neither significant nor insignificant white\r
+               ///       space.</para></summary>\r
+               None = 2,\r
+       } // WhitespaceHandling\r
 \r
-namespace System.Xml\r
-{\r
-       public enum WhitespaceHandling\r
-       {\r
-               All,\r
-               None,\r
-               Signifigant\r
-       }\r
-}\r
+} // System.Xml\r
diff --git a/mcs/class/System.XML/System.Xml/WriteState.cs b/mcs/class/System.XML/System.Xml/WriteState.cs
new file mode 100755 (executable)
index 0000000..a0b3714
--- /dev/null
@@ -0,0 +1,50 @@
+// WriteState.cs\r
+//\r
+// This code was automatically generated from\r
+// ECMA CLI XML Library Specification.\r
+// Generator: libgen.xsl\r
+// Source file: AllTypes.xml\r
+// URL: http://msdn.microsoft.com/net/ecma/AllTypes.xml\r
+//\r
+// (C) 2001 Ximian, Inc.  http://www.ximian.com\r
+\r
+\r
+namespace System.Xml {\r
+\r
+\r
+       /// <summary>\r
+       /// <para> Specifies the state of an instance of the <see cref="T:System.Xml.XmlTextWriter" /> class.\r
+       ///    </para>\r
+       /// </summary>\r
+       public enum WriteState {\r
+\r
+               /// <summary><para> An instance of the <see cref="!:System.Xml.XmlTextWriter.XmlTextWriter" qualify="true" /> class is initialized \r
+               ///    but none of the writing methods nor the <see cref="M:System.Xml.XmlTextWriter.Close" qualify="true" />\r
+               ///    method have been called.\r
+               ///    </para><para> The <see cref="M:System.Xml.XmlTextWriter.WriteEndDocument" qualify="true" /> method resets\r
+               /// the <see cref="P:System.Xml.XmlTextWriter.WriteState" qualify="true" /> to this\r
+               /// value. </para></summary>\r
+               Start = 0,\r
+\r
+               /// <summary><para> The XML declaration is being written.\r
+               ///       </para></summary>\r
+               Prolog = 1,\r
+\r
+               /// <summary><para> An element start tag is being written.\r
+               ///       </para></summary>\r
+               Element = 2,\r
+\r
+               /// <summary><para> An attribute value is being written.\r
+               ///       </para></summary>\r
+               Attribute = 3,\r
+\r
+               /// <summary><para> Element content is being written.\r
+               ///       </para></summary>\r
+               Content = 4,\r
+\r
+               /// <summary><para> The <see cref="M:System.Xml.XmlTextWriter.Close" /> method has been called.\r
+               ///    </para></summary>\r
+               Closed = 5,\r
+       } // WriteState\r
+\r
+} // System.Xml\r
diff --git a/mcs/class/System.XML/System.Xml/XPathNodeType.cs b/mcs/class/System.XML/System.Xml/XPathNodeType.cs
new file mode 100755 (executable)
index 0000000..16aceeb
--- /dev/null
@@ -0,0 +1,21 @@
+// XPathNodeType.cs\r
+//\r
+// This code was automatically generated from\r
+// ECMA CLI XML Library Specification.\r
+// Generator: libgen.xsl\r
+// Source file: all.xml\r
+// URL: http://devresource.hp.com/devresource/Docs/TechPapers/CSharp/all.xml\r
+//\r
+// (C) 2001 Ximian, Inc.  http://www.ximian.com\r
+\r
+\r
+namespace System.Xml {\r
+\r
+       public enum XPathNodeType {\r
+               String = 0,\r
+               Boolean = 1,\r
+               Number = 2,\r
+               NodeSet = 3,\r
+       } // XPathNodeType\r
+\r
+} // System.Xml\r
diff --git a/mcs/class/System.XML/System.Xml/XmlCaseOrder.cs b/mcs/class/System.XML/System.Xml/XmlCaseOrder.cs
new file mode 100755 (executable)
index 0000000..b53d6e4
--- /dev/null
@@ -0,0 +1,20 @@
+// XmlCaseOrder.cs\r
+//\r
+// This code was automatically generated from\r
+// ECMA CLI XML Library Specification.\r
+// Generator: libgen.xsl\r
+// Source file: all.xml\r
+// URL: http://devresource.hp.com/devresource/Docs/TechPapers/CSharp/all.xml\r
+//\r
+// (C) 2001 Ximian, Inc.  http://www.ximian.com\r
+\r
+\r
+namespace System.Xml {\r
+\r
+       public enum XmlCaseOrder {\r
+               None = 0,\r
+               UpperFirst = 1,\r
+               LowerFirst = 2,\r
+       } // XmlCaseOrder\r
+\r
+} // System.Xml\r
diff --git a/mcs/class/System.XML/System.Xml/XmlDataType.cs b/mcs/class/System.XML/System.Xml/XmlDataType.cs
new file mode 100755 (executable)
index 0000000..eb69aec
--- /dev/null
@@ -0,0 +1,21 @@
+// XmlDataType.cs\r
+//\r
+// This code was automatically generated from\r
+// ECMA CLI XML Library Specification.\r
+// Generator: libgen.xsl\r
+// Source file: all.xml\r
+// URL: http://devresource.hp.com/devresource/Docs/TechPapers/CSharp/all.xml\r
+//\r
+// (C) 2001 Ximian, Inc.  http://www.ximian.com\r
+\r
+\r
+namespace System.Xml {\r
+\r
+       public enum XmlDataType {\r
+               None = 0,\r
+               Text = 1,\r
+               Number = 2,\r
+               QName = 3,\r
+       } // XmlDataType\r
+\r
+} // System.Xml\r
diff --git a/mcs/class/System.XML/System.Xml/XmlExceptionCode.cs b/mcs/class/System.XML/System.Xml/XmlExceptionCode.cs
new file mode 100755 (executable)
index 0000000..4938723
--- /dev/null
@@ -0,0 +1,273 @@
+// XmlExceptionCode.cs\r
+//\r
+// This code was automatically generated from\r
+// ECMA CLI XML Library Specification.\r
+// Generator: libgen.xsl\r
+// Source file: all.xml\r
+// URL: http://devresource.hp.com/devresource/Docs/TechPapers/CSharp/all.xml\r
+//\r
+// (C) 2001 Ximian, Inc.  http://www.ximian.com\r
+\r
+\r
+namespace System.Xml {\r
+\r
+       public enum XmlExceptionCode {\r
+               Success = 0,\r
+               UnclosedQuote = 1,\r
+               UnexpectedEOF = 2,\r
+               BadStartNameChar = 3,\r
+               BadNameChar = 4,\r
+               BadComment = 5,\r
+               BadDecimalEntity = 6,\r
+               BadHexEntity = 7,\r
+               NumEntityOverflow = 8,\r
+               MissingByteOrderMark = 9,\r
+               UnknownEncoding = 10,\r
+               InternalError = 11,\r
+               UnexpectedWS = 12,\r
+               UnexpectedChar = 13,\r
+               NoInput = 14,\r
+               NoHandler = 15,\r
+               UnexpectedToken = 16,\r
+               NotImplemented = 17,\r
+               TagMismatch = 18,\r
+               UnexpectedTag = 19,\r
+               BadColon = 20,\r
+               UnknownNs = 21,\r
+               ReservedNs = 22,\r
+               BadAttributeChar = 23,\r
+               MissingRoot = 24,\r
+               MultipleRoots = 25,\r
+               BadElementData = 26,\r
+               InvalidRootData = 27,\r
+               XmlDeclNotFirst = 28,\r
+               InvalidAttributeValue = 29,\r
+               InvalidXmlDecl = 30,\r
+               BadXmlDeclCase = 31,\r
+               InvalidNodeType = 32,\r
+               InvalidPIName = 33,\r
+               InvalidXmlSpace = 34,\r
+               InvalidXmlLang = 35,\r
+               InvalidVersionNumber = 36,\r
+               DupAttributeName = 37,\r
+               BadDTDLocation = 38,\r
+               UnexpectedElement = 39,\r
+               TagNotInTheSameEntity = 40,\r
+               PartialContentNodeTypeNotSupported = 41,\r
+               InvalidPartialContentData = 42,\r
+               TwoDTDsProvided = 43,\r
+               CanNotBindToReservedNamespace = 44,\r
+               TextDeclPosition = 45,\r
+               DupElementDecl = 46,\r
+               DupIDAttribute = 47,\r
+               DupNotation = 48,\r
+               DupEntity = 49,\r
+               DupParEntity = 50,\r
+               DupID = 51,\r
+               UndeclaredElement = 52,\r
+               UndeclaredAttribute = 53,\r
+               UndeclaredNotation = 54,\r
+               UndeclaredID = 55,\r
+               UndeclaredParEntity = 56,\r
+               UndeclaredEntity = 57,\r
+               InvalidCondSect = 58,\r
+               InvalidParEntityRef = 59,\r
+               InvalidContentModel = 60,\r
+               InvalidAttType = 61,\r
+               InvalidTextDecl = 62,\r
+               InvalidContent = 63,\r
+               InvalidContentExpecting = 64,\r
+               ParEntityRefNesting = 65,\r
+               ReservedNsDecl = 66,\r
+               RecursiveParEntity = 67,\r
+               RootMatchDocType = 68,\r
+               EmptyContent = 69,\r
+               IncompleteContent = 70,\r
+               UnparsedEntity = 71,\r
+               SchemaRootExpected = 72,\r
+               UnsupportedAttribute = 73,\r
+               UnsupportedElement = 74,\r
+               MissAttribute = 75,\r
+               AnnotationLocation = 76,\r
+               DataTypeTextOnly = 77,\r
+               UnknownContent = 78,\r
+               UnknownModel = 79,\r
+               UnknownOrder = 80,\r
+               MixedMany = 81,\r
+               GroupDisabled = 82,\r
+               DupConstraint = 83,\r
+               MissDtvaluesAttribute = 84,\r
+               MissDtvalue = 85,\r
+               DupDtType = 86,\r
+               DupAttribute = 87,\r
+               UnknownDtType = 88,\r
+               RequireEnumeration = 89,\r
+               DefaultIDValue = 90,\r
+               ElementNotAllowed = 91,\r
+               ElementMissing = 92,\r
+               ManyMaxOccurs = 93,\r
+               UnknownRequired = 94,\r
+               MaxOccursInvalid = 95,\r
+               MinOccursInvalid = 96,\r
+               DtMaxLenghtInvalid = 97,\r
+               DtMinLenghtInvalid = 98,\r
+               DupDtMaxLenght = 99,\r
+               DupDtMinLenght = 100,\r
+               DtMinMaxLength = 101,\r
+               InvalidAttributeDefault = 102,\r
+               DupElement = 103,\r
+               InvalidValue = 104,\r
+               RecursiveGenEntity = 105,\r
+               ExternalEntityInAttValue = 106,\r
+               UnparsedEntityRef = 107,\r
+               MissRequiredAttribute = 108,\r
+               FixedAttributeValue = 109,\r
+               AttributeValueDataType = 110,\r
+               IncludeLocation = 111,\r
+               ImportLocation = 112,\r
+               NoParticle = 113,\r
+               InvalidProcessContentValue = 114,\r
+               InvalidDerivedByValue = 115,\r
+               InvalidBlockValue = 116,\r
+               InvalidBlockDefaultValue = 117,\r
+               InvalidFinalValue = 118,\r
+               InvalidFinalDefaultValue = 119,\r
+               DupAttributeValue = 120,\r
+               InvalidID = 121,\r
+               DupSimpleType = 122,\r
+               DupComplexType = 123,\r
+               InvalidContentValue = 124,\r
+               DupGroup = 125,\r
+               DefaultFixedAttributes = 126,\r
+               DupAttributeGroup = 127,\r
+               DerivedByNotAllowed = 128,\r
+               DupXsdElement = 129,\r
+               ForbiddenAttribute = 130,\r
+               NoElementContent = 131,\r
+               ElementRef = 132,\r
+               TypeMutualExclusive = 133,\r
+               ElementNameRef = 134,\r
+               AttributeNameRef = 135,\r
+               TextNotAllowed = 136,\r
+               UndeclaredEquivClass = 137,\r
+               UndeclaredType = 138,\r
+               AttListPresence = 139,\r
+               EmptySchemaCollection = 140,\r
+               NotInSchemaCollection = 141,\r
+               NotSameNameTable = 142,\r
+               InvalidCharacter = 143,\r
+               ValidDateElement = 144,\r
+               NotationValue = 145,\r
+               EnumerationValue = 146,\r
+               EmptyAttributeValue = 147,\r
+               InvalidName = 148,\r
+               NoColonEntityName = 149,\r
+               MultipleAttributeValue = 150,\r
+               UnexpectedCDataEnd = 151,\r
+               ResolveURL = 152,\r
+               NullXmlResolver = 153,\r
+               ColonInLocalName = 154,\r
+               XmlLangNmtoken = 155,\r
+               InvalidLanguageID = 156,\r
+               XmlSpace = 157,\r
+               ExpectDtdMarkup = 158,\r
+               ExpectedExternalOrPublicID = 159,\r
+               ExpectedExternalIdOrEntityValue = 160,\r
+               ExpectAttType = 161,\r
+               ExpectIgnoreOrInclude = 162,\r
+               ExpectSubOrClose = 163,\r
+               ExpectExternalOrClose = 164,\r
+               ExpectOp = 165,\r
+               ExpectPcData = 166,\r
+               InvalidXsdAttributeValue = 167,\r
+               ElementValueDataType = 168,\r
+               AttributeRef = 169,\r
+               AttributeComplexType = 170,\r
+               NonDeterministic = 171,\r
+               StandAlone = 172,\r
+               InvalidSchema = 173,\r
+               SimpleFromComplex = 174,\r
+               ListFromList = 175,\r
+               DerivedByBaseName = 176,\r
+               InvalidXmlDocument = 177,\r
+               ParticlesNotAllowed = 178,\r
+               FacetsNotAllowed = 179,\r
+               AttributesNotAllowed = 180,\r
+               ComplexSimpleRestriction = 181,\r
+               ComplexSimpleContent = 182,\r
+               XmlNsAttribute = 183,\r
+               GlobalAttributeFixedDefault = 184,\r
+               XsiTargetNamespace = 185,\r
+               BlockEquivClass = 186,\r
+               ElementDefault = 187,\r
+               UndeclaredModelGroup = 188,\r
+               UndeclaredAttributeGroup = 189,\r
+               FragmentID = 190,\r
+               AllElement = 191,\r
+               MaxOccursInAll = 192,\r
+               MisMatchTargetNamespace = 193,\r
+               AttributeFollowCompositor = 194,\r
+               XsiTypeNotFound = 195,\r
+               ListFromNonatomic = 196,\r
+               DupLengthFacet = 197,\r
+               DupMinLengthFacet = 198,\r
+               DupMaxLengthFacet = 199,\r
+               DupPatternFacet = 200,\r
+               DupWhiteSpaceFacet = 201,\r
+               DupMaxInclusiveFacet = 202,\r
+               DupMaxExclusiveFacet = 203,\r
+               DupMinInclusiveFacet = 204,\r
+               DupMinExclusiveFacet = 205,\r
+               DupPrecisionFacet = 206,\r
+               DupScaleFacet = 207,\r
+               DupEncodingFacet = 208,\r
+               DupDurationFacet = 209,\r
+               DupPeriodFacet = 210,\r
+               LengthFacetProhibited = 211,\r
+               MinLengthFacetProhibited = 212,\r
+               MaxLengthFacetProhibited = 213,\r
+               PatternFacetProhibited = 214,\r
+               EnumerationFacetProhibited = 215,\r
+               WhiteSpaceFacetProhibited = 216,\r
+               MaxInclusiveFacetProhibited = 217,\r
+               MaxExclusiveFacetProhibited = 218,\r
+               MinInclusiveFacetProhibited = 219,\r
+               MinExclusiveFacetProhibited = 220,\r
+               PrecisionFacetProhibited = 221,\r
+               ScaleFacetProhibited = 222,\r
+               EncodingFacetProhibited = 223,\r
+               DurationFacetProhibited = 224,\r
+               PeriodFacetProhibited = 225,\r
+               NegativeLength = 226,\r
+               NegativeMinLength = 227,\r
+               NegativeMaxLength = 228,\r
+               FacetOnlyForAtomic = 229,\r
+               InvalidEncoding = 230,\r
+               InvalidWhiteSpace = 231,\r
+               UnknownFacet = 232,\r
+               LengthAndMinMax = 233,\r
+               MinLengthGtMaxLength = 234,\r
+               ScaleGtPrecision = 235,\r
+               LengthConstraintFailed = 236,\r
+               MinLengthConstraintFailed = 237,\r
+               MaxLengthConstraintFailed = 238,\r
+               PatternConstraintFailed = 239,\r
+               EnumerationConstraintFailed = 240,\r
+               MaxInclusiveConstraintFailed = 241,\r
+               MaxExclusiveConstraintFailed = 242,\r
+               MinInclusiveConstraintFailed = 243,\r
+               MinExclusiveConstraintFailed = 244,\r
+               PrecisionConstraintFailed = 245,\r
+               ScaleConstraintFailed = 246,\r
+               EncodingConstraintFailed = 247,\r
+               DurationConstraintFailed = 248,\r
+               PeriodConstraintFailed = 249,\r
+               UnionFailed = 250,\r
+               EncodingRequired = 251,\r
+               MoreFacetsRequired = 252,\r
+               DupNotationAttribute = 253,\r
+               NotationAttributeOnEmptyElement = 254,\r
+               Last = 255,\r
+       } // XmlExceptionCode\r
+\r
+} // System.Xml\r
diff --git a/mcs/class/System.XML/System.Xml/XmlNodeChangedAction.cs b/mcs/class/System.XML/System.Xml/XmlNodeChangedAction.cs
new file mode 100755 (executable)
index 0000000..343efd0
--- /dev/null
@@ -0,0 +1,36 @@
+// XmlNodeChangedAction.cs\r
+//\r
+// This code was automatically generated from\r
+// ECMA CLI XML Library Specification.\r
+// Generator: libgen.xsl\r
+// Source file: all.xml\r
+// URL: http://devresource.hp.com/devresource/Docs/TechPapers/CSharp/all.xml\r
+//\r
+// (C) 2001 Ximian, Inc.  http://www.ximian.com\r
+\r
+\r
+namespace System.Xml {\r
+\r
+\r
+       /// <summary>\r
+       /// <para>TODO: Specifies the type of node change </para>\r
+       /// </summary>\r
+       public enum XmlNodeChangedAction {\r
+\r
+               /// <summary>\r
+               /// <para>TODO: A node is beeing inserted in the tree.</para>\r
+               /// </summary>\r
+               Insert = 0,\r
+\r
+               /// <summary>\r
+               /// <para>TODO: A node is beeing removed from the tree.</para>\r
+               /// </summary>\r
+               Remove = 1,\r
+\r
+               /// <summary>\r
+               /// <para>TODO: A node value is beeing changed.</para>\r
+               /// </summary>\r
+               Change = 2,\r
+       } // XmlNodeChangedAction\r
+\r
+} // System.Xml\r
index a01c34ee65bd6442eb36a96fce6a23fcc89e9cb4..5ad9fe1378fdc279f90ae2c43f85d1daadf01585 100644 (file)
-// -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-\r
+// XmlNodeType.cs\r
 //\r
-// System.Xml.XmlNodeType.cs\r
-//\r
-// Author:\r
-//   Jason Diamond (jason@injektilo.org)\r
-//\r
-// (C) 2001 Jason Diamond  http://injektilo.org/\r
+// This code was automatically generated from\r
+// ECMA CLI XML Library Specification.\r
+// Generator: libgen.xsl\r
+// Source file: AllTypes.xml\r
+// URL: http://msdn.microsoft.com/net/ecma/AllTypes.xml\r
 //\r
+// (C) 2001 Ximian, Inc.  http://www.ximian.com\r
+\r
+\r
+namespace System.Xml {\r
+\r
+\r
+       /// <summary>\r
+       /// <para>Specifies the type of node.</para>\r
+       /// </summary>\r
+       public enum XmlNodeType {\r
+\r
+               /// <summary><para>This is returned by the <see cref="T:System.Xml.XmlReader" /> if a <see langword="Read" /> \r
+               /// method has not been called or if no more nodes\r
+               /// are available to be read.</para></summary>\r
+               None = 0,\r
+\r
+               /// <summary><para> An element.\r
+               ///       </para><para> Example XML: <c>&lt;item&gt;</c></para>\r
+               /// An <see langword="Element" /> node can have the\r
+               /// following child node types: <see langword="Element" />, <see langword="Text" />,\r
+               /// <see langword="Comment" />, <see langword="ProcessingInstruction" />, \r
+               /// <see langword="CDATA" />, and <see langword="EntityReference" />. It can be the \r
+               /// child of the <see langword="Document" />, <see langword="DocumentFragment" />,\r
+               /// <see langword="EntityReference" />, and <see langword="Element" />\r
+               /// nodes.\r
+               /// </summary>\r
+               Element = 1,\r
+\r
+               /// <summary><para> An\r
+               ///  attribute.\r
+               ///  </para><para> Example XML: <c>id='123'</c></para><para> An <see langword="Attribute" /> node can have the\r
+               /// following child node types: <see langword="Text" /> and\r
+               /// <see langword="EntityReference" />. The <see langword="Attribute" /> node does not \r
+               /// appear as the child node of any other node type. It is not considered a\r
+               /// child node of an <see langword="Element" />\r
+               /// .</para></summary>\r
+               Attribute = 2,\r
+\r
+               /// <summary><para> The\r
+               ///       text content of a node.\r
+               ///       </para><para> A <see langword="Text" /> node cannot have any child nodes. \r
+               ///    It can appear as the child node of the <see langword="Attribute" />,\r
+               /// <see langword="DocumentFragment" />, <see langword="Element" />, and \r
+               /// <see langword="EntityReference" /> \r
+               /// nodes.\r
+               /// </para></summary>\r
+               Text = 3,\r
+\r
+               /// <summary><para>A CDATA \r
+               ///       \r
+               ///       section.</para><para>Example XML: <c>&lt;![CDATA[my \r
+               ///       escaped text]]&gt;</c></para><para> \r
+               ///       CDATA sections are used to escape blocks of text that would otherwise\r
+               ///       be recognized as markup. A <see langword="CDATA" /> node cannot have any child\r
+               ///       nodes. It can appear as the child of the <see langword="DocumentFragment" />,\r
+               ///    <see langword="EntityReference" />, and <see langword="Element" /> nodes.</para></summary>\r
+               CDATA = 4,\r
+\r
+               /// <summary><para>A reference to an entity.</para><para>Example XML: <c>&amp;num;</c></para><para> An <see langword="EntityReference" /> node can have the \r
+               ///    following child node types: <see langword="Element" />,\r
+               /// <see langword="ProcessingInstruction" />, <see langword="Comment" />, \r
+               /// <see langword="Text" />, <see langword="CDATA" />, and \r
+               /// <see langword="EntityReference" />. It can appear as the child of the \r
+               /// <see langword="Attribute" />, <see langword="DocumentFragment" />, \r
+               /// <see langword="Element" />, and <see langword="EntityReference" /> \r
+               /// \r
+               /// nodes.</para></summary>\r
+               EntityReference = 5,\r
+\r
+               /// <summary><para>An entity declaration.</para><para>Example XML: <c>&lt;!ENTITY ...&gt;</c></para><para>An <see langword="Entity" /> node can have child nodes \r
+               ///    that represent the expanded entity (for example, <see langword="Text" /> and\r
+               /// <see langword="EntityReference" /> nodes). It can appear as the child of the \r
+               /// <see langword="DocumentType" /> \r
+               /// node.</para></summary>\r
+               Entity = 6,\r
+\r
+               /// <summary><para> A processing instruction.\r
+               ///       </para><para> Example XML: <c>&lt;?pi test?&gt;</c></para><para> A <see langword="ProcessingInstruction" /> node cannot have \r
+               /// any child nodes. It can appear as the child of the <see langword="Document" />,\r
+               /// <see langword="DocumentFragment" />, <see langword="Element" />, and \r
+               /// <see langword="EntityReference" /> \r
+               /// nodes.\r
+               /// </para></summary>\r
+               ProcessingInstruction = 7,\r
+\r
+               /// <summary><para> A comment.\r
+               ///       </para><para> Example XML: <c>&lt;!-- my comment --&gt;</c></para><para> A <see langword="Comment" /> node cannot have any child \r
+               /// nodes. It can appear as the child of the <see langword="Document" />,\r
+               /// <see langword="DocumentFragment" />, <see langword="Element" />, and \r
+               /// <see langword="EntityReference" /> \r
+               /// nodes.\r
+               /// </para></summary>\r
+               Comment = 8,\r
+\r
+               /// <summary><para> A document object that, as the root of the document tree, provides access\r
+               ///  to the entire XML document.\r
+               ///  </para><para> A <see langword="Document" /> node \r
+               ///  can have the following child node types:\r
+               /// <see langword="XmlDeclaration" /> \r
+               /// , <see langword="Element" /> (maximum of one),\r
+               /// <see langword="ProcessingInstruction" />, <see langword="Comment" />, and \r
+               /// <see langword="DocumentType" /> \r
+               /// . It cannot\r
+               /// appear as the child of any node types.</para></summary>\r
+               Document = 9,\r
+\r
+               /// <summary><para> The document type declaration, indicated by the following tag.\r
+               ///       </para><para> Example XML: <c>&lt;!DOCTYPE ...&gt;</c></para><para> A <see langword="DocumentType" /> node can have the \r
+               /// following child node types: <see langword="Notation" /> and\r
+               /// <see langword="Entity" />. It can appear as the child of the \r
+               /// <see langword="Document" /> \r
+               /// node.\r
+               /// </para></summary>\r
+               DocumentType = 10,\r
+\r
+               /// <summary><para> A document fragment.\r
+               ///       </para><para> The <see langword="DocumentFragment" /> node associates a \r
+               ///    node or subtree with a document without actually being contained within the\r
+               ///    document. A <see langword="DocumentFragment" /> node can have the following child\r
+               ///    node types: <see langword="Element" />, <see langword="ProcessingInstruction" />,\r
+               /// <see langword="Comment" />, <see langword="Text" />, <see langword="CDATA" />, and \r
+               /// <see langword="EntityReference" /> \r
+               /// \r
+               /// . It\r
+               /// cannot appear as the child of any node types.\r
+               /// </para></summary>\r
+               DocumentFragment = 11,\r
+\r
+               /// <summary><para> A notation in the document type declaration.\r
+               ///       </para><para> Example XML: <c>&lt;!NOTATION ...&gt;</c></para><para> A <see langword="Notation" /> node cannot have any child \r
+               /// nodes. It can appear as the child of the <see langword="DocumentType" />\r
+               /// node.\r
+               /// </para></summary>\r
+               Notation = 12,\r
+\r
+               /// <summary><para>\r
+               ///        Whitespace between markup.\r
+               ///     </para></summary>\r
+               Whitespace = 13,\r
+\r
+               /// <summary><para> Whitespace between markup in a mixed content model or \r
+               ///       whitespace within the <c>xml:space="preserve"</c> scope.\r
+               ///    </para></summary>\r
+               SignificantWhitespace = 14,\r
+\r
+               /// <summary><para> An end element tag.</para><para>Example XML: <c>&lt;/item&gt;</c></para><para>Returned when <see cref="T:System.Xml.XmlReader" /> gets to the end of an element.</para></summary>\r
+               EndElement = 15,\r
+\r
+               /// <summary><para>Returned when <see langword="XmlReader" /> gets to the end of the entity\r
+               ///    replacement as a result of a call to <see cref="M:System.Xml.XmlReader.ResolveEntity" />\r
+               ///    .</para></summary>\r
+               EndEntity = 16,\r
+\r
+               /// <summary><para> The XML declaration.\r
+               ///  </para><para> Example XML: <c>&lt;?xml version='1.0'?&gt;</c></para><para> The <see langword="XmlDeclaration" /> \r
+               /// node must be the first node in the document. It cannot have children. It is a\r
+               /// child of the <see langword="Document" />\r
+               /// node. It can have attributes that provide version\r
+               /// and encoding information.</para></summary>\r
+               XmlDeclaration = 17,\r
+       } // XmlNodeType\r
 \r
-namespace System.Xml\r
-{\r
-       public enum XmlNodeType\r
-       {\r
-               Attribute,\r
-               CDATA,\r
-               Comment,\r
-               Document,\r
-               DocumentFragment,\r
-               DocumentType,\r
-               Element,\r
-               EndElement,\r
-               EndEntity,\r
-               Entity,\r
-               EntityReference,\r
-               None,\r
-               Notation,\r
-               ProcessingInstruction,\r
-               SignifigantWhitespace,\r
-               Text,\r
-               Whitespace,\r
-               XmlDeclaration\r
-       }\r
-}\r
+} // System.Xml\r
diff --git a/mcs/class/System.XML/System.Xml/XmlSortOrder.cs b/mcs/class/System.XML/System.Xml/XmlSortOrder.cs
new file mode 100755 (executable)
index 0000000..0cea715
--- /dev/null
@@ -0,0 +1,20 @@
+// XmlSortOrder.cs\r
+//\r
+// This code was automatically generated from\r
+// ECMA CLI XML Library Specification.\r
+// Generator: libgen.xsl\r
+// Source file: all.xml\r
+// URL: http://devresource.hp.com/devresource/Docs/TechPapers/CSharp/all.xml\r
+//\r
+// (C) 2001 Ximian, Inc.  http://www.ximian.com\r
+\r
+\r
+namespace System.Xml {\r
+\r
+       public enum XmlSortOrder {\r
+               None = 0,\r
+               Ascending = 1,\r
+               Descending = 2,\r
+       } // XmlSortOrder\r
+\r
+} // System.Xml\r
index 18f753ce58417d2841d83230ee0f77c6a5ace55d..9b1728f0bc706cad820c20294d938b82b11cae1a 100644 (file)
@@ -1,19 +1,37 @@
-// -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-\r
+// XmlSpace.cs\r
 //\r
-// System.Xml.XmlSpace.cs\r
-//\r
-// Author:\r
-//   Jason Diamond (jason@injektilo.org)\r
-//\r
-// (C) 2001 Jason Diamond  http://injektilo.org/\r
+// This code was automatically generated from\r
+// ECMA CLI XML Library Specification.\r
+// Generator: libgen.xsl\r
+// Source file: AllTypes.xml\r
+// URL: http://msdn.microsoft.com/net/ecma/AllTypes.xml\r
 //\r
+// (C) 2001 Ximian, Inc.  http://www.ximian.com\r
+\r
+\r
+namespace System.Xml {\r
+\r
+\r
+       /// <summary>\r
+       /// <para>Specifies the white\r
+       ///       space attribute (xml:space), which indicates whether white space should be preserved in an element.</para>\r
+       /// </summary>\r
+       /// <remarks>\r
+       /// <block subset="none" type="note">\r
+       /// <para>This enumeration is used by instances of the <see cref="T:System.Xml.XmlParserContext" />, \r
+       ///    <see cref="T:System.Xml.XmlTextReader" />, and <see cref="T:System.Xml.XmlTextWriter" /> classes.</para>\r
+       /// </block>\r
+       /// </remarks>\r
+       public enum XmlSpace {\r
+\r
+               /// <summary><para>No xml:space attribute is in scope.</para></summary>\r
+               None = 0,\r
+\r
+               /// <summary><para> xml:space = 'default' is in scope.</para></summary>\r
+               Default = 1,\r
+\r
+               /// <summary><para>xml:space = 'preserve' is in scope.</para></summary>\r
+               Preserve = 2,\r
+       } // XmlSpace\r
 \r
-namespace System.Xml\r
-{\r
-       public enum XmlSpace\r
-       {\r
-               Default,\r
-               None,\r
-               Preserve\r
-       }\r
-}\r
+} // System.Xml\r
index 23146df6dd3513d3d5baff383176bce9fa1b6d95..f52058fa86982773e0fe637be7e231a3113e74ec 100644 (file)
@@ -1,12 +1,25 @@
-IXmlLineInfo.cs\r
-ReadState.cs\r
-WhitespaceHandling.cs\r
-XmlChar.cs\r
-XmlNamespaceManager.cs\r
-XmlNameTable.cs\r
-XmlNodeType.cs\r
-XmlParserContext.cs\r
-XmlReader.cs\r
-XmlResolver.cs\r
-XmlSpace.cs\r
-XmlTextReader.cs\r
+Driver.cs
+EntityHandling.cs
+Formatting.cs
+IXmlLineInfo.cs
+Profile.cs
+ReadState.cs
+TreePosition.cs
+Validation.cs
+WhitespaceHandling.cs
+WriteState.cs
+XPathNodeType.cs
+XmlCaseOrder.cs
+XmlChar.cs
+XmlDataType.cs
+XmlExceptionCode.cs
+XmlNameTable.cs
+XmlNamespaceManager.cs
+XmlNodeChangedAction.cs
+XmlNodeType.cs
+XmlParserContext.cs
+XmlReader.cs
+XmlResolver.cs
+XmlSortOrder.cs
+XmlSpace.cs
+XmlTextReader.cs
diff --git a/mcs/class/System.XML/Test/Test.cs b/mcs/class/System.XML/Test/Test.cs
new file mode 100755 (executable)
index 0000000..cac9d0c
--- /dev/null
@@ -0,0 +1,1147 @@
+// -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-\r
+//\r
+// System.Xml.Test.cs\r
+//\r
+// Author:\r
+//   Jason Diamond (jason@injektilo.org)\r
+//\r
+// (C) 2001 Jason Diamond  http://injektilo.org/\r
+//\r
+\r
+using System;\r
+using System.Diagnostics;\r
+using System.IO;\r
+\r
+using NUnit.Framework;\r
+\r
+namespace System.Xml\r
+{\r
+       public class Test : TestCase\r
+       {\r
+               public Test(string name) : base(name) { }\r
+\r
+               private void AssertStartDocument(XmlReader xmlReader)\r
+               {\r
+                       Assert(xmlReader.ReadState == ReadState.Initial);\r
+                       Assert(xmlReader.NodeType == XmlNodeType.None);\r
+                       Assert(xmlReader.Depth == 0);\r
+                       Assert(!xmlReader.EOF);\r
+               }\r
+\r
+               private void AssertNode(\r
+                       XmlReader xmlReader,\r
+                       XmlNodeType nodeType,\r
+                       int depth,\r
+                       bool isEmptyElement,\r
+                       string name,\r
+                       string value,\r
+                       int attributeCount)\r
+               {\r
+                       Assert(xmlReader.Read());\r
+                       Assert(xmlReader.ReadState == ReadState.Interactive);\r
+                       Assert(!xmlReader.EOF);\r
+\r
+                       Assert(xmlReader.NodeType == nodeType);\r
+                       Assert(xmlReader.Depth == depth);\r
+                       Assert(xmlReader.IsEmptyElement == isEmptyElement);\r
+                       Assert(xmlReader.Name == name);\r
+                       Assert(xmlReader.HasValue == (value != String.Empty));\r
+                       Assert(xmlReader.Value == value);\r
+                       Assert(xmlReader.HasAttributes == (attributeCount > 0));\r
+                       Assert(xmlReader.AttributeCount == attributeCount);\r
+               }\r
+\r
+               private void AssertAttribute(\r
+                       XmlReader xmlReader,\r
+                       string name,\r
+                       string value)\r
+               {\r
+                       Assert(xmlReader[name] == value);\r
+                       Assert(xmlReader.GetAttribute(name) == value);\r
+               }\r
+\r
+               private void AssertEndDocument(XmlReader xmlReader)\r
+               {\r
+                       Assert(!xmlReader.Read());\r
+                       Assert(xmlReader.NodeType == XmlNodeType.None);\r
+                       Assert(xmlReader.Depth == 0);\r
+                       Assert(xmlReader.ReadState == ReadState.EndOfFile);\r
+                       Assert(xmlReader.EOF);\r
+\r
+                       xmlReader.Close();\r
+                       Assert(xmlReader.ReadState == ReadState.Closed);\r
+               }\r
+\r
+               public void TestEmptyElement()\r
+               {\r
+                       string xml = "<foo/>";\r
+                       XmlReader xmlReader =\r
+                               new XmlTextReader(new StringReader(xml));\r
+\r
+                       AssertStartDocument(xmlReader);\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Element, // nodeType\r
+                               0, // depth\r
+                               true, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertEndDocument(xmlReader);\r
+               }\r
+\r
+               public void TestEmptyElementWithWhitespace()\r
+               {\r
+                       string xml = "<foo />";\r
+                       XmlReader xmlReader =\r
+                               new XmlTextReader(new StringReader(xml));\r
+\r
+                       AssertStartDocument(xmlReader);\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Element, // nodeType\r
+                               0, //depth\r
+                               true, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertEndDocument(xmlReader);\r
+               }\r
+\r
+               public void TestEmptyElementWithStartAndEndTag()\r
+               {\r
+                       string xml = "<foo></foo>";\r
+                       XmlReader xmlReader =\r
+                               new XmlTextReader(new StringReader(xml));\r
+\r
+                       AssertStartDocument(xmlReader);\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Element, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.EndElement, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertEndDocument(xmlReader);\r
+               }\r
+\r
+               public void TestEmptyElementWithStartAndEndTagWithWhitespace()\r
+               {\r
+                       string xml = "<foo ></foo >";\r
+                       XmlReader xmlReader =\r
+                               new XmlTextReader(new StringReader(xml));\r
+\r
+                       AssertStartDocument(xmlReader);\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Element, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.EndElement, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertEndDocument(xmlReader);\r
+               }\r
+\r
+               public void TestNestedEmptyTag()\r
+               {\r
+                       string xml = "<foo><bar/></foo>";\r
+                       XmlReader xmlReader =\r
+                               new XmlTextReader(new StringReader(xml));\r
+\r
+                       AssertStartDocument(xmlReader);\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Element, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Element, // nodeType\r
+                               1, //depth\r
+                               true, // isEmptyElement\r
+                               "bar", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.EndElement, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertEndDocument(xmlReader);\r
+               }\r
+\r
+               public void TestNestedText()\r
+               {\r
+                       string xml = "<foo>bar</foo>";\r
+                       XmlReader xmlReader =\r
+                               new XmlTextReader(new StringReader(xml));\r
+\r
+                       AssertStartDocument(xmlReader);\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Element, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Text, // nodeType\r
+                               1, //depth\r
+                               false, // isEmptyElement\r
+                               String.Empty, // name\r
+                               "bar", // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.EndElement, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertEndDocument(xmlReader);\r
+               }\r
+\r
+               public void TestEmptyElementWithAttribute()\r
+               {\r
+                       string xml = @"<foo bar=""baz""/>";\r
+                       XmlReader xmlReader =\r
+                               new XmlTextReader(new StringReader(xml));\r
+\r
+                       AssertStartDocument(xmlReader);\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Element, // nodeType\r
+                               0, //depth\r
+                               true, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               1 // attributeCount\r
+                       );\r
+\r
+                       AssertAttribute(\r
+                               xmlReader, // xmlReader\r
+                               "bar", // name\r
+                               "baz" // value\r
+                       );\r
+\r
+                       AssertEndDocument(xmlReader);\r
+               }\r
+\r
+               public void TestStartAndEndTagWithAttribute()\r
+               {\r
+                       string xml = @"<foo bar='baz'></foo>";\r
+                       XmlReader xmlReader =\r
+                               new XmlTextReader(new StringReader(xml));\r
+\r
+                       AssertStartDocument(xmlReader);\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Element, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               1 // attributeCount\r
+                       );\r
+\r
+                       AssertAttribute(\r
+                               xmlReader, // xmlReader\r
+                               "bar", // name\r
+                               "baz" // value\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.EndElement, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertEndDocument(xmlReader);\r
+               }\r
+\r
+               public void TestEmptyElementWithTwoAttributes()\r
+               {\r
+                       string xml = @"<foo bar=""baz"" quux='quuux'/>";\r
+                       XmlReader xmlReader =\r
+                               new XmlTextReader(new StringReader(xml));\r
+\r
+                       AssertStartDocument(xmlReader);\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Element, // nodeType\r
+                               0, //depth\r
+                               true, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               2 // attributeCount\r
+                       );\r
+\r
+                       AssertAttribute(\r
+                               xmlReader, // xmlReader\r
+                               "bar", // name\r
+                               "baz" // value\r
+                       );\r
+\r
+                       AssertAttribute(\r
+                               xmlReader, // xmlReader\r
+                               "quux", // name\r
+                               "quuux" // value\r
+                       );\r
+\r
+                       AssertEndDocument(xmlReader);\r
+               }\r
+\r
+               public void TestProcessingInstructionBeforeDocumentElement()\r
+               {\r
+                       string xml = "<?foo bar?><baz/>";\r
+                       XmlReader xmlReader =\r
+                               new XmlTextReader(new StringReader(xml));\r
+\r
+                       AssertStartDocument(xmlReader);\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.ProcessingInstruction, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               "bar", // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Element, // nodeType\r
+                               0, //depth\r
+                               true, // isEmptyElement\r
+                               "baz", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertEndDocument(xmlReader);\r
+               }\r
+\r
+               public void TestCommentBeforeDocumentElement()\r
+               {\r
+                       string xml = "<!--foo--><bar/>";\r
+                       XmlReader xmlReader =\r
+                               new XmlTextReader(new StringReader(xml));\r
+\r
+                       AssertStartDocument(xmlReader);\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Comment, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               String.Empty, // name\r
+                               "foo", // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Element, // nodeType\r
+                               0, //depth\r
+                               true, // isEmptyElement\r
+                               "bar", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertEndDocument(xmlReader);\r
+               }\r
+\r
+               public void TestPredefinedEntities()\r
+               {\r
+                       string xml = "<foo>&lt;&gt;&amp;&apos;&quot;</foo>";\r
+                       XmlReader xmlReader =\r
+                               new XmlTextReader(new StringReader(xml));\r
+\r
+                       AssertStartDocument(xmlReader);\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Element, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Text, // nodeType\r
+                               1, //depth\r
+                               false, // isEmptyElement\r
+                               String.Empty, // name\r
+                               "<>&'\"", // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.EndElement, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertEndDocument(xmlReader);\r
+               }\r
+\r
+               public void TestEntityReference()\r
+               {\r
+                       string xml = "<foo>&bar;</foo>";\r
+                       XmlReader xmlReader =\r
+                               new XmlTextReader(new StringReader(xml));\r
+\r
+                       AssertStartDocument(xmlReader);\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Element, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.EntityReference, // nodeType\r
+                               1, //depth\r
+                               false, // isEmptyElement\r
+                               "bar", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.EndElement, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertEndDocument(xmlReader);\r
+               }\r
+\r
+               public void TestEntityReferenceInsideText()\r
+               {\r
+                       string xml = "<foo>bar&baz;quux</foo>";\r
+                       XmlReader xmlReader =\r
+                               new XmlTextReader(new StringReader(xml));\r
+\r
+                       AssertStartDocument(xmlReader);\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Element, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Text, // nodeType\r
+                               1, //depth\r
+                               false, // isEmptyElement\r
+                               String.Empty, // name\r
+                               "bar", // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.EntityReference, // nodeType\r
+                               1, //depth\r
+                               false, // isEmptyElement\r
+                               "baz", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Text, // nodeType\r
+                               1, //depth\r
+                               false, // isEmptyElement\r
+                               String.Empty, // name\r
+                               "quux", // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.EndElement, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertEndDocument(xmlReader);\r
+               }\r
+\r
+               public void TestCharacterReferences()\r
+               {\r
+                       string xml = "<foo>&#70;&#x4F;&#x4f;</foo>";\r
+                       XmlReader xmlReader =\r
+                               new XmlTextReader(new StringReader(xml));\r
+\r
+                       AssertStartDocument(xmlReader);\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Element, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Text, // nodeType\r
+                               1, //depth\r
+                               false, // isEmptyElement\r
+                               String.Empty, // name\r
+                               "FOO", // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.EndElement, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertEndDocument(xmlReader);\r
+               }\r
+\r
+               public void TestEntityReferenceInAttribute()\r
+               {\r
+                       string xml = "<foo bar='&baz;'/>";\r
+                       XmlReader xmlReader =\r
+                               new XmlTextReader(new StringReader(xml));\r
+\r
+                       AssertStartDocument(xmlReader);\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Element, // nodeType\r
+                               0, //depth\r
+                               true, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               1 // attributeCount\r
+                       );\r
+\r
+                       AssertAttribute(\r
+                               xmlReader, // xmlReader\r
+                               "bar", // name\r
+                               "&baz;" // value\r
+                       );\r
+\r
+                       AssertEndDocument(xmlReader);\r
+               }\r
+\r
+               public void TestPredefinedEntitiesInAttribute()\r
+               {\r
+                       string xml = "<foo bar='&lt;&gt;&amp;&apos;&quot;'/>";\r
+                       XmlReader xmlReader =\r
+                               new XmlTextReader(new StringReader(xml));\r
+\r
+                       AssertStartDocument(xmlReader);\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Element, // nodeType\r
+                               0, //depth\r
+                               true, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               1 // attributeCount\r
+                       );\r
+\r
+                       AssertAttribute(\r
+                               xmlReader, // xmlReader\r
+                               "bar", // name\r
+                               "<>&'\"" // value\r
+                       );\r
+\r
+                       AssertEndDocument(xmlReader);\r
+               }\r
+\r
+               public void TestCharacterReferencesInAttribute()\r
+               {\r
+                       string xml = "<foo bar='&#70;&#x4F;&#x4f;'/>";\r
+                       XmlReader xmlReader =\r
+                               new XmlTextReader(new StringReader(xml));\r
+\r
+                       AssertStartDocument(xmlReader);\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Element, // nodeType\r
+                               0, //depth\r
+                               true, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               1 // attributeCount\r
+                       );\r
+\r
+                       AssertAttribute(\r
+                               xmlReader, // xmlReader\r
+                               "bar", // name\r
+                               "FOO" // value\r
+                       );\r
+\r
+                       AssertEndDocument(xmlReader);\r
+               }\r
+\r
+               public void TestCDATA()\r
+               {\r
+                       string xml = "<foo><![CDATA[<>&]]></foo>";\r
+                       XmlReader xmlReader =\r
+                               new XmlTextReader(new StringReader(xml));\r
+\r
+                       AssertStartDocument(xmlReader);\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.Element, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.CDATA, // nodeType\r
+                               1, //depth\r
+                               false, // isEmptyElement\r
+                               String.Empty, // name\r
+                               "<>&", // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertNode(\r
+                               xmlReader, // xmlReader\r
+                               XmlNodeType.EndElement, // nodeType\r
+                               0, //depth\r
+                               false, // isEmptyElement\r
+                               "foo", // name\r
+                               String.Empty, // value\r
+                               0 // attributeCount\r
+                       );\r
+\r
+                       AssertEndDocument(xmlReader);\r
+               }\r
+\r
+// The following is #if'ed out because it's specific to the Mono\r
+// implementation and won't compile when testing Microsoft's code.\r
+// Feel free to turn it on if you want to test Mono's name tables.\r
+\r
+#if false\r
+\r
+               public void TestIsFirstNameChar()\r
+               {\r
+                       for (int ch = 0; ch <= 0xFFFF; ++ch)\r
+                       {\r
+                               Assert(\r
+                                       XmlChar.IsFirstNameChar(ch) ==\r
+                                               IsFirstNameChar(ch));\r
+                       }\r
+               }\r
+\r
+               public void TestIsNameChar()\r
+               {\r
+                       for (int ch = 0; ch <= 0xFFFF; ++ch)\r
+                       {\r
+                               Assert(\r
+                                       XmlChar.IsNameChar(ch) ==\r
+                                               IsNameChar(ch));\r
+                       }\r
+               }\r
+\r
+               private static bool IsFirstNameChar(int ch)\r
+               {\r
+                       return\r
+                               IsLetter(ch) ||\r
+                               (ch == '_') ||\r
+                               (ch == ':');\r
+               }\r
+\r
+               private static bool IsNameChar(int ch)\r
+               {\r
+                       return\r
+                               IsLetter(ch) ||\r
+                               IsDigit(ch) ||\r
+                               (ch == '.') ||\r
+                               (ch == '-') ||\r
+                               (ch == '_') ||\r
+                               (ch == ':') ||\r
+                               IsCombiningChar(ch) ||\r
+                               IsExtender(ch);\r
+               }\r
+\r
+               private static bool IsLetter(int ch)\r
+               {\r
+                       return\r
+                               IsBaseChar(ch) ||\r
+                               IsIdeographic(ch);\r
+               }\r
+\r
+               private static bool IsBaseChar(int ch)\r
+               {\r
+                       return\r
+                               (ch >= 0x0041 && ch <= 0x005A) ||\r
+                               (ch >= 0x0061 && ch <= 0x007A) ||\r
+                               (ch >= 0x00C0 && ch <= 0x00D6) ||\r
+                               (ch >= 0x00D8 && ch <= 0x00F6) ||\r
+                               (ch >= 0x00F8 && ch <= 0x00FF) ||\r
+                               (ch >= 0x0100 && ch <= 0x0131) ||\r
+                               (ch >= 0x0134 && ch <= 0x013E) ||\r
+                               (ch >= 0x0141 && ch <= 0x0148) ||\r
+                               (ch >= 0x014A && ch <= 0x017E) ||\r
+                               (ch >= 0x0180 && ch <= 0x01C3) ||\r
+                               (ch >= 0x01CD && ch <= 0x01F0) ||\r
+                               (ch >= 0x01F4 && ch <= 0x01F5) ||\r
+                               (ch >= 0x01FA && ch <= 0x0217) ||\r
+                               (ch >= 0x0250 && ch <= 0x02A8) ||\r
+                               (ch >= 0x02BB && ch <= 0x02C1) ||\r
+                               (ch == 0x0386) ||\r
+                               (ch >= 0x0388 && ch <= 0x038A) ||\r
+                               (ch == 0x038C) ||\r
+                               (ch >= 0x038E && ch <= 0x03A1) ||\r
+                               (ch >= 0x03A3 && ch <= 0x03CE) ||\r
+                               (ch >= 0x03D0 && ch <= 0x03D6) ||\r
+                               (ch == 0x03DA) ||\r
+                               (ch == 0x03DC) ||\r
+                               (ch == 0x03DE) ||\r
+                               (ch == 0x03E0) ||\r
+                               (ch >= 0x03E2 && ch <= 0x03F3) ||\r
+                               (ch >= 0x0401 && ch <= 0x040C) ||\r
+                               (ch >= 0x040E && ch <= 0x044F) ||\r
+                               (ch >= 0x0451 && ch <= 0x045C) ||\r
+                               (ch >= 0x045E && ch <= 0x0481) ||\r
+                               (ch >= 0x0490 && ch <= 0x04C4) ||\r
+                               (ch >= 0x04C7 && ch <= 0x04C8) ||\r
+                               (ch >= 0x04CB && ch <= 0x04CC) ||\r
+                               (ch >= 0x04D0 && ch <= 0x04EB) ||\r
+                               (ch >= 0x04EE && ch <= 0x04F5) ||\r
+                               (ch >= 0x04F8 && ch <= 0x04F9) ||\r
+                               (ch >= 0x0531 && ch <= 0x0556) ||\r
+                               (ch == 0x0559) ||\r
+                               (ch >= 0x0561 && ch <= 0x0586) ||\r
+                               (ch >= 0x05D0 && ch <= 0x05EA) ||\r
+                               (ch >= 0x05F0 && ch <= 0x05F2) ||\r
+                               (ch >= 0x0621 && ch <= 0x063A) ||\r
+                               (ch >= 0x0641 && ch <= 0x064A) ||\r
+                               (ch >= 0x0671 && ch <= 0x06B7) ||\r
+                               (ch >= 0x06BA && ch <= 0x06BE) ||\r
+                               (ch >= 0x06C0 && ch <= 0x06CE) ||\r
+                               (ch >= 0x06D0 && ch <= 0x06D3) ||\r
+                               (ch == 0x06D5) ||\r
+                               (ch >= 0x06E5 && ch <= 0x06E6) ||\r
+                               (ch >= 0x0905 && ch <= 0x0939) ||\r
+                               (ch == 0x093D) ||\r
+                               (ch >= 0x0958 && ch <= 0x0961) ||\r
+                               (ch >= 0x0985 && ch <= 0x098C) ||\r
+                               (ch >= 0x098F && ch <= 0x0990) ||\r
+                               (ch >= 0x0993 && ch <= 0x09A8) ||\r
+                               (ch >= 0x09AA && ch <= 0x09B0) ||\r
+                               (ch == 0x09B2) ||\r
+                               (ch >= 0x09B6 && ch <= 0x09B9) ||\r
+                               (ch >= 0x09DC && ch <= 0x09DD) ||\r
+                               (ch >= 0x09DF && ch <= 0x09E1) ||\r
+                               (ch >= 0x09F0 && ch <= 0x09F1) ||\r
+                               (ch >= 0x0A05 && ch <= 0x0A0A) ||\r
+                               (ch >= 0x0A0F && ch <= 0x0A10) ||\r
+                               (ch >= 0x0A13 && ch <= 0x0A28) ||\r
+                               (ch >= 0x0A2A && ch <= 0x0A30) ||\r
+                               (ch >= 0x0A32 && ch <= 0x0A33) ||\r
+                               (ch >= 0x0A35 && ch <= 0x0A36) ||\r
+                               (ch >= 0x0A38 && ch <= 0x0A39) ||\r
+                               (ch >= 0x0A59 && ch <= 0x0A5C) ||\r
+                               (ch == 0x0A5E) ||\r
+                               (ch >= 0x0A72 && ch <= 0x0A74) ||\r
+                               (ch >= 0x0A85 && ch <= 0x0A8B) ||\r
+                               (ch == 0x0A8D) ||\r
+                               (ch >= 0x0A8F && ch <= 0x0A91) ||\r
+                               (ch >= 0x0A93 && ch <= 0x0AA8) ||\r
+                               (ch >= 0x0AAA && ch <= 0x0AB0) ||\r
+                               (ch >= 0x0AB2 && ch <= 0x0AB3) ||\r
+                               (ch >= 0x0AB5 && ch <= 0x0AB9) ||\r
+                               (ch == 0x0ABD) ||\r
+                               (ch == 0x0AE0) ||\r
+                               (ch >= 0x0B05 && ch <= 0x0B0C) ||\r
+                               (ch >= 0x0B0F && ch <= 0x0B10) ||\r
+                               (ch >= 0x0B13 && ch <= 0x0B28) ||\r
+                               (ch >= 0x0B2A && ch <= 0x0B30) ||\r
+                               (ch >= 0x0B32 && ch <= 0x0B33) ||\r
+                               (ch >= 0x0B36 && ch <= 0x0B39) ||\r
+                               (ch == 0x0B3D) ||\r
+                               (ch >= 0x0B5C && ch <= 0x0B5D) ||\r
+                               (ch >= 0x0B5F && ch <= 0x0B61) ||\r
+                               (ch >= 0x0B85 && ch <= 0x0B8A) ||\r
+                               (ch >= 0x0B8E && ch <= 0x0B90) ||\r
+                               (ch >= 0x0B92 && ch <= 0x0B95) ||\r
+                               (ch >= 0x0B99 && ch <= 0x0B9A) ||\r
+                               (ch == 0x0B9C) ||\r
+                               (ch >= 0x0B9E && ch <= 0x0B9F) ||\r
+                               (ch >= 0x0BA3 && ch <= 0x0BA4) ||\r
+                               (ch >= 0x0BA8 && ch <= 0x0BAA) ||\r
+                               (ch >= 0x0BAE && ch <= 0x0BB5) ||\r
+                               (ch >= 0x0BB7 && ch <= 0x0BB9) ||\r
+                               (ch >= 0x0C05 && ch <= 0x0C0C) ||\r
+                               (ch >= 0x0C0E && ch <= 0x0C10) ||\r
+                               (ch >= 0x0C12 && ch <= 0x0C28) ||\r
+                               (ch >= 0x0C2A && ch <= 0x0C33) ||\r
+                               (ch >= 0x0C35 && ch <= 0x0C39) ||\r
+                               (ch >= 0x0C60 && ch <= 0x0C61) ||\r
+                               (ch >= 0x0C85 && ch <= 0x0C8C) ||\r
+                               (ch >= 0x0C8E && ch <= 0x0C90) ||\r
+                               (ch >= 0x0C92 && ch <= 0x0CA8) ||\r
+                               (ch >= 0x0CAA && ch <= 0x0CB3) ||\r
+                               (ch >= 0x0CB5 && ch <= 0x0CB9) ||\r
+                               (ch == 0x0CDE) ||\r
+                               (ch >= 0x0CE0 && ch <= 0x0CE1) ||\r
+                               (ch >= 0x0D05 && ch <= 0x0D0C) ||\r
+                               (ch >= 0x0D0E && ch <= 0x0D10) ||\r
+                               (ch >= 0x0D12 && ch <= 0x0D28) ||\r
+                               (ch >= 0x0D2A && ch <= 0x0D39) ||\r
+                               (ch >= 0x0D60 && ch <= 0x0D61) ||\r
+                               (ch >= 0x0E01 && ch <= 0x0E2E) ||\r
+                               (ch == 0x0E30) ||\r
+                               (ch >= 0x0E32 && ch <= 0x0E33) ||\r
+                               (ch >= 0x0E40 && ch <= 0x0E45) ||\r
+                               (ch >= 0x0E81 && ch <= 0x0E82) ||\r
+                               (ch == 0x0E84) ||\r
+                               (ch >= 0x0E87 && ch <= 0x0E88) ||\r
+                               (ch == 0x0E8A) ||\r
+                               (ch == 0x0E8D) ||\r
+                               (ch >= 0x0E94 && ch <= 0x0E97) ||\r
+                               (ch >= 0x0E99 && ch <= 0x0E9F) ||\r
+                               (ch >= 0x0EA1 && ch <= 0x0EA3) ||\r
+                               (ch == 0x0EA5) ||\r
+                               (ch == 0x0EA7) ||\r
+                               (ch >= 0x0EAA && ch <= 0x0EAB) ||\r
+                               (ch >= 0x0EAD && ch <= 0x0EAE) ||\r
+                               (ch == 0x0EB0) ||\r
+                               (ch >= 0x0EB2 && ch <= 0x0EB3) ||\r
+                               (ch == 0x0EBD) ||\r
+                               (ch >= 0x0EC0 && ch <= 0x0EC4) ||\r
+                               (ch >= 0x0F40 && ch <= 0x0F47) ||\r
+                               (ch >= 0x0F49 && ch <= 0x0F69) ||\r
+                               (ch >= 0x10A0 && ch <= 0x10C5) ||\r
+                               (ch >= 0x10D0 && ch <= 0x10F6) ||\r
+                               (ch == 0x1100) ||\r
+                               (ch >= 0x1102 && ch <= 0x1103) ||\r
+                               (ch >= 0x1105 && ch <= 0x1107) ||\r
+                               (ch == 0x1109) ||\r
+                               (ch >= 0x110B && ch <= 0x110C) ||\r
+                               (ch >= 0x110E && ch <= 0x1112) ||\r
+                               (ch == 0x113C) ||\r
+                               (ch == 0x113E) ||\r
+                               (ch == 0x1140) ||\r
+                               (ch == 0x114C) ||\r
+                               (ch == 0x114E) ||\r
+                               (ch == 0x1150) ||\r
+                               (ch >= 0x1154 && ch <= 0x1155) ||\r
+                               (ch == 0x1159) ||\r
+                               (ch >= 0x115F && ch <= 0x1161) ||\r
+                               (ch == 0x1163) ||\r
+                               (ch == 0x1165) ||\r
+                               (ch == 0x1167) ||\r
+                               (ch == 0x1169) ||\r
+                               (ch >= 0x116D && ch <= 0x116E) ||\r
+                               (ch >= 0x1172 && ch <= 0x1173) ||\r
+                               (ch == 0x1175) ||\r
+                               (ch == 0x119E) ||\r
+                               (ch == 0x11A8) ||\r
+                               (ch == 0x11AB) ||\r
+                               (ch >= 0x11AE && ch <= 0x11AF) ||\r
+                               (ch >= 0x11B7 && ch <= 0x11B8) ||\r
+                               (ch == 0x11BA) ||\r
+                               (ch >= 0x11BC && ch <= 0x11C2) ||\r
+                               (ch == 0x11EB) ||\r
+                               (ch == 0x11F0) ||\r
+                               (ch == 0x11F9) ||\r
+                               (ch >= 0x1E00 && ch <= 0x1E9B) ||\r
+                               (ch >= 0x1EA0 && ch <= 0x1EF9) ||\r
+                               (ch >= 0x1F00 && ch <= 0x1F15) ||\r
+                               (ch >= 0x1F18 && ch <= 0x1F1D) ||\r
+                               (ch >= 0x1F20 && ch <= 0x1F45) ||\r
+                               (ch >= 0x1F48 && ch <= 0x1F4D) ||\r
+                               (ch >= 0x1F50 && ch <= 0x1F57) ||\r
+                               (ch == 0x1F59) ||\r
+                               (ch == 0x1F5B) ||\r
+                               (ch == 0x1F5D) ||\r
+                               (ch >= 0x1F5F && ch <= 0x1F7D) ||\r
+                               (ch >= 0x1F80 && ch <= 0x1FB4) ||\r
+                               (ch >= 0x1FB6 && ch <= 0x1FBC) ||\r
+                               (ch == 0x1FBE) ||\r
+                               (ch >= 0x1FC2 && ch <= 0x1FC4) ||\r
+                               (ch >= 0x1FC6 && ch <= 0x1FCC) ||\r
+                               (ch >= 0x1FD0 && ch <= 0x1FD3) ||\r
+                               (ch >= 0x1FD6 && ch <= 0x1FDB) ||\r
+                               (ch >= 0x1FE0 && ch <= 0x1FEC) ||\r
+                               (ch >= 0x1FF2 && ch <= 0x1FF4) ||\r
+                               (ch >= 0x1FF6 && ch <= 0x1FFC) ||\r
+                               (ch == 0x2126) ||\r
+                               (ch >= 0x212A && ch <= 0x212B) ||\r
+                               (ch == 0x212E) ||\r
+                               (ch >= 0x2180 && ch <= 0x2182) ||\r
+                               (ch >= 0x3041 && ch <= 0x3094) ||\r
+                               (ch >= 0x30A1 && ch <= 0x30FA) ||\r
+                               (ch >= 0x3105 && ch <= 0x312C) ||\r
+                               (ch >= 0xAC00 && ch <= 0xD7A3);\r
+               }\r
+\r
+               private static bool IsIdeographic(int ch)\r
+               {\r
+                       return\r
+                               (ch >= 0x4E00 && ch <= 0x9FA5) ||\r
+                               (ch == 0x3007) ||\r
+                               (ch >= 0x3021 && ch <= 0x3029);\r
+               }\r
+\r
+               private static bool IsDigit(int ch)\r
+               {\r
+                       return\r
+                               (ch >= 0x0030 && ch <= 0x0039) ||\r
+                               (ch >= 0x0660 && ch <= 0x0669) ||\r
+                               (ch >= 0x06F0 && ch <= 0x06F9) ||\r
+                               (ch >= 0x0966 && ch <= 0x096F) ||\r
+                               (ch >= 0x09E6 && ch <= 0x09EF) ||\r
+                               (ch >= 0x0A66 && ch <= 0x0A6F) ||\r
+                               (ch >= 0x0AE6 && ch <= 0x0AEF) ||\r
+                               (ch >= 0x0B66 && ch <= 0x0B6F) ||\r
+                               (ch >= 0x0BE7 && ch <= 0x0BEF) ||\r
+                               (ch >= 0x0C66 && ch <= 0x0C6F) ||\r
+                               (ch >= 0x0CE6 && ch <= 0x0CEF) ||\r
+                               (ch >= 0x0D66 && ch <= 0x0D6F) ||\r
+                               (ch >= 0x0E50 && ch <= 0x0E59) ||\r
+                               (ch >= 0x0ED0 && ch <= 0x0ED9) ||\r
+                               (ch >= 0x0F20 && ch <= 0x0F29);\r
+               }\r
+\r
+               private static bool IsCombiningChar(int ch)\r
+               {\r
+                       return\r
+                               (ch >= 0x0300 && ch <= 0x0345) ||\r
+                               (ch >= 0x0360 && ch <= 0x0361) ||\r
+                               (ch >= 0x0483 && ch <= 0x0486) ||\r
+                               (ch >= 0x0591 && ch <= 0x05A1) ||\r
+                               (ch >= 0x05A3 && ch <= 0x05B9) ||\r
+                               (ch >= 0x05BB && ch <= 0x05BD) ||\r
+                               (ch == 0x05BF) ||\r
+                               (ch >= 0x05C1 && ch <= 0x05C2) ||\r
+                               (ch == 0x05C4) ||\r
+                               (ch >= 0x064B && ch <= 0x0652) ||\r
+                               (ch == 0x0670) ||\r
+                               (ch >= 0x06D6 && ch <= 0x06DC) ||\r
+                               (ch >= 0x06DD && ch <= 0x06DF) ||\r
+                               (ch >= 0x06E0 && ch <= 0x06E4) ||\r
+                               (ch >= 0x06E7 && ch <= 0x06E8) ||\r
+                               (ch >= 0x06EA && ch <= 0x06ED) ||\r
+                               (ch >= 0x0901 && ch <= 0x0903) ||\r
+                               (ch == 0x093C) ||\r
+                               (ch >= 0x093E && ch <= 0x094C) ||\r
+                               (ch == 0x094D) ||\r
+                               (ch >= 0x0951 && ch <= 0x0954) ||\r
+                               (ch >= 0x0962 && ch <= 0x0963) ||\r
+                               (ch >= 0x0981 && ch <= 0x0983) ||\r
+                               (ch == 0x09BC) ||\r
+                               (ch == 0x09BE) ||\r
+                               (ch == 0x09BF) ||\r
+                               (ch >= 0x09C0 && ch <= 0x09C4) ||\r
+                               (ch >= 0x09C7 && ch <= 0x09C8) ||\r
+                               (ch >= 0x09CB && ch <= 0x09CD) ||\r
+                               (ch == 0x09D7) ||\r
+                               (ch >= 0x09E2 && ch <= 0x09E3) ||\r
+                               (ch == 0x0A02) ||\r
+                               (ch == 0x0A3C) ||\r
+                               (ch == 0x0A3E) ||\r
+                               (ch == 0x0A3F) ||\r
+                               (ch >= 0x0A40 && ch <= 0x0A42) ||\r
+                               (ch >= 0x0A47 && ch <= 0x0A48) ||\r
+                               (ch >= 0x0A4B && ch <= 0x0A4D) ||\r
+                               (ch >= 0x0A70 && ch <= 0x0A71) ||\r
+                               (ch >= 0x0A81 && ch <= 0x0A83) ||\r
+                               (ch == 0x0ABC) ||\r
+                               (ch >= 0x0ABE && ch <= 0x0AC5) ||\r
+                               (ch >= 0x0AC7 && ch <= 0x0AC9) ||\r
+                               (ch >= 0x0ACB && ch <= 0x0ACD) ||\r
+                               (ch >= 0x0B01 && ch <= 0x0B03) ||\r
+                               (ch == 0x0B3C) ||\r
+                               (ch >= 0x0B3E && ch <= 0x0B43) ||\r
+                               (ch >= 0x0B47 && ch <= 0x0B48) ||\r
+                               (ch >= 0x0B4B && ch <= 0x0B4D) ||\r
+                               (ch >= 0x0B56 && ch <= 0x0B57) ||\r
+                               (ch >= 0x0B82 && ch <= 0x0B83) ||\r
+                               (ch >= 0x0BBE && ch <= 0x0BC2) ||\r
+                               (ch >= 0x0BC6 && ch <= 0x0BC8) ||\r
+                               (ch >= 0x0BCA && ch <= 0x0BCD) ||\r
+                               (ch == 0x0BD7) ||\r
+                               (ch >= 0x0C01 && ch <= 0x0C03) ||\r
+                               (ch >= 0x0C3E && ch <= 0x0C44) ||\r
+                               (ch >= 0x0C46 && ch <= 0x0C48) ||\r
+                               (ch >= 0x0C4A && ch <= 0x0C4D) ||\r
+                               (ch >= 0x0C55 && ch <= 0x0C56) ||\r
+                               (ch >= 0x0C82 && ch <= 0x0C83) ||\r
+                               (ch >= 0x0CBE && ch <= 0x0CC4) ||\r
+                               (ch >= 0x0CC6 && ch <= 0x0CC8) ||\r
+                               (ch >= 0x0CCA && ch <= 0x0CCD) ||\r
+                               (ch >= 0x0CD5 && ch <= 0x0CD6) ||\r
+                               (ch >= 0x0D02 && ch <= 0x0D03) ||\r
+                               (ch >= 0x0D3E && ch <= 0x0D43) ||\r
+                               (ch >= 0x0D46 && ch <= 0x0D48) ||\r
+                               (ch >= 0x0D4A && ch <= 0x0D4D) ||\r
+                               (ch == 0x0D57) ||\r
+                               (ch == 0x0E31) ||\r
+                               (ch >= 0x0E34 && ch <= 0x0E3A) ||\r
+                               (ch >= 0x0E47 && ch <= 0x0E4E) ||\r
+                               (ch == 0x0EB1) ||\r
+                               (ch >= 0x0EB4 && ch <= 0x0EB9) ||\r
+                               (ch >= 0x0EBB && ch <= 0x0EBC) ||\r
+                               (ch >= 0x0EC8 && ch <= 0x0ECD) ||\r
+                               (ch >= 0x0F18 && ch <= 0x0F19) ||\r
+                               (ch == 0x0F35) ||\r
+                               (ch == 0x0F37) ||\r
+                               (ch == 0x0F39) ||\r
+                               (ch == 0x0F3E) ||\r
+                               (ch == 0x0F3F) ||\r
+                               (ch >= 0x0F71 && ch <= 0x0F84) ||\r
+                               (ch >= 0x0F86 && ch <= 0x0F8B) ||\r
+                               (ch >= 0x0F90 && ch <= 0x0F95) ||\r
+                               (ch == 0x0F97) ||\r
+                               (ch >= 0x0F99 && ch <= 0x0FAD) ||\r
+                               (ch >= 0x0FB1 && ch <= 0x0FB7) ||\r
+                               (ch == 0x0FB9) ||\r
+                               (ch >= 0x20D0 && ch <= 0x20DC) ||\r
+                               (ch == 0x20E1) ||\r
+                               (ch >= 0x302A && ch <= 0x302F) ||\r
+                               (ch == 0x3099) ||\r
+                               (ch == 0x309A);\r
+               }\r
+\r
+               private static bool IsExtender(int ch)\r
+               {\r
+                       return\r
+                               (ch == 0x00B7) ||\r
+                               (ch == 0x02D0) ||\r
+                               (ch == 0x02D1) ||\r
+                               (ch == 0x0387) ||\r
+                               (ch == 0x0640) ||\r
+                               (ch == 0x0E46) ||\r
+                               (ch == 0x0EC6) ||\r
+                               (ch == 0x3005) ||\r
+                               (ch >= 0x3031 && ch <= 0x3035) ||\r
+                               (ch >= 0x309D && ch <= 0x309E) ||\r
+                               (ch >= 0x30FC && ch <= 0x30FE);\r
+               }\r
+\r
+#endif\r
+\r
+               public void TestIsName()\r
+               {\r
+                       Assert(XmlReader.IsName("foo"));\r
+                       Assert(!XmlReader.IsName("1foo"));\r
+                       Assert(!XmlReader.IsName(" foo"));\r
+               }\r
+\r
+               public void TestIsNameToken()\r
+               {\r
+                       Assert(XmlReader.IsNameToken("foo"));\r
+                       Assert(XmlReader.IsNameToken("1foo"));\r
+                       Assert(!XmlReader.IsNameToken(" foo"));\r
+               }\r
+       }\r
+}\r