New tests.
[mono.git] / mcs / class / System.XML / System.Xml / DTDValidatingReader2.cs
index 2a56bc8efd3a16528301b4a65303fa4f7bde5919..bfc183beb7d5fe7b10e0e678c7ce3ca213df04d7 100644 (file)
@@ -95,9 +95,7 @@ namespace Mono.Xml
                internal DTDValidatingReader (XmlReader reader,
                        XmlValidatingReader validatingReader)
                {
-                       IHasXmlParserContext container = reader as IHasXmlParserContext;
-                       this.reader = new EntityResolvingXmlReader (reader,
-                               container != null ? container.ParserContext : null);
+                       this.reader = new EntityResolvingXmlReader (reader);
                        this.sourceTextReader = reader as XmlTextReader;
                        elementStack = new Stack ();
                        automataStack = new Stack ();
@@ -414,8 +412,12 @@ namespace Mono.Xml
 
                private bool ReadContent ()
                {
-                       if (reader.EOF)
+                       switch (reader.ReadState) {
+                       case ReadState.Closed:
+                       case ReadState.Error:
+                       case ReadState.EndOfFile:
                                return false;
+                       }
                        if (popScope) {
                                nsmgr.PopScope ();
                                popScope = false;
@@ -559,11 +561,6 @@ namespace Mono.Xml
                        }
                }
 
-               private XmlException NotWFError (string message)
-               {
-                       return new XmlException (this as IXmlLineInfo, BaseURI, message);
-               }
-
                private void HandleError (string message, XmlSeverityType severity)
                {
                        if (validatingReader != null &&
@@ -969,7 +966,12 @@ namespace Mono.Xml
                        }
                }
 
-               public override bool ReadAttributeValue ()
+#if MOONLIGHT
+               internal
+#else
+               public
+#endif
+               override bool ReadAttributeValue ()
                {
                        if (consumedAttribute)
                                return false;
@@ -986,7 +988,12 @@ namespace Mono.Xml
                                return reader.ReadAttributeValue ();
                }
 
-               public override void ResolveEntity ()
+#if MOONLIGHT
+               internal
+#else
+               public
+#endif
+               override void ResolveEntity ()
                {
                        reader.ResolveEntity ();
                }
@@ -1024,7 +1031,12 @@ namespace Mono.Xml
                        get { return reader.EOF; }
                }
 
-               public override bool HasValue {
+#if MOONLIGHT
+               internal
+#else
+               public
+#endif
+               override bool HasValue {
                        get {
                                return currentAttribute >= 0 ? true :
                                        currentTextValue != null ? true :
@@ -1190,7 +1202,7 @@ namespace Mono.Xml
                        valueBuilder.Replace ('\n', ' ');
                        valueBuilder.Replace ('\t', ' ');
                        try {
-                               if (def.Datatype.TokenizedType == XmlTokenizedType.CDATA)
+                               if (def == null || def.Datatype.TokenizedType == XmlTokenizedType.CDATA)
                                        return valueBuilder.ToString ();
                                for (int i=0; i < valueBuilder.Length; i++) {
                                        if (valueBuilder [i] != ' ')