1 2009-02-23 Atsushi Enomoto <atsushi@ximian.com>
3 * RdpPattern.cs : added "Anything" which is used in error recovery
6 2007-12-14 Atsushi Enomoto <atsushi@ximian.com>
8 * RdpPattern.cs : For ContainsText() (for interleave text/text
9 constraint check), element pattern should return false.
12 2007-04-18 Atsushi Enomoto <atsushi@ximian.com>
14 * RdpPatterns.cs : inside elements, reset oneOrMore[Group] flags in
17 2006-02-02 Atsushi Enomoto <atsushi@ximian.com>
19 * RdpPatterns.cs : After profiling in depth, finally I found the
20 source of the worst perf. problem in the code - return x for
22 It now validates 5MB of OpenDocument specification content.xml,
23 which only Jing could do.
25 2006-01-16 Atsushi Enomoto <atsushi@ximian.com>
27 * RdpObjects.cs : fixed warnings.
29 2006-01-16 Atsushi Enomoto <atsushi@ximian.com>
31 * RdpPatterns.cs : RdpOneOrMore.EmptyTextDeriv() should be "override".
32 RdpList.EmptyTextDeriv() (which was also virtual incorrectly) was
33 removed since the code was in wrong assumption.
34 * Util.cs : debug string now contains data and dataExcept info.
36 2006-01-15 Atsushi Enomoto <atsushi@ximian.com>
38 * RdpPatterns.cs : lazy evaluate Group branches. If left hand is
39 notAllowed, the returned value is always NotAllowed, no need to
40 compute another branch.
42 2006-01-13 Atsushi Enomoto <atsushi@ximian.com>
44 * RdpObjects.cs, RdpPatterns.cs : introduced "IsContextDependent"
45 optimization; when a pattern is (namespace) context independent
46 (almost all cases except for QName validation), new TextDeriv()
47 overload that takes MemoizationStore memoizes TextDeriv results.
49 2006-01-12 Atsushi Enomoto <atsushi@ximian.com>
52 Introduced EmptyTextDeriv() so that the results could be memoized.
54 2006-01-10 Atsushi Enomoto <atsushi@ximian.com>
57 - Added StartAttDeriv(), EndAttDeriv() and IsTextValueDependent.
58 (See corresponding changes in RelaxngValidatingReader.cs).
59 - Added a bunch of derivative method overloads to receive
60 MemoizationStore and memoize results efficiently.
62 2006-01-05 Atsushi Enomoto <atsushi@ximian.com>
65 - Fixed RdpPattern.TextDeriv() and MixedTextDeriv() to not allow
66 whitespaces incorrectly.
67 - Fixed MixedTextDeriv() to not require string argument.
68 - Erased commented code.
69 - in listDerivInternal(), skip empty strings.
70 - ValueMatch() should allow whitespaces if the pattern is nullable
71 (as defined in derivative).
72 - Replaced MakeChoice()/MakeGroup()/MakeInterleave()/MakeAfter()
73 in TextOnlyDeriv() and MixedTextDeriv(). They should not be
74 constructions but should be functions (thus, member methods).
75 - Fixed Nullable in RdpData and RdpValue to conform to the
76 derivative algorithm (it incorrectly extended to return false
77 for RELAX NG predefined datatypes).
79 2006-01-04 Atsushi Enomoto <atsushi@ximian.com>
82 - Implemented textOnlyDeriv and mixedTextDeriv of "memoization".
83 Details are described in the "derivative" algorithm:
84 http://www.thaiopensource.com/relaxng/derivative.html#Memoization
85 - Added MakeChoiceLeaf() to implement "choice-leaves":
86 http://www.thaiopensource.com/relaxng/derivative.html#Avoiding_exponential_blowup
87 - To intern effectively, reorder choice and interleave contents by
89 - Avoid extra pattern creation with related to empty and notAllowed
90 as one hand of binary branches.
92 2006-01-03 Atsushi Enomoto <atsushi@ximian.com>
94 * RdpPattern.cs : reduced RdpFlip instantiation. Share patternPool
95 only when it does not exist.
97 2006-01-03 Atsushi Enomoto <atsushi@ximian.com>
99 * Util.cs, RdpPatterns.cs : optimization. Removed extraneous
100 delegate instantiation. Avoid using enum for HashTable keys.
102 2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
104 * Util.cs RdpObjects.cs RdpContentType.cs RdpNameClasses.cs
107 ... and svn:eol-style as well, since there is exactly no one else
108 who develops this assembly and messes no one else.
110 2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
112 * Util.cs RdpObjects.cs RdpContentType.cs RdpNameClasses.cs
115 Ugh, seems like svn server shows different diffs than that of
116 client. Anyways here I fixed all mixed line endings.
118 2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
120 * RdpPatterns.cs : in ValueMatch() it should not strip whitespaces
121 which could be validated. This fixes test #256/2.i.xml.
123 2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
125 * RdpPatterns.cs : oneOrMore ancestor check for anyName/nsName in
126 section 7.3 was missing. This fixes test #357, #358 and #359.
127 * RdpNameClass.cs : added HasInfiniteName property to RdpNameClass.
129 2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
131 * RdpPattern.cs, RdpUtil.cs : reimplemented name class analysis to
132 not create extraneous QName instances. This also fixes some weird
133 bugs (test #362 and #363).
135 2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
137 * RdpPattern.cs : Checking interleave restriction in section 7.4 with
138 PatternType was not insufficient. Now I use ContainsText(). It fixes
141 2005-12-20 Atsushi Enomoto <atsushi@ximian.com>
143 * RdpPattern.cs : cache ContentType and save speed.
145 2005-09-20 Atsushi Enomoto <atsushi@ximian.com>
147 * Util.cs : Added name class analysis support. The algorithm is at
148 http://www.thaiopensource.com/relaxng/nameclass.html .
150 - added CheckNameOverlap() for group and interleave to do name class
151 analysis (spec 7.3 and 7.4).
152 - Removed CheckAttributeDuplicates(). Now name class analysis is
153 implemented in CheckNameOverlap().
154 - Added additional bool parameter to GetLabels() to collect
155 RdpNameClass instances instead of XmlQualifiedName instances.
157 2005-07-31 Atsushi Enomoto <atsushi@ximian.com>
159 * RdpPattern.cs : GetLabels() for RdpGroup should check attributes
160 when the left branch is not nullable (it works like an interleave).
161 Implemented spec 7.3 attribute check (though not enabled for now).
163 2005-04-11 Atsushi Enomoto <atsushi@ximian.com>
165 * Util.cs : tiny debug string fix.
167 2005-03-01 Atsushi Enomoto <atsushi@ximian.com>
169 * RdpPattern.cs : In "textDeriv(group p1 p2) s", "nullable p1" is
170 incorrectly computed as "nullable p".
172 2005-02-06 Atsushi Enomoto <atsushi@ximian.com>
174 * RdpObjects.cs : provide error type name. removed commented code block.
176 2005-02-06 Atsushi Enomoto <atsushi@ximian.com>
178 * RdpPattern.cs : MakeOneOrMore() did not always set up internal table.
180 2004-12-06 Atsushi Enomoto <atsushi@ximian.com>
182 * Util.cs : trivial debug string fix.
183 * RdpPattern.cs : trivial formatting fix.
185 2004-12-06 Atsushi Enomoto <atsushi@ximian.com>
187 * RdpPattern.cs : The last attribute stuff broke usual validation wrt
190 2004-12-06 Atsushi Enomoto <atsushi@ximian.com>
192 * RdpPattern.cs : fixed setupTable(). Avoid boxing.
194 2004-12-05 Atsushi Enomoto <atsushi@ximian.com>
196 * RdpPattern.cs : RdpAttribute now omits value check when the argument
197 value is null. It is useful to get labels.
199 2004-12-05 Atsushi Enomoto <atsushi@ximian.com>
201 * RdpPattern.cs : added GetLabels().
203 2004-06-25 Atsushi Enomoto <atsushi@ximian.com>
205 * RdpContentType.cs, RdpNameClass.cs, RdpObjects.cs, RdpPatterns.cs,
206 Util.cs : added novell license term.
208 2004-06-21 Atsushi Enomoto <atsushi@ximian.com>
210 * RdpPatterns.cs : Fixed ExpandRef() that caused incorrect nest error.
212 2004-06-17 Atsushi Enomoto <atsushi@ximian.com>
214 * RdpPatterns.cs : Quick workaround for infinite loop happening in
215 some kind of recursive expansion.
217 2004-03-12 Atsushi Enomoto <atsushi@ximian.com>
219 * RdpPatterns.cs : Fixed TextDeriv() to allow whitespace text nodes
220 except for Data and Value (though they are overridden).
222 2004-02-25 Atsushi Enomoto <atsushi@ximian.com>
224 * Added RdpContextType.cs.
228 Util.cs : radical design change (too many things to write up).
230 2003-05-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
232 * RdpPattern.cs : Some method name capitalization.
233 Fixed RdpInterleave.StartTagOpenDeriv() which is logically incorrect.
235 2003-05-05 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
237 * RdpPattern.cs : added RdpAttribute.expandRef(). UnresolvedRef had
238 remained in attribute patterns.
240 2003-04-29 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
243 * added ChangeLog, RdpNameClasses.cs, RdpObjects.cs, RdpPatterns.cs