1 2006-02-02 Atsushi Enomoto <atsushi@ximian.com>
3 * RelaxngValidatingReader.cs : removed extra tables.
5 2006-01-16 Atsushi Enomoto <atsushi@ximian.com>
7 * RelaxngValidatingReader.cs : fixed warning.
9 2006-01-16 Atsushi Enomoto <atsushi@ximian.com>
11 * RelaxngValidatingReader.cs : just keep previous TextDeriv() result
12 for each pattern; they are mostly not reused. It makes validator
13 about 30% faster in certain validation and reduces memory use.
15 2006-01-13 Atsushi Enomoto <atsushi@ximian.com>
17 * RelaxngValidatingReader.cs : actually using Hashtable of Hashtable
18 (instead of ArrayList of custom MemoizationStart class) is much
19 better for performance. It makes StartTagOpenDeriv and
20 StartAttDeriv more than 10x faster than before.
22 2006-01-13 Atsushi Enomoto <atsushi@ximian.com>
24 * RelaxngDatatype.cs, RelaxngDefaultDatatypes.cs,
25 XsdDatatypeProvider.cs, RelaxngValidatingReader.cs :
26 Memoize TextDeriv() results for context independent inputs.
28 Due to the API freeze they are kept as internal virtual for now.
30 2006-01-12 Atsushi Enomoto <atsushi@ximian.com>
32 * RelaxngValidatingReader.cs : Use RdpPattern.EmptyTextDeriv(). It
33 significantly improves performance wrt empty text nodes.
35 2006-01-10 Atsushi Enomoto <atsushi@ximian.com>
37 * RelaxngValidatingReader.cs :
38 - Split memoization support things into MemoizationStore class.
39 - Split single memo ArrayList into a couple of Hashtables and
40 ArrayLists which memoize each kind of derivative results.
41 - Introduced StartAttDeriv() and EndAttDeriv() to replace AttDeriv()
42 and memoize results efficiently. It is textually written in the
43 "derivative algorithm", but not formally specified.
44 - Introduced IsTextValueDependent and EmptyTextDeriv() to
45 differentiate those patterns which results differ depending on
46 the text value and those which doesn't.
47 Those EmptyTextDeriv results are memoized.
49 2006-01-10 Atsushi Enomoto <atsushi@ximian.com>
51 * Misc.cs : NormalizeWhitespace() was creating extraneous char[] and
52 it could be heavily called depending on patterns.
53 * RelaxngDefaultDatatypes.cs : avoid extraneous call to
54 NormalizeWhitespace().
56 2006-01-05 Atsushi Enomoto <atsushi@ximian.com>
58 * RelaxngValidatingReader.cs :
59 - weak match 3 in Section 6.2.7 was missing (in derivative, it is
60 childrenDeriv cx p [] = childrenDeriv cx p [(TextNode "")] ).
61 - uncommented out whitespace handling in TextOnlyDeriv (it is
62 "in if whitespace s then choice p p1 else p1" in derivative).
63 - MixedTextDeriv() is not fixed to not require string argument.
64 * XsdDatatypeProvider.cs : call Read() after ReadTypedValue().
66 2006-01-04 Alexandre Miguel Pedro Gomes <alexmipego@gmail.com>
68 * RelaxngValidatingReader.cs: fix typo
70 2006-01-04 Atsushi Enomoto <atsushi@ximian.com>
72 * RelaxngValidatingReader.cs :
73 - Simplified CreateValidationError().
74 - Don't validate 1) whitespaces outside element and 2) whitespaces
75 which do not consist of text only content.
76 - Implemented "memoization":
77 http://www.thaiopensource.com/relaxng/derivative.html#Memoization
78 - with related to memoization, use new TextOnlyDeriv() and
79 MixedTextDeriv() to validate texts. See also RdpPattern changes.
80 * RelaxngGrammar.cs : don't update pool tables for static instances.
82 2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
84 * Misc.cs RelaxngDatatype.cs RelaxngPattern.cs RelaxngException.cs
85 RelaxngMergedProvider.cs RelaxngPatternType.cs RelaxngReader.cs
86 RelaxngDefaultDatatypes.cs XsdDatatypeProvider.cs
87 RelaxngValidatingReader.cs RelaxngDatatypeProvider.cs
88 RelaxngGrammar.cs RelaxngNameClass.cs :
90 This is the smarter way to set eol-style without messing code
93 2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
95 * RelaxngDatatype.cs RelaxngPattern.cs RelaxngException.cs
96 RelaxngMergedProvider.cs RelaxngPatternType.cs RelaxngReader.cs
97 RelaxngDefaultDatatypes.cs XsdDatatypeProvider.cs
98 RelaxngValidatingReader.cs RelaxngDatatypeProvider.cs
99 RelaxngGrammar.cs RelaxngNameClass.cs :
100 turned out that they all have LF on copyright lines while they are
101 written to have CRLF.
103 2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
105 * Misc.cs : it has inconsistent newlines. Removed unused code.
107 2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
109 * RelaxngGrammar.cs : A constraint in 4.18 that grammar must have at
110 least one start element was missing. This fixes test #199 and #200.
112 2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
114 * RelaxngValidatingReader.cs : validate whitespaces as text nodes. It
115 rather invalidated some valid documents incorrectly (since it kept
116 text pattern remaining). This fixed following tests: 237/2.v.xml,
117 256/2.i.xml, 258/2.i.xml, 261/1.v.xml, 261/3.v.xml, 261/4.v.xml,
118 268/2.v.xml and 269/2.v.xml, while it exposed bugs on 260/2.i.xml
119 and 261/6.i.xml (they are not regressions).
121 2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
123 * XsdDatatypeProvider.cs : Namespace remapping was required to make
124 simple type restriction work fine. This fixes test #261/1.v.xml,
125 #268/2.v.xml and #269/2.v.xml.
127 2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
129 * RelaxngValidatingReader.cs : it needs to cache text nodes to allow
130 split texts by such nodes as comments or processing instructions.
131 This fixes test #268 and #269.
133 2005-12-27 Atsushi Enomoto <atsushi@ximian.com>
135 * RelaxngGrammar.cs : expand refs before checking content pattern.
137 2005-12-16 Atsushi Enomoto <atsushi@ximian.com>
139 * RelaxngPattern.cs : RelaxngData and RelaxngValue was writing QName
140 instead of NCName for type attribute (wrong).
142 2005-12-16 Atsushi Enomoto <atsushi@ximian.com>
144 * RelaxngPattern.cs : in WriteCompact(), use WriteNamespace() to
145 let RncWriter handle namespace output by itself.
147 2005-09-20 Atsushi Enomoto <atsushi@ximian.com>
149 * RelaxngValidatingReader.cs : added explicit error message for
150 attribute XmlReader validation (spec section 7.1.5 explicitly
151 prohibits start//attribute so such validation never happens).
152 * RelaxngGrammar.cs : name class analysis is now done inside
153 CheckConstraints(), so nothing to add here.
154 * RelaxngPattern.cs : (RdpUnresolvedRef) now GetLabels() could be
155 invoked here, so just ignore.
157 2005-07-31 Atsushi Enomoto <atsushi@ximian.com>
159 * RelaxngGrammar.cs : spec 7.3 check is kinda implemented but cannot
160 verify now because of weird exception handling in the runtime.
162 2005-06-07 Atsushi Enomoto <atsushi@ximian.com>
164 * RelaxngReader.cs : When ReadPattern() if no valid pattern appears
165 then raise an error. In Read() when there are only non RELAX NG
166 elements it resulted in an infinite loop.
168 2005-04-06 Atsushi Enomoto <atsushi@ximian.com>
170 * RelaxngPattern.cs : fixed incorrect use of virtual.
172 2005-03-18 Atsushi Enomoto <atsushi@ximian.com>
174 * XsdDatatypeProvider.cs : quick hack to workaround not to be rejected
175 under MS.NET because of NOTATION type (thus, NOTATION type is not
176 available in this provider).
178 2005-03-01 Atsushi Enomoto <atsushi@ximian.com>
180 * RelaxngReader.cs : there was two public namespace constant. One
183 2005-03-01 Atsushi Enomoto <atsushi@ximian.com>
185 * RelaxngPattern.cs : RdpUnresolvedRef should process empty/notAllowed
186 elimination on its referenced pattern.
188 2005-02-27 Atsushi Enomoto <atsushi@ximian.com>
190 * XsdDatatypeProvider.cs : Added simpleType parameter support.
191 * RelaxngValidatingReader.cs : added ReportDetails flag to report all
192 expected element names / attribute names. Removed all unused code.
194 2005-02-06 Atsushi Enomoto <atsushi@ximian.com>
196 * RelaxngReader.cs : ns attribute on root element should also be
197 handled as well as datatypeLibrary.
199 2005-02-06 Atsushi Enomoto <atsushi@ximian.com>
201 * RelaxngReader.cs : it was not handling datatypeLibrary attribute
202 on root element. Added DefaultNamespace handling.
203 * RelaxngGrammar.cs : added DefaultNamespace property.
204 * RelaxngPattern.cs : WriteCompact() now outputs "default namespace =..".
206 2005-01-26 Atsushi Enomoto <atsushi@ximian.com>
208 * RelaxngPattern.cs : fixed 2.0 typo.
210 2005-01-26 Atsushi Enomoto <atsushi@ximian.com>
212 * RelaxngGrammar.cs, RelaxngPattern.cs, RelaxngNameClass.cs :
213 added RelaxngPattern.WriteCompact(TextWriter) and all internal
214 WriteRnc() overrides.
216 2004-12-06 Atsushi Enomoto <atsushi@ximian.com>
218 * RelaxngValidatingReader.cs :
219 - Existing GetLabels() was insufficient to support attribute labels
220 by design (since those state object always reflects the status
221 after Read() and inside Read() attributes are checked and attribute
222 derivatives are consumed). So just made existing stuff as obsolete.
223 - Added object GetCurrentState() that returns RdpPattern wrapper.
224 - Added Emptiable(object state) that returns whether the
225 specified state is emptiable.
226 - Added GetElementLabels(object state) and GetAttributeLabels(object
227 state) that returns the collection of XmlQualifiedName that
228 represents possible element names or attribute names from the
230 - Added AfterOpenStartTag(state,name,ns), OpenStartTag(state,name,
231 ns), AfterAttribute(state, name, ns), Attribute(state,name,ns),
232 AfterCloseStartTag(state), CloseStartTag(state),
233 AfterEndTag(state) and EndTag(state) to simulate state transition.
234 AfterXXX() returns another state instance if the transition was
235 successful or null. XXX() returns bool that indicates if the
236 transition was successful or not and proceeds the state in case
239 2004-12-06 Atsushi Enomoto <atsushi@ximian.com>
241 * RelaxngException.cs : Added new .ctor() that takes RelaxngElementBase
242 to provide target grammar component location.
244 2004-12-06 Atsushi Enomoto <atsushi@ximian.com>
246 * RelaxngNameClass.cs,
249 Added related grammar component location to error message.
250 In RelaxngDefine, Compile() caused error on duplicate key on
252 * RelaxngReader.cs : In GetStrippedAttribute(), use
253 GetAttribute(string,string).
255 2004-12-06 Atsushi Enomoto <atsushi@ximian.com>
257 * RelaxngException.cs : don't store debug string. It was so harmful
260 2004-12-05 Atsushi Enomoto <atsushi@ximian.com>
262 * RelaxngValidatingReader.cs :
263 - Better way to expose API; use ExpectedElements and
264 ExpectedAttributes of type ICollection. Now GetLabels is obsolete.
265 - Implemented notAllowed check. It might be too heavy since it
266 checks all the QNames returned by GetLabels. In such case, use
267 RoughLabelCheck = true.
268 - Added RoughLabelCheck of type bool that indicates to omit
271 2004-12-05 Atsushi Enomoto <atsushi@ximian.com>
273 * RelaxngValidatingReader.cs : no, it was very easy. But to avoid
274 state-changeful property, it is now bool Emptiable().
276 2004-12-05 Atsushi Enomoto <atsushi@ximian.com>
278 * RelaxngValidatingReader.cs : reverted IsEmptiable. It was not ready.
280 2004-12-05 Atsushi Enomoto <atsushi@ximian.com>
282 * RelaxngPattern.cs : added GetLabels() override to RdpUnresolvedRef.
283 * RelaxngValidatingReader.cs :
284 Added GetLabels() that collects "allowed element names and
285 attributes" at current state.
286 Added IsEmptiable that indicates whether current reader can be
287 closed by an end tag.
289 2004-11-28 Atsushi Enomoto <atsushi@ximian.com>
291 * RelaxngGrammar.cs : fixed error that happened on recompilation.
293 2004-07-14 Atsushi Enomoto <atsushi@ximian.com>
295 * RelaxngGrammar.cs : When definition is missing, the error message
296 should show what definition is missing.
298 2004-06-25 Atsushi Enomoto <atsushi@ximian.com>
300 * Misc.cs, RelaxngDatatype.cs, RelaxngDatatypeProvider.cs,
301 RelaxngDefaultDatatype.cs, RelaxngException.cs, RelaxngGrammar.cs,
302 RelaxngMergedProvider.cs, RelaxngNameClass.cs, RelaxngPattern.cs,
303 RelaxngPatternType.cs, RelaxngReader.cs, RelaxngValidatingReader.cs,
304 XsdDatatypeProvider.cs : Added/replaced novell license term.
306 2004-06-21 Atsushi Enomoto <atsushi@ximian.com>
311 Use XmlResolver (or XmlUrlResolver) directly. XmlResolver was
312 incorrectly _used_ before null check. Don't create XmlResolver
313 instance for _every_ pattern object.
314 * RelaxngPattern.cs : UnresolvedRef.ExpandRef() should return not
315 try to find target derivative pattern twice. It was the culprit of
316 infinite loop. Removed dirty switches.
317 * RelaxngGrammar.cs : code cleanup.
319 2004-06-17 Atsushi Enomoto <atsushi@ximian.com>
321 * Misc.cs, RelaxngGrammar.cs, RelaxngPattern.cs, RelaxngReader.cs :
322 Added XmlResolver property to fix bug #60334.
323 Check incrrect recursion check that caused possible infinite loop.
325 2004-05-31 Atsushi Enomoto <atsushi@ximian.com>
327 * Misc.cs : made Util class internal.
328 * RelaxngDatatypeProvider.cs : looks commit was missing.
329 * RelaxngException.cs : made one .ctor() internal that accepts
331 * RelaxngNameClas.cs : Names list should not be settable.
332 * RelaxngPattern.cs : RelaxngRefPattern class is internal use only.
333 * RelaxngPatternType.cs : there is not "Include" pattern.
335 2004-05-30 Atsushi Enomoto <atsushi@ximian.com>
337 * RelaxngDatatypeProvider.cs : removed meaningless using alias.
338 * RelaxngGrammar.cs : modified ArrayList to RelaxngGrammarContentList.
339 RelaxngMergedProvider.cs : Added #if PNET switch to support non-
340 xmlschema available environment.
341 * RelaxngPattern.cs : added IGrammarContent and
342 RelaxngGrammarContentList.
344 2004-03-17 Atsushi Enomoto <atsushi@ximian.com>
346 * RelaxngNameClass.cs : Introduced RelaxngNameClassList class.
348 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
352 RelaxngPattern.cs : Added Write() support.
354 2004-02-28 Atsushi Enomoto <atsushi@ximian.com>
356 * RelaxngReader.cs : ReadPattern() should be public.
358 2004-02-25 Atsushi Enomoto <atsushi@ximian.com>
365 They are moved to RelaxngXXX.cs and improved
367 2004-02-25 Atsushi Enomoto <atsushi@ximian.com>
371 - RelaxngDatatypeProvider.cs
372 - RelaxngDefaultDatatypes.cs
373 - RelaxngException.cs
375 - RelaxngMergedProvider.cs
376 - RelaxngNameClass.cs
378 - RelaxngPatternType.cs
379 - XsdDatatypeProvider.cs
382 RelaxngValidatingReader.cs : Radical design changes.
385 - API redesign (renaming RngXxx to RelaxngXxx)
386 - Strict grammar validation
387 - Datatype support (XML Schema primitive datatypes)
388 - Some derivative bugfixes such as list validation.
390 2003-05-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
393 + Now skips immaterial content correctly.
394 + Removed MoveToContent().
395 + Trimming attribute values and names.
396 + Fixed ReadNameClassChoice(), ReadNameClassExcept(),
397 ReadPatternExcept (). They require one or more contents.
398 + QName resolver fix.
399 + ReadListPattern() failed to read actual content.
400 * RelaxngValidatingReader.cs :
401 + Fixed incorrect error message.
402 + Fixed incorrect attribute namespace handling.
403 * RngGrammar.cs : Some simplification stuff fix.
404 Support for illegal recursion check.
405 * RngNameClass.cs : fixed RngNsName ctor() (argument not passed).
406 * RngPattern.cs : fixed ParentRef.Compile() (was treated same as Ref).
408 2003-05-05 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
410 * RelaxngReader.cs : ReadExternalRef() hadn't resolved base uri.
412 2003-04-29 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
415 * added ChangeLog, RelaxngReader.cs, RelaxngValidatingReader.cs,
416 RngGrammar.cs, RngNameClasses.cs, RngPattern.cs, RngPatternType.cs