2009-02-23 Atsushi Enomoto * RdpPattern.cs : added "Anything" which is used in error recovery support. 2007-12-14 Atsushi Enomoto * RdpPattern.cs : For ContainsText() (for interleave text/text constraint check), element pattern should return false. Fixed bug #347945. 2007-04-18 Atsushi Enomoto * RdpPatterns.cs : inside elements, reset oneOrMore[Group] flags in CheckConstraints(). 2006-02-02 Atsushi Enomoto * RdpPatterns.cs : After profiling in depth, finally I found the source of the worst perf. problem in the code - return x for (choice x x). It now validates 5MB of OpenDocument specification content.xml, which only Jing could do. 2006-01-16 Atsushi Enomoto * RdpObjects.cs : fixed warnings. 2006-01-16 Atsushi Enomoto * RdpPatterns.cs : RdpOneOrMore.EmptyTextDeriv() should be "override". RdpList.EmptyTextDeriv() (which was also virtual incorrectly) was removed since the code was in wrong assumption. * Util.cs : debug string now contains data and dataExcept info. 2006-01-15 Atsushi Enomoto * RdpPatterns.cs : lazy evaluate Group branches. If left hand is notAllowed, the returned value is always NotAllowed, no need to compute another branch. 2006-01-13 Atsushi Enomoto * RdpObjects.cs, RdpPatterns.cs : introduced "IsContextDependent" optimization; when a pattern is (namespace) context independent (almost all cases except for QName validation), new TextDeriv() overload that takes MemoizationStore memoizes TextDeriv results. 2006-01-12 Atsushi Enomoto * RdpPattern.cs : Introduced EmptyTextDeriv() so that the results could be memoized. 2006-01-10 Atsushi Enomoto * RdpPatterns.cs : - Added StartAttDeriv(), EndAttDeriv() and IsTextValueDependent. (See corresponding changes in RelaxngValidatingReader.cs). - Added a bunch of derivative method overloads to receive MemoizationStore and memoize results efficiently. 2006-01-05 Atsushi Enomoto * RdpPatterns.cs : - Fixed RdpPattern.TextDeriv() and MixedTextDeriv() to not allow whitespaces incorrectly. - Fixed MixedTextDeriv() to not require string argument. - Erased commented code. - in listDerivInternal(), skip empty strings. - ValueMatch() should allow whitespaces if the pattern is nullable (as defined in derivative). - Replaced MakeChoice()/MakeGroup()/MakeInterleave()/MakeAfter() in TextOnlyDeriv() and MixedTextDeriv(). They should not be constructions but should be functions (thus, member methods). - Fixed Nullable in RdpData and RdpValue to conform to the derivative algorithm (it incorrectly extended to return false for RELAX NG predefined datatypes). 2006-01-04 Atsushi Enomoto * RdpPattern.cs : - Implemented textOnlyDeriv and mixedTextDeriv of "memoization". Details are described in the "derivative" algorithm: http://www.thaiopensource.com/relaxng/derivative.html#Memoization - Added MakeChoiceLeaf() to implement "choice-leaves": http://www.thaiopensource.com/relaxng/derivative.html#Avoiding_exponential_blowup - To intern effectively, reorder choice and interleave contents by hash code. - Avoid extra pattern creation with related to empty and notAllowed as one hand of binary branches. 2006-01-03 Atsushi Enomoto * RdpPattern.cs : reduced RdpFlip instantiation. Share patternPool only when it does not exist. 2006-01-03 Atsushi Enomoto * Util.cs, RdpPatterns.cs : optimization. Removed extraneous delegate instantiation. Avoid using enum for HashTable keys. 2005-12-27 Atsushi Enomoto * Util.cs RdpObjects.cs RdpContentType.cs RdpNameClasses.cs RdpPatterns.cs : ... and svn:eol-style as well, since there is exactly no one else who develops this assembly and messes no one else. 2005-12-27 Atsushi Enomoto * Util.cs RdpObjects.cs RdpContentType.cs RdpNameClasses.cs RdpPatterns.cs : Ugh, seems like svn server shows different diffs than that of client. Anyways here I fixed all mixed line endings. 2005-12-27 Atsushi Enomoto * RdpPatterns.cs : in ValueMatch() it should not strip whitespaces which could be validated. This fixes test #256/2.i.xml. 2005-12-27 Atsushi Enomoto * RdpPatterns.cs : oneOrMore ancestor check for anyName/nsName in section 7.3 was missing. This fixes test #357, #358 and #359. * RdpNameClass.cs : added HasInfiniteName property to RdpNameClass. 2005-12-27 Atsushi Enomoto * RdpPattern.cs, RdpUtil.cs : reimplemented name class analysis to not create extraneous QName instances. This also fixes some weird bugs (test #362 and #363). 2005-12-27 Atsushi Enomoto * RdpPattern.cs : Checking interleave restriction in section 7.4 with PatternType was not insufficient. Now I use ContainsText(). It fixes testcase #371. 2005-12-20 Atsushi Enomoto * RdpPattern.cs : cache ContentType and save speed. 2005-09-20 Atsushi Enomoto * Util.cs : Added name class analysis support. The algorithm is at http://www.thaiopensource.com/relaxng/nameclass.html . * RdpPattern.cs : - added CheckNameOverlap() for group and interleave to do name class analysis (spec 7.3 and 7.4). - Removed CheckAttributeDuplicates(). Now name class analysis is implemented in CheckNameOverlap(). - Added additional bool parameter to GetLabels() to collect RdpNameClass instances instead of XmlQualifiedName instances. 2005-07-31 Atsushi Enomoto * RdpPattern.cs : GetLabels() for RdpGroup should check attributes when the left branch is not nullable (it works like an interleave). Implemented spec 7.3 attribute check (though not enabled for now). 2005-04-11 Atsushi Enomoto * Util.cs : tiny debug string fix. 2005-03-01 Atsushi Enomoto * RdpPattern.cs : In "textDeriv(group p1 p2) s", "nullable p1" is incorrectly computed as "nullable p". 2005-02-06 Atsushi Enomoto * RdpObjects.cs : provide error type name. removed commented code block. 2005-02-06 Atsushi Enomoto * RdpPattern.cs : MakeOneOrMore() did not always set up internal table. 2004-12-06 Atsushi Enomoto * Util.cs : trivial debug string fix. * RdpPattern.cs : trivial formatting fix. 2004-12-06 Atsushi Enomoto * RdpPattern.cs : The last attribute stuff broke usual validation wrt global attributes. 2004-12-06 Atsushi Enomoto * RdpPattern.cs : fixed setupTable(). Avoid boxing. 2004-12-05 Atsushi Enomoto * RdpPattern.cs : RdpAttribute now omits value check when the argument value is null. It is useful to get labels. 2004-12-05 Atsushi Enomoto * RdpPattern.cs : added GetLabels(). 2004-06-25 Atsushi Enomoto * RdpContentType.cs, RdpNameClass.cs, RdpObjects.cs, RdpPatterns.cs, Util.cs : added novell license term. 2004-06-21 Atsushi Enomoto * RdpPatterns.cs : Fixed ExpandRef() that caused incorrect nest error. 2004-06-17 Atsushi Enomoto * RdpPatterns.cs : Quick workaround for infinite loop happening in some kind of recursive expansion. 2004-03-12 Atsushi Enomoto * RdpPatterns.cs : Fixed TextDeriv() to allow whitespace text nodes except for Data and Value (though they are overridden). 2004-02-25 Atsushi Enomoto * Added RdpContextType.cs. * RdpNameClasses.cs, RdpObjects.cs, RdpPatterns.cs, Util.cs : radical design change (too many things to write up). 2003-05-19 Atsushi Enomoto * RdpPattern.cs : Some method name capitalization. Fixed RdpInterleave.StartTagOpenDeriv() which is logically incorrect. 2003-05-05 Atsushi Enomoto * RdpPattern.cs : added RdpAttribute.expandRef(). UnresolvedRef had remained in attribute patterns. 2003-04-29 Atsushi Enomoto * Started. * added ChangeLog, RdpNameClasses.cs, RdpObjects.cs, RdpPatterns.cs and Util.cs.