From 2b56366922a906082267e37788588ae37bb21a7e Mon Sep 17 00:00:00 2001 From: Atsushi Eno Date: Fri, 6 Jan 2006 03:36:13 +0000 Subject: 2006-01-06 Atsushi Enomoto * XmlValidatingReader.cs : ReadTypedValue() was not working with non-XmlSchemaDatatype types. * XsdValidatingReaderTests.cs : test for ReadTypeValue() with simple type restriction. svn path=/trunk/mcs/; revision=55127 --- mcs/class/System.XML/System.Xml/ChangeLog | 5 +++++ .../System.XML/System.Xml/XmlValidatingReader.cs | 5 +++++ mcs/class/System.XML/Test/System.Xml/ChangeLog | 5 +++++ .../Test/System.Xml/XsdValidatingReaderTests.cs | 25 ++++++++++++++++++++++ 4 files changed, 40 insertions(+) (limited to 'mcs/class/System.XML') diff --git a/mcs/class/System.XML/System.Xml/ChangeLog b/mcs/class/System.XML/System.Xml/ChangeLog index 18062f3d66c..82eca321b54 100644 --- a/mcs/class/System.XML/System.Xml/ChangeLog +++ b/mcs/class/System.XML/System.Xml/ChangeLog @@ -1,3 +1,8 @@ +2006-01-06 Atsushi Enomoto + + * XmlValidatingReader.cs : ReadTypedValue() was not working with + non-XmlSchemaDatatype types. + 2006-01-05 Gert Driesen * XmlTextWriter.cs: Modified WriteWhitespace to throw ArgumentException diff --git a/mcs/class/System.XML/System.Xml/XmlValidatingReader.cs b/mcs/class/System.XML/System.Xml/XmlValidatingReader.cs index 8a971627951..8b22eb6a31e 100644 --- a/mcs/class/System.XML/System.Xml/XmlValidatingReader.cs +++ b/mcs/class/System.XML/System.Xml/XmlValidatingReader.cs @@ -547,6 +547,11 @@ namespace System.Xml if (dtdReader == null) return null; XmlSchemaDatatype dt = schemaInfo.SchemaType as XmlSchemaDatatype; + if (dt == null) { + XmlSchemaType st = schemaInfo.SchemaType as XmlSchemaType; + if (st != null) + dt = st.Datatype; + } if (dt == null) return null; switch (NodeType) { diff --git a/mcs/class/System.XML/Test/System.Xml/ChangeLog b/mcs/class/System.XML/Test/System.Xml/ChangeLog index 8d80f6e5735..69ad13b7d2e 100644 --- a/mcs/class/System.XML/Test/System.Xml/ChangeLog +++ b/mcs/class/System.XML/Test/System.Xml/ChangeLog @@ -1,3 +1,8 @@ +2006-01-06 Atsushi Enomoto + + * XsdValidatingReaderTests.cs : test for ReadTypeValue() with simple + type restriction. + 2006-01-05 Gert Driesen * XmlElementTests.cs: Improved tests for setting prefix to null diff --git a/mcs/class/System.XML/Test/System.Xml/XsdValidatingReaderTests.cs b/mcs/class/System.XML/Test/System.Xml/XsdValidatingReaderTests.cs index 6846a6b70a3..407aabb6a16 100644 --- a/mcs/class/System.XML/Test/System.Xml/XsdValidatingReaderTests.cs +++ b/mcs/class/System.XML/Test/System.Xml/XsdValidatingReaderTests.cs @@ -236,5 +236,30 @@ namespace MonoTests.System.Xml while (!vr.EOF) vr.Read (); } + + [Test] + public void ReadTypedValueSimpleTypeRestriction () + { + string xml = "xx"; + string xsd = @" + + + + + + + + +"; + XmlTextReader xir = + new XmlTextReader (xml, XmlNodeType.Document, null); + XmlTextReader xsr = + new XmlTextReader (xsd, XmlNodeType.Document, null); + XmlValidatingReader vr = new XmlValidatingReader (xir); + vr.Schemas.Add (XmlSchema.Read (xsr, null)); + vr.Read (); // root + AssertEquals ("xx", vr.ReadTypedValue ()); + AssertEquals (XmlNodeType.EndElement, vr.NodeType); + } } } -- cgit v1.2.3