In .:
[mono.git] / mcs / class / Commons.Xml.Relaxng / Commons.Xml.Relaxng / ChangeLog
1 2006-02-02  Atsushi Enomoto <atsushi@ximian.com>
2
3         * RelaxngValidatingReader.cs : removed extra tables.
4
5 2006-01-16  Atsushi Enomoto <atsushi@ximian.com>
6
7         * RelaxngValidatingReader.cs : fixed warning.
8
9 2006-01-16  Atsushi Enomoto <atsushi@ximian.com>
10
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.
14
15 2006-01-13  Atsushi Enomoto <atsushi@ximian.com>
16
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.
21
22 2006-01-13  Atsushi Enomoto <atsushi@ximian.com>
23
24         * RelaxngDatatype.cs, RelaxngDefaultDatatypes.cs,
25           XsdDatatypeProvider.cs, RelaxngValidatingReader.cs :
26           Memoize TextDeriv() results for context independent inputs.
27
28           Due to the API freeze they are kept as internal virtual for now.
29
30 2006-01-12  Atsushi Enomoto <atsushi@ximian.com>
31
32         * RelaxngValidatingReader.cs : Use RdpPattern.EmptyTextDeriv(). It
33           significantly improves performance wrt empty text nodes.
34
35 2006-01-10  Atsushi Enomoto <atsushi@ximian.com>
36
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.
48
49 2006-01-10  Atsushi Enomoto <atsushi@ximian.com>
50
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().
55
56 2006-01-05  Atsushi Enomoto <atsushi@ximian.com>
57
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().
65
66 2006-01-04  Alexandre Miguel Pedro Gomes <alexmipego@gmail.com>
67
68         * RelaxngValidatingReader.cs: fix typo
69
70 2006-01-04  Atsushi Enomoto <atsushi@ximian.com>
71
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.
81
82 2005-12-27  Atsushi Enomoto <atsushi@ximian.com>
83
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 :
89
90           This is the smarter way to set eol-style without messing code
91           history.
92
93 2005-12-27  Atsushi Enomoto <atsushi@ximian.com>
94
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.
102
103 2005-12-27  Atsushi Enomoto <atsushi@ximian.com>
104
105         * Misc.cs : it has inconsistent newlines. Removed unused code.
106
107 2005-12-27  Atsushi Enomoto <atsushi@ximian.com>
108
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.
111
112 2005-12-27  Atsushi Enomoto <atsushi@ximian.com>
113
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).
120
121 2005-12-27  Atsushi Enomoto <atsushi@ximian.com>
122
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.
126
127 2005-12-27  Atsushi Enomoto <atsushi@ximian.com>
128
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.
132
133 2005-12-27  Atsushi Enomoto <atsushi@ximian.com>
134
135         * RelaxngGrammar.cs : expand refs before checking content pattern.
136
137 2005-12-16  Atsushi Enomoto <atsushi@ximian.com>
138
139         * RelaxngPattern.cs : RelaxngData and RelaxngValue was writing QName
140           instead of NCName for type attribute (wrong).
141
142 2005-12-16  Atsushi Enomoto <atsushi@ximian.com>
143
144         * RelaxngPattern.cs : in WriteCompact(), use WriteNamespace() to
145           let RncWriter handle namespace output by itself.
146
147 2005-09-20  Atsushi Enomoto <atsushi@ximian.com>
148
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.
156
157 2005-07-31  Atsushi Enomoto <atsushi@ximian.com>
158
159         * RelaxngGrammar.cs : spec 7.3 check is kinda implemented but cannot
160           verify now because of weird exception handling in the runtime.
161
162 2005-06-07  Atsushi Enomoto <atsushi@ximian.com>
163
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.
167
168 2005-04-06  Atsushi Enomoto <atsushi@ximian.com>
169
170         * RelaxngPattern.cs : fixed incorrect use of virtual.
171
172 2005-03-18  Atsushi Enomoto <atsushi@ximian.com>
173
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).
177
178 2005-03-01  Atsushi Enomoto <atsushi@ximian.com>
179
180         * RelaxngReader.cs : there was two public namespace constant. One
181           should be obsoleted.
182
183 2005-03-01  Atsushi Enomoto <atsushi@ximian.com>
184
185         * RelaxngPattern.cs : RdpUnresolvedRef should process empty/notAllowed
186           elimination on its referenced pattern.
187
188 2005-02-27  Atsushi Enomoto <atsushi@ximian.com>
189
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.
193
194 2005-02-06  Atsushi Enomoto <atsushi@ximian.com>
195
196         * RelaxngReader.cs : ns attribute on root element should also be 
197           handled as well as datatypeLibrary.
198
199 2005-02-06  Atsushi Enomoto <atsushi@ximian.com>
200
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 =..".
205
206 2005-01-26  Atsushi Enomoto <atsushi@ximian.com>
207
208         * RelaxngPattern.cs : fixed 2.0 typo.
209
210 2005-01-26  Atsushi Enomoto <atsushi@ximian.com>
211
212         * RelaxngGrammar.cs, RelaxngPattern.cs, RelaxngNameClass.cs :
213           added RelaxngPattern.WriteCompact(TextWriter) and all internal 
214           WriteRnc() overrides.
215
216 2004-12-06  Atsushi Enomoto <atsushi@ximian.com>
217
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
229             argument state.
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
237             of success.
238
239 2004-12-06  Atsushi Enomoto <atsushi@ximian.com>
240
241         * RelaxngException.cs : Added new .ctor() that takes RelaxngElementBase
242           to provide target grammar component location.
243
244 2004-12-06  Atsushi Enomoto <atsushi@ximian.com>
245
246         * RelaxngNameClass.cs,
247           RelaxngPattern.cs,
248           RelaxngGrammar.cs :
249           Added related grammar component location to error message.
250           In RelaxngDefine, Compile() caused error on duplicate key on
251           Hashtable.Add().
252         * RelaxngReader.cs : In GetStrippedAttribute(), use 
253           GetAttribute(string,string).
254
255 2004-12-06  Atsushi Enomoto <atsushi@ximian.com>
256
257         * RelaxngException.cs : don't store debug string. It was so harmful
258           for performance.
259
260 2004-12-05  Atsushi Enomoto <atsushi@ximian.com>
261
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
269             notAllowed check.
270
271 2004-12-05  Atsushi Enomoto <atsushi@ximian.com>
272
273         * RelaxngValidatingReader.cs : no, it was very easy. But to avoid
274           state-changeful property, it is now bool Emptiable().
275
276 2004-12-05  Atsushi Enomoto <atsushi@ximian.com>
277
278         * RelaxngValidatingReader.cs : reverted IsEmptiable. It was not ready.
279
280 2004-12-05  Atsushi Enomoto <atsushi@ximian.com>
281
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.
288
289 2004-11-28  Atsushi Enomoto <atsushi@ximian.com>
290
291         * RelaxngGrammar.cs : fixed error that happened on recompilation.
292
293 2004-07-14  Atsushi Enomoto <atsushi@ximian.com>
294
295         * RelaxngGrammar.cs : When definition is missing, the error message
296           should show what definition is missing.
297
298 2004-06-25  Atsushi Enomoto <atsushi@ximian.com>
299
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.
305
306 2004-06-21  Atsushi Enomoto <atsushi@ximian.com>
307
308         * Misc.cs,
309           RelaxngPattern.cs,
310           RelaxngReader.cs :
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.
318
319 2004-06-17  Atsushi Enomoto <atsushi@ximian.com>
320
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.
324
325 2004-05-31  Atsushi Enomoto <atsushi@ximian.com>
326
327         * Misc.cs : made Util class internal.
328         * RelaxngDatatypeProvider.cs : looks commit was missing.
329         * RelaxngException.cs : made one .ctor() internal that accepts
330           RdpPattern.
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.
334
335 2004-05-30  Atsushi Enomoto <atsushi@ximian.com>
336
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.
343
344 2004-03-17  Atsushi Enomoto <atsushi@ximian.com>
345
346         * RelaxngNameClass.cs : Introduced RelaxngNameClassList class.
347
348 2004-03-15  Atsushi Enomoto <atsushi@ximian.com>
349
350         * RelaxngGrammar.cs,
351           RelaxngNameClass.cs,
352           RelaxngPattern.cs : Added Write() support.
353
354 2004-02-28  Atsushi Enomoto <atsushi@ximian.com>
355
356         * RelaxngReader.cs : ReadPattern() should be public.
357
358 2004-02-25  Atsushi Enomoto <atsushi@ximian.com>
359
360         * Removed 
361           - RngGrammar.cs
362           - RngNameClass.cs
363           - RngPattern.cs
364           - RngPatternType.cs
365           They are moved to RelaxngXXX.cs and improved
366
367 2004-02-25  Atsushi Enomoto <atsushi@ximian.com>
368
369         * Added 
370           - RelaxngDatatype.cs
371           - RelaxngDatatypeProvider.cs
372           - RelaxngDefaultDatatypes.cs
373           - RelaxngException.cs
374           - RelaxngGrammar.cs
375           - RelaxngMergedProvider.cs
376           - RelaxngNameClass.cs
377           - RelaxngPattern.cs
378           - RelaxngPatternType.cs
379           - XsdDatatypeProvider.cs
380         * Misc.cs,
381           RelaxngReader.cs,
382           RelaxngValidatingReader.cs : Radical design changes.
383
384         In short:
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.
389
390 2003-05-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
391
392         * RelaxngReader.cs :
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).
407
408 2003-05-05  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
409
410         * RelaxngReader.cs : ReadExternalRef() hadn't resolved base uri.
411
412 2003-04-29  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
413
414         * Started.
415         * added ChangeLog, RelaxngReader.cs, RelaxngValidatingReader.cs,
416           RngGrammar.cs, RngNameClasses.cs, RngPattern.cs, RngPatternType.cs
417           and Misc.cs.
418