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