+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
+ significantly improves performance wrt empty text nodes.
+
+2006-01-10 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngValidatingReader.cs :
+ - Split memoization support things into MemoizationStore class.
+ - Split single memo ArrayList into a couple of Hashtables and
+ ArrayLists which memoize each kind of derivative results.
+ - Introduced StartAttDeriv() and EndAttDeriv() to replace AttDeriv()
+ and memoize results efficiently. It is textually written in the
+ "derivative algorithm", but not formally specified.
+ - Introduced IsTextValueDependent and EmptyTextDeriv() to
+ differentiate those patterns which results differ depending on
+ the text value and those which doesn't.
+ Those EmptyTextDeriv results are memoized.
+
+2006-01-10 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Misc.cs : NormalizeWhitespace() was creating extraneous char[] and
+ it could be heavily called depending on patterns.
+ * RelaxngDefaultDatatypes.cs : avoid extraneous call to
+ NormalizeWhitespace().
+
+2006-01-05 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngValidatingReader.cs :
+ - weak match 3 in Section 6.2.7 was missing (in derivative, it is
+ childrenDeriv cx p [] = childrenDeriv cx p [(TextNode "")] ).
+ - uncommented out whitespace handling in TextOnlyDeriv (it is
+ "in if whitespace s then choice p p1 else p1" in derivative).
+ - MixedTextDeriv() is not fixed to not require string argument.
+ * XsdDatatypeProvider.cs : call Read() after ReadTypedValue().
+
+2006-01-04 Alexandre Miguel Pedro Gomes <alexmipego@gmail.com>
+
+ * RelaxngValidatingReader.cs: fix typo
+
+2006-01-04 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngValidatingReader.cs :
+ - Simplified CreateValidationError().
+ - Don't validate 1) whitespaces outside element and 2) whitespaces
+ which do not consist of text only content.
+ - Implemented "memoization":
+ http://www.thaiopensource.com/relaxng/derivative.html#Memoization
+ - with related to memoization, use new TextOnlyDeriv() and
+ MixedTextDeriv() to validate texts. See also RdpPattern changes.
+ * RelaxngGrammar.cs : don't update pool tables for static instances.
+
+2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Misc.cs RelaxngDatatype.cs RelaxngPattern.cs RelaxngException.cs
+ RelaxngMergedProvider.cs RelaxngPatternType.cs RelaxngReader.cs
+ RelaxngDefaultDatatypes.cs XsdDatatypeProvider.cs
+ RelaxngValidatingReader.cs RelaxngDatatypeProvider.cs
+ RelaxngGrammar.cs RelaxngNameClass.cs :
+
+ This is the smarter way to set eol-style without messing code
+ history.
+
+2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngDatatype.cs RelaxngPattern.cs RelaxngException.cs
+ RelaxngMergedProvider.cs RelaxngPatternType.cs RelaxngReader.cs
+ RelaxngDefaultDatatypes.cs XsdDatatypeProvider.cs
+ RelaxngValidatingReader.cs RelaxngDatatypeProvider.cs
+ RelaxngGrammar.cs RelaxngNameClass.cs :
+ turned out that they all have LF on copyright lines while they are
+ written to have CRLF.
+
+2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
+
+ * Misc.cs : it has inconsistent newlines. Removed unused code.
+
+2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngGrammar.cs : A constraint in 4.18 that grammar must have at
+ least one start element was missing. This fixes test #199 and #200.
+
+2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngValidatingReader.cs : validate whitespaces as text nodes. It
+ rather invalidated some valid documents incorrectly (since it kept
+ text pattern remaining). This fixed following tests: 237/2.v.xml,
+ 256/2.i.xml, 258/2.i.xml, 261/1.v.xml, 261/3.v.xml, 261/4.v.xml,
+ 268/2.v.xml and 269/2.v.xml, while it exposed bugs on 260/2.i.xml
+ and 261/6.i.xml (they are not regressions).
+
+2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
+
+ * XsdDatatypeProvider.cs : Namespace remapping was required to make
+ simple type restriction work fine. This fixes test #261/1.v.xml,
+ #268/2.v.xml and #269/2.v.xml.
+
+2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngValidatingReader.cs : it needs to cache text nodes to allow
+ split texts by such nodes as comments or processing instructions.
+ This fixes test #268 and #269.
+
+2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngGrammar.cs : expand refs before checking content pattern.
+
+2005-12-16 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngPattern.cs : RelaxngData and RelaxngValue was writing QName
+ instead of NCName for type attribute (wrong).
+
+2005-12-16 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngPattern.cs : in WriteCompact(), use WriteNamespace() to
+ let RncWriter handle namespace output by itself.
+
+2005-09-20 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngValidatingReader.cs : added explicit error message for
+ attribute XmlReader validation (spec section 7.1.5 explicitly
+ prohibits start//attribute so such validation never happens).
+ * RelaxngGrammar.cs : name class analysis is now done inside
+ CheckConstraints(), so nothing to add here.
+ * RelaxngPattern.cs : (RdpUnresolvedRef) now GetLabels() could be
+ invoked here, so just ignore.
+
+2005-07-31 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngGrammar.cs : spec 7.3 check is kinda implemented but cannot
+ verify now because of weird exception handling in the runtime.
+
+2005-06-07 Atsushi Enomoto <atsushi@ximian.com>
+
+ * RelaxngReader.cs : When ReadPattern() if no valid pattern appears
+ then raise an error. In Read() when there are only non RELAX NG
+ elements it resulted in an infinite loop.
+
2005-04-06 Atsushi Enomoto <atsushi@ximian.com>
* RelaxngPattern.cs : fixed incorrect use of virtual.