Jelajahi Sumber

2009-01-30 Atsushi Enomoto <[email protected]>

	* XmlSchemaValidatingReader.cs : implement IHasXmlParserContext to
	  pass possible DTD information.

	* DTDValidatingReader2.cs, EntityResolvingXmlReader.cs : simplify
	  parsercontext provision.
	* XmlValidatingReader.cs : expand parser context provision to
	  non-dtdvalidating readers.


svn path=/trunk/mcs/; revision=125053
Atsushi Eno 17 tahun lalu
induk
melakukan
0fc59854a9

+ 5 - 0
mcs/class/System.XML/Mono.Xml.Schema/ChangeLog

@@ -1,3 +1,8 @@
+2009-01-30  Atsushi Enomoto  <[email protected]>
+
+	* XmlSchemaValidatingReader.cs : implement IHasXmlParserContext to
+	  pass possible DTD information.
+
 2008-12-09  Atsushi Enomoto  <[email protected]>
 
 	* XsdValidatingReader.cs : skip text validation under xs:any.

+ 1 - 3
mcs/class/System.XML/Mono.Xml.Schema/XmlSchemaValidatingReader.cs

@@ -77,7 +77,7 @@ using ValException = System.Xml.Schema.XmlSchemaValidationException;
 namespace Mono.Xml.Schema
 {
 	internal class XmlSchemaValidatingReader : XmlReader, IXmlLineInfo,
-		IXmlSchemaInfo, IXmlNamespaceResolver
+		IXmlSchemaInfo, IXmlNamespaceResolver, IHasXmlParserContext
 	{
 		static readonly XsAttr [] emptyAttributeArray =
 			new XsAttr [0];
@@ -363,11 +363,9 @@ namespace Mono.Xml.Schema
 			}
 		}
 
-#if !NON_MONO
 		public XmlParserContext ParserContext {
 			get { return XmlSchemaUtil.GetParserContext (reader); }
 		}
-#endif
 
 		public override string Prefix {
 			get {

+ 7 - 0
mcs/class/System.XML/System.Xml/ChangeLog

@@ -1,3 +1,10 @@
+2009-01-30  Atsushi Enomoto  <[email protected]>
+
+	* DTDValidatingReader2.cs, EntityResolvingXmlReader.cs : simplify
+	  parsercontext provision.
+	* XmlValidatingReader.cs : expand parser context provision to
+	  non-dtdvalidating readers.
+
 2009-01-22  Atsushi Enomoto  <[email protected]>
 
 	* XmlXapResolver.cs : fix assembly qualified names,

+ 1 - 3
mcs/class/System.XML/System.Xml/DTDValidatingReader2.cs

@@ -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 ();

+ 6 - 2
mcs/class/System.XML/System.Xml/EntityResolvingXmlReader.cs

@@ -55,10 +55,14 @@ namespace Mono.Xml
 		bool inside_attr;
 		bool do_resolve;
 
-		public EntityResolvingXmlReader (XmlReader source, XmlParserContext context)
+		public EntityResolvingXmlReader (XmlReader source)
 		{
 			this.source = source;
-			this.context = context;
+			IHasXmlParserContext container = source as IHasXmlParserContext;
+			if (container != null)
+				this.context = container.ParserContext;
+			else
+				this.context = new XmlParserContext (source.NameTable, new XmlNamespaceManager (source.NameTable), null, XmlSpace.None);
 		}
 
 		EntityResolvingXmlReader (XmlReader entityContainer,

+ 6 - 1
mcs/class/System.XML/System.Xml/XmlValidatingReader.cs

@@ -383,7 +383,12 @@ namespace System.Xml
 		}
 
 		XmlParserContext IHasXmlParserContext.ParserContext {
-			get { return dtdReader != null ? dtdReader.ParserContext : null; }
+			get {
+				if (dtdReader != null)
+					return dtdReader.ParserContext;
+				IHasXmlParserContext i = sourceReader as IHasXmlParserContext;
+				return i != null ? i.ParserContext : null;
+			}
 		}
 
 #if NET_2_0