--- /dev/null
+// 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
--- /dev/null
+// 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
-// -*- 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
+++ /dev/null
-// -*- 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><>&'"</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>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.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='<>&'"'/>";\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='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
- 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
--- /dev/null
+// 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
--- /dev/null
+// 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 <!DOCTYPE ...>\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 <!DOCTYPE ...> 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 <!DOCTYPE ...> 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
-// -*- 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
--- /dev/null
+// 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
--- /dev/null
+// 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
--- /dev/null
+// 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
--- /dev/null
+// 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
--- /dev/null
+// 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
--- /dev/null
+// 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
-// -*- 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><item></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><![CDATA[my \r
+ /// escaped text]]></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>&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><!ENTITY ...></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><?pi test?></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><!-- my comment --></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><!DOCTYPE ...></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><!NOTATION ...></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></item></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><?xml version='1.0'?></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
--- /dev/null
+// 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
-// -*- 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
-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
--- /dev/null
+// -*- 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><>&'"</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>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.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='<>&'"'/>";\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='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
+ 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