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