+2010-07-23 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngPattern.cs : inherit XmlResolver to parsed rng component.
+ Fixed bug #622630.
+
+2010-06-25 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngReader.cs : don't use Name, use LocalName. Fixed bug #617264.
+
+2009-02-23 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngValidatingReader.cs : implemented error recovery feature.
+ Use InvalidNodeFound event (of type RelaxngValidationEventHandler)
+ to handle validation error like ValidationEventHandler in
+ System.Xml.XmlSchema.
+
+2009-02-19 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XsdDatatypeProvider.cs : detect grammar-level error in type usage
+ at compile time.
+
+2009-02-17 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XsdDatatypeProvider.cs : workaround .NET/Mono Regex bug that
+ does not handle \p{Latin-1Supplement} to work with OOXML grammar.
+
+2009-01-20 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngReader.cs : fixed wrong text skip and ns/datatypeLibrary
+ stack pop. Fixed bug #463267.
+
+2009-01-20 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngGrammar.cs : fix confused use of datatype provider property.
+ Fixed bug #463264. Based on the patch by Mark Junker.
+
+2008-11-11 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngPattern.cs : handle inherited default namespace in compact
+ syntax as expected.
+
+2008-08-25 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngPattern.cs : unlike "include" element, "external" element
+ was always resolved as XML syntax, and hence blocked use of
+ external element in compact syntax.
+
+2007-12-27 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngPattern.cs : (RelaxngInclude) when a relative Uri is
+ specified as its BaseUri, make it into an absolute path and
+ then resolve the URI.
+
+2007-12-17 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngPattern.cs : (RelaxngInclude) when it is constructed from
+ the compact syntax, resolve included file as compact syntax too.
+ * RelaxngGrammar.cs : to make above possible, add a new
+ IsSourceCompactSyntax field that is to be set in RncParser.
+
+2006-04-19 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngValidatingReader.cs : (.ctor) reject null pattern.
+ To filter xmlns attributes out, just use NamespaceURI.
+
+2006-04-07 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngPattern.cs : use new RelaxngReader .ctor () with XmlResolver
+ argument. Fix by Alexandre Alapetite.
+
+2006-04-03 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngPattern.cs : set XmlResolver that is passed by
+ RelaxngPattern.Read() as its property.
+
+2006-03-29 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngDatatype.cs : Compare() should not be just a stupid object
+ comparison, but should rather be type-dependent equality.
+ Thanks to Alexandre.
+
+2006-03-28 Atsushi Enomoto <atsushi@ximian.com>
+
+ Based on the patch by Alexandre Alapetite:
+ * RelaxngException.cs : added another constructor that takes
+ pattern, string and innerException.
+ * RelaxngReader.cs
+ RelaxngPattern.cs :
+ - wrap xml resolution error in RelaxngInclude.Read(). This change
+ is argurable but might be convenient for certain users.
+ - Added another constructor to RelaxngReader, and another overload
+ for RelaxngPattern.Read(), otherwise RelaxngPattern.Read() can
+ never use different XmlResolvers.
+
+2006-03-27 Atsushi Enomoto <atsushi@ximian.com>
+
+ Patch by Alexandre Alapetite (http://alexandre.alapetite.net/cv/)
+ * RelaxngPattern.cs : RelaxngInclude.Read() could be NRE when
+ there is an error in XmlTextReader .ctor().
+ * RelaxngValidatingReader.cs : If the input XmlReader is already
+ positioned on the first node to validate, skip Read() here.
+
+2006-02-02 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngValidatingReader.cs : removed extra tables.
+
+2006-01-16 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngValidatingReader.cs : fixed warning.
+
+2006-01-16 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngValidatingReader.cs : just keep previous TextDeriv() result
+ for each pattern; they are mostly not reused. It makes validator
+ about 30% faster in certain validation and reduces memory use.
+
+2006-01-13 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngValidatingReader.cs : actually using Hashtable of Hashtable
+ (instead of ArrayList of custom MemoizationStart class) is much
+ better for performance. It makes StartTagOpenDeriv and
+ StartAttDeriv more than 10x faster than before.
+
+2006-01-13 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngDatatype.cs, RelaxngDefaultDatatypes.cs,
+ XsdDatatypeProvider.cs, RelaxngValidatingReader.cs :
+ Memoize TextDeriv() results for context independent inputs.
+
+ Due to the API freeze they are kept as internal virtual for now.
+
2006-01-12 Atsushi Enomoto <atsushi@ximian.com>
* RelaxngValidatingReader.cs : Use RdpPattern.EmptyTextDeriv(). It