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