2005-11-30 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / System.XML / Mono.Xml.Xsl / ChangeLog
1 2005-11-30  Atsushi Enomoto  <atsushi@ximian.com>
2
3         * ScriptCompilerInfo.cs : (VBCompilerInfo) There was a space between
4           '#' and 'ExternalResource'. bug #75789 should be fixed.
5
6 2005-11-23  Vladimir Krasnov  <vladimirk@mainsoft.com>
7
8         * XslKey.cs: fixed KeyIndexTable.Evaluate method, changed
9         XPathNavigator given to GetNodesByValue()
10
11 2005-11-17  Atsushi Enomoto  <atsushi@ximian.com>
12
13         * XslCompiledContext.cs : since XsltContextInfo is struct, having
14           an array of this type and setting fields of each struct didn't
15           make sense. It thus blocked expected PreserveWhitespace behavior.
16
17 2005-10-24  Atsushi Enomoto  <atsushi@ximian.com>
18
19         * Compiler.cs : (FromString(s, hashtable)) pull default namespace
20           from the table for LRE (don't consider it as ""; spec. 7.1.2)
21           Fixed bug #76530.
22
23 2005-09-16  Atsushi Enomoto  <atsushi@ximian.com>
24
25         * ScriptCompilerInfo.cs : Compile correct replacement result.
26           Fixed bug #76116.
27
28 2005-09-10  Atsushi Enomoto  <atsushi@ximian.com>
29
30         * Compiler.cs : (Compile) check children only when it is the document
31           element. Fixed bug #76046.
32
33 2005-08-25  Atsushi Enomoto  <atsushi@ximian.com>
34
35         * ScriptCompilerInfo.cs : It should not be "#line" when the source is
36           not C#. It should fix bug #75789.
37
38 2005-08-05  Atsushi Enomoto  <atsushi@ximian.com>
39
40         * XslKey.cs : Fixed match pattern in xsl:key to check attribute nodes.
41           To minimize attribute iteration, use Pattern.EvaluatedNodeType.
42           Fixed bug #75709.
43
44 2005-07-29  Atsushi Enomoto  <atsushi@ximian.com>
45
46         * XslFunctions.cs : XslTransform recovers from errors on document
47           resolution. Fixed bug #75663.
48
49 2005-06-06  Atsushi Enomoto  <atsushi@ximian.com>
50
51         * HtmlEmitter.cs : Boolean attribute values should be omitted, but
52           only for related elements.
53
54 2005-05-07  Atsushi Enomoto  <atsushi@ximian.com>
55
56         * MSXslScriptManager.cs : it should ignore compiler warnings. This
57           fixes bug #74859.
58
59 2005-04-07  Andrew Skiba  <andrews@mainsoft.com>
60
61         * XslDecimalFormat.jvm.cs : added
62  
63 2005-03-31  Atsushi Enomoto  <atsushi@ximian.com>
64
65         * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
66           support CodeDom). Use Guid.ToString("N").
67
68 2005-03-31  Atsushi Enomoto  <atsushi@ximian.com>
69
70         * Compiler.cs : removed extraneous using_directive.
71
72 2005-03-25  Atsushi Enomoto  <atsushi@ximian.com>
73
74         * XslKey.cs : the iterator does not require sorting (already sorted).
75           Removed unused code.
76
77 2005-03-23  Atsushi Enomoto  <atsushi@ximian.com>
78
79         * XslStylesheet.cs :
80           Variables are stored per stylesheet and added to compiler after
81           all of the contents are processed (handle import precedence).
82           Imports are now processed in prior to other contents (incorrect
83           imports are now rejected). After imports, process includes to 
84           process nested imports. In-process included stylesheets are 
85           temporarily stored in including stylesheet.
86           Handle keys like variables are handled.
87           Added Compile() that is splitted from .ctor().
88         * Compiler.cs :
89           Store keys in compiler and compiled stylesheet.
90           Duplicate variables in imports are now overriden as expected.
91         * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
92
93 2005-03-22  Atsushi Enomoto  <atsushi@ximian.com>
94
95         * XslTransformProcessor.cs : now it looks safe to remove SetContext()
96           from each EvaluateXXX() methods.
97         * MsxslScriptManager.cs : not to leave reference to stylesheet
98           navigator, pass current node to Compile().
99         * XslCompiledContext.cs : Added GetNavCache() that returns reusable
100           navigator cache for each pattern, to avoid Clone() and not to leave
101           reference to already-done instance navigator.
102
103 2005-03-22  Atsushi Enomoto  <atsushi@ximian.com>
104
105         * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
106         * XslKey.cs : Use XSLT pattern parser for match.
107           UsePattern is now "Use" (it is not a pattern). 
108           Reimplemented Evaluate() to make full use of index table.
109           Added Matches() to handle shorter match evaluation. For const value
110           for key (e.g. key patterns), it could avoid Evaluate().
111         * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
112           new KeyIndexTable.Matches().
113         * XslFunctions.cs : Added PatternMatches() that just delegates to new
114           XsltCompiledContext.MatchesKey().
115
116 2005-03-22  Atsushi Enomoto  <atsushi@ximian.com>
117
118         * GenericOutputter.cs : commented out warned fields.
119
120 2005-03-15  Atsushi Enomoto  <atsushi@ximian.com>
121
122         * XslKey.cs : removed last ListIterator.ctor() argument.
123           Reverted the last commit that changed internal key index change 
124           from ArrayList to Hashtable. Avoid clone in CollectIndex().
125           Sort results in Evaluate() before passing list to ListIterator.
126         * XslFunctions.cs : removed last ListIterator.ctor() argument.
127
128 2005-03-14  Atsushi Enomoto  <atsushi@ximian.com>
129
130         * XslKey.cs,
131           XsltCompiledContext.cs,
132           XslFunctions.cs,
133           XslTransformProcessor.cs : Now dynamic context key index table is 
134           separate from XslKey static context. Added KeyIndexTable class and
135           store it into XsltCompiledContext with hash name-table mapping.
136           Cache map from statically-named key to index table.
137           Use Hashtable for internal key cache instead of ArrayList.
138
139 2005-03-14  Atsushi Enomoto  <atsushi@ximian.com>
140
141         * XslKey.cs : fixed node iteration on collecting key indices which
142           could have resulted in an infinite loop.
143
144 2005-03-14  Atsushi Enomoto  <atsushi@ximian.com>
145
146         * XslDecimalFormat.cs : in some cases it does not throw format
147           exception.
148
149 2005-03-11  Atsushi Enomoto  <atsushi@ximian.com>
150
151         * XsltCompiledContext.cs,
152           XslStylesheet.cs : Fixed significant performance loss on whitespace
153           handling.
154
155 2005-03-11  Atsushi Enomoto  <atsushi@ximian.com>
156
157         * XslKey.cs : removed unused NeedAbsoluteMatching.
158         * XslFunctions.cs : Added Peer (for peer & subtree optimization).
159           Added some missing ToString() overrides.
160
161 2005-03-09  Atsushi Enomoto  <atsushi@ximian.com>
162
163         * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
164           to work fine with xsl:*-space attributes as expected.
165         * XslTransformProcessor.cs : PreserveWhitespace() in this file is 
166           actually nothing. It should not use XsltContext.PreserveWhitespace()
167           because this method is used to control output, while the referenced
168           method is used to control source document.
169
170 2005-03-09  Atsushi Enomoto  <atsushi@ximian.com>
171
172         * XslTemplate.cs : First non-element content were incorrectly ignored.
173
174 2005-03-09  Atsushi Enomoto  <atsushi@ximian.com>
175
176         * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
177           to reduce references to stylesheet XPathNavigator. To accomplish it,
178           IStaticXsltContext does not declare GetNsm() anymore. All xslt
179           function types now directly hold IStaticXsltContext.
180         * XslStylesheet.cs : removed "Compiler c" field.
181           Removed unused properties.
182
183 2005-03-08  Atsushi Enomoto  <atsushi@ximian.com>
184
185         * GenericOutputter.cs : When WriteStartElement() requires to add
186           new namespace declaration, _currentNamespaceDecls needs to be set.
187
188 2005-03-08  Atsushi Enomoto  <atsushi@ximian.com>
189
190         * GenericOutputter.cs : for duplicate attribute in an element, no need
191           to keep previous prefix.
192
193 2005-03-08  Atsushi Enomoto  <atsushi@ximian.com>
194
195         * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
196           namespace. Rewrite prefix only when there is non-empty namespace.
197
198 2005-03-07  Atsushi Enomoto  <atsushi@ximian.com>
199
200         * XslStylesheet.cs : Now namespace aliases are collected in prior to
201           all other toplevel elements. Removed unused code.
202
203 2005-03-07  Atsushi Enomoto  <atsushi@ximian.com>
204
205         * GenericOutputter.cs : compute attribute prefix only when actual
206           emission. Fixed some cases that namespace output was missing.
207
208 2005-03-07  Atsushi Enomoto  <atsushi@ximian.com>
209
210         * GenericOutputter.cs : no need to use two collections to store
211           pending attributes. Just use ordered ListDictionary.
212           newNamespace.Add(int) causes extraneous boxing.
213
214 2005-03-07  Atsushi Enomoto  <atsushi@ximian.com>
215
216         * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
217           OutputLiteralNamespaceUriNodes() so that everyone can understand
218           what it means and when it should be invoked.
219
220 2005-03-04  Atsushi Enomoto  <atsushi@ximian.com>
221
222         * Compiler.cs : added another CompileTemplateContent() which is
223           requred in xsl:for-each. Commented out unused method.
224
225 2005-03-03  Atsushi Enomoto  <atsushi@ximian.com>
226
227         * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
228           in stylesheet should be considered in TryElementNamespacesOutput().
229           ParseQNameListAttribute() is not properly working for filling
230           namespaces.
231
232 2005-03-02  Atsushi Enomoto  <atsushi@ximian.com>
233
234         * XslStylesheet.cs : included stylesheet could be literal result 
235           element as stylesheet (see the spec 2.6.1).
236
237 2005-03-02  Atsushi Enomoto  <atsushi@ximian.com>
238
239         * GenericOutputter.cs : On WriteStartElement(), prefix should be an
240           empty string when nsURI is empty.
241         * HtmlEmitter.cs : non-HTML elements in default namespace are treated
242           unlike xml but like span, as written in the spec 16.2.
243
244 2005-03-02  Atsushi Enomoto  <atsushi@ximian.com>
245
246         * XslCompiledContext.cs, XslTransformProcessor.cs :
247           According to errata E25, those namespaces 1) that has the same
248           name as current element's prefix, or an empty name when current
249           element's namespace URI is empty, are not written to output.
250           So added current element information to XPathContext and added
251           prefix parameter to PushElementState(), added xsl:copy check to
252           TryElementNamespacesOutput().
253           http://www.w3.org/1999/11/REC-xslt-19991116-errata/
254
255 2005-02-26  Atsushi Enomoto <atsushi@ximian.com>
256
257         * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
258           instead of BaseURI.
259
260 2005-02-25  Atsushi Enomoto <atsushi@ximian.com>
261
262         * XslTemplate.cs : According to the spec 5.7, it is an error for 
263           xsl:template to have 'mode' without 'match'.
264
265 2005-02-24  Atsushi Enomoto <atsushi@ximian.com>
266
267         * Compiler.cs : added ns lookup with nsDecls Hashtable.
268
269 2005-02-24  Atsushi Enomoto <atsushi@ximian.com>
270
271         * XslStylesheet.cs : It should consider "#default" in namespace-alias.
272
273 2005-02-23  Atsushi Enomoto <atsushi@ximian.com>
274
275         * GenericOutputter.cs : It should not attempt to write prefix "xml" and
276           namespace "http://www.w3.org/XML/1998/namespace".
277
278 2005-02-21  Atsushi Enomoto <atsushi@ximian.com>
279
280         * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
281         * HtmlEmitter.cs : CDATA nodes are written just as text.
282         * GenericOutputter.cs : custom format are treated just as XML output.
283
284 2005-02-17  Atsushi Enomoto <atsushi@ximian.com>
285
286         * Outputter.cs,
287           TextOutputter.cs,
288           GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
289           and WriteState. Writing XML declaration is done inside
290           DetermineOutputMethod().
291
292 2005-02-17  Atsushi Enomoto <atsushi@ximian.com>
293
294         * Compiler.cs : reverted previous fix, since it should be done
295           in XslTransformProcessor with root stylesheet.
296         * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
297           don't output alias namespaces. And now consider null exclusions.
298
299 2005-02-17  Atsushi Enomoto <atsushi@ximian.com>
300
301         * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
302
303 2005-02-16  Atsushi Enomoto <atsushi@ximian.com>
304
305         * Compiler.cs : GetNamespacesToCopy() should also find for non-local
306           namespace nodes. Patch by Andrew Skiba with some fixes.
307         * XslTransformProcessor.cs : Patch by Andrew Skiba.
308           TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
309           as to handle all namespace nodes to copy in stylesheet nodes.
310           Global parameterss are evaluated before global variables. 
311         * XmlOutputter.cs : removed unused code.
312
313         Pending items:
314
315         * Actually variables and params should check reference recursion.
316             This patch incompletely fixes the problem.
317         * Those operations that considers excluded-result-prefixes must
318           also check those attributes of its ancestors.
319
320 2005-02-10  Atsushi Enomoto <atsushi@ximian.com>
321
322         * XmlWriterEmitter.cs : String.Replace() was insufficient for
323           sequential candidates for replacement. Patch by Andrew Skiba.
324
325 2005-02-10  Atsushi Enomoto <atsushi@ximian.com>
326
327         * GenericOutputter.cs : don't output extraneous xml declaration.
328           fix by Andrew Skiba.
329
330 2005-02-09  Atsushi Enomoto <atsushi@ximian.com>
331
332         * XslStylesheet.cs : MS implementation had chosen to recover from 
333           the error, in the way specified in the spec 7.7.1. Patch by Andrew
334           Skiba.
335
336 2005-02-08  Atsushi Enomoto <atsushi@ximian.com>
337
338         * XslTemplate.cs : if input is literal result element, it could result
339           in ArgumentException. Patch by Andrew Skiba.
340
341 2005-02-08  Atsushi Enomoto <atsushi@ximian.com>
342
343         * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
344           NullReferenceException. Patch by Andrew Skiba.
345
346 2005-02-08  Atsushi Enomoto <atsushi@ximian.com>
347
348         * XslOutput.cs : MS.NET recovers from unknown encoding according to
349           XSLT spec 16.1. Patch by Andrew Skiba.
350
351 2005-02-08  Atsushi Enomoto <atsushi@ximian.com>
352
353         * HtmlEmitter.cs : patch by Andrew Skiba.
354           Remove extra element prefix output. simplify attribute prefix output.
355           Attribute output might have resulted in invalid element stack peek.
356           Output specified media type if any.
357
358 2005-02-08  Atsushi Enomoto <atsushi@ximian.com>
359
360         * Compiler.cs : Patch by Andrew Skiba.
361           wrap internal exception with XsltCompileException.
362           Raise an error for not-found document URI.
363           QName might contain sequential whitespaces and thus could be empty.
364
365 2005-02-08  Atsushi Enomoto <atsushi@ximian.com>
366
367         * XslAttributeSet.cs : just ignore other kind of nodes than element
368           in its content. Fix by Andrew Skiba.
369
370 2005-02-08  Atsushi Enomoto <atsushi@ximian.com>
371
372         * XslOutput.cs : for html and text output mode, just set internal
373           omitXmlDeclaration status true. Patch by Andrew Skiba.
374
375 2005-02-08  Atsushi Enomoto <atsushi@ximian.com>
376
377         * XslFunctions.cs : fixed line ending mixture.
378
379 2005-02-03  Atsushi Enomoto <atsushi@ximian.com>
380
381         * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
382           to make test pass.
383
384 2004-12-22  Atsushi Enomoto <atsushi@ximian.com>
385
386         * XslFunction.cs,
387           Compiler.cs : XmlResolver.ResolveUri() may return null.
388
389 2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
390
391         * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
392           make sense here.
393
394 2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
395
396         * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
397
398 2004-11-26  Atsushi Enomoto  <atsushi@ximian.com>
399
400         * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
401           warning elimination.
402
403 2004-11-24  Atsushi Enomoto  <atsushi@ximian.com>
404
405         * XslStylesheet.cs : removed unused fields.
406         * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
407           this class).
408
409 2004-11-08  Atsushi Enomoto  <atsushi@ximian.com>
410
411         * Compiler.cs, XslTransformProcessor.cs :
412           when creating XmlTextReader, reuse XmlNameTable.
413
414 2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>
415
416         * Compiler.cs : Changes that reflects CompiledExpression changes.
417
418 2004-10-04  Atsushi Enomoto  <atsushi@ximian.com>
419
420         * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
421           This fixes bug #67390.
422
423 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
424
425         * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
426
427 2004-06-18  Atsushi Enomoto  <atsushi@ximian.com>
428
429         * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
430           ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
431           : Globalization. Removed unused code.
432
433 2004-06-14  Atsushi Enomoto  <atsushi@ximian.com>
434
435         * XslKey.cs : Key-value search in absolute path search was 
436           insufficient.
437
438 2004-06-14  Atsushi Enomoto  <atsushi@ximian.com>
439
440         * HtmlEmitter.cs : Correct URL escape implementation.
441
442 2004-06-06  Atsushi Enomoto  <atsushi@ximian.com>
443
444         * XslTransformProcessor.cs : On document() function, close the 
445           XmlTextReader opened from uri string.
446
447 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
448
449         * Compiler.cs,
450           GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
451           atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that 
452           should override another overload.
453
454 2004-05-25  Lluis Sanchez Gual  <lluis@ximian.com>
455
456         * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
457           assembly should not include the .dll extension.
458
459 2004-05-20  Atsushi Enomoto  <atsushi@ximian.com>
460
461         * Compiler.cs :
462           - CompilePattern() now throws XsltCompileException for invalid
463             pattern, and add error location support.
464           - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
465             Now it returns MSXslNodeSet instance (for msxsl:node-set).
466         * Debug.cs : don't throw System.Exception.
467         * XslFunctions.cs : Added MSXslNodeSet class.
468         * XslTemplate.cs : reflected CompilePattern() change.
469         * XslTransformProcessor.cs : don't throw System.Exception.
470         * XsltCompiledContext.cs : don't throw System.Exception.
471
472 2004-05-12  Atsushi Enomoto  <atsushi@ximian.com>
473
474         * XmlOutputter.cs,
475           XslOutput.cs,
476           XslStylesheet.cs : made classes/enums internal.
477
478 2004-04-24  Atsushi Enomoto  <atsushi@ximian.com>
479
480         * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs, 
481           MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
482           XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
483           XslTransformProcessor.cs : Make extra classes internal.
484
485         * XslKey.cs : It should require sorting.
486         * Debug.cs : Just avoid debug output. Only who want to output should
487           turn it on.
488
489 2004-04-24  Atsushi Enomoto  <atsushi@ximian.com>
490
491         * GenericOutputter.cs : Culture-independency fix. 
492           Replaced StringCollection to ArrayList.
493         * XslOutput.cs : Culture-independency fix.
494
495 2004-04-12  Atsushi Enomoto  <atsushi@ximian.com>
496
497         * Compiler.cs : When BaseURI is an empty string, it should not try to
498           create Uri instance. This will fix bug #56832, but not sure.
499         * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
500         * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it 
501           should be the TextReader's NewLine).
502         * MSXslScriptManager.cs : Should raise an error when the prefix which
503           was specified by "implements-prefix" was not found.
504
505 2004-03-27  Atsushi Enomoto  <atsushi@ximian.com>
506
507         * ScriptCompilerInfo.cs : #line directive now holds dummy filename
508           when BaseURI for msxsl:script node is not available. This fixes
509           bug #56070.
510           Don't output line number in the error message, when it is 0.
511
512 2004-03-27  Atsushi Enomoto  <atsushi@ximian.com>
513
514         * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
515
516 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
517
518         * Compiler.cs, 
519           XslAttributeSet.cs,
520           XslFunctions,
521           XslTransformProcessor.cs :
522           Throw specific types of exceptions instead of Exception.
523         * XslFunctions.cs, XsltCompiledContext.cs :
524           added node argument for XsltExtensionFunction ctor() etc.
525
526 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
527
528         * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
529           CodeDom. Compilation error should be caught. This fixes bug #55875.
530
531 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
532
533         * XslStylesheet.cs : "version" attribute is also required for embedded
534           stylesheet.
535
536 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
537
538         * Compiler.cs,
539           XslStylesheet.cs : Reject xsl element other than stylesheet and
540           transform. Check mandatory version attribute (only for existence).
541
542 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
543
544         * MSXslScriptManager.cs : if extension namespace was not found in
545           the script, just return null. Patch by Joshua Tauberer.
546
547 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
548
549         * XslLiteralElement.cs : quick fix for ArgumentNullException which
550           was because of the combination of non-namespaced instances and
551           exclude-result-prefixes.
552
553 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
554
555         * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
556           from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
557         * XslFunctions.cs : hereby Added.
558         * Compiler.cs : Removed deleted usingdecl.
559
560 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
561
562         * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
563         * XslKey.cs : Added ExprKeyContainer expression type, which is 
564           designed to be matched at any level.
565         * Compiler.cs : support for ExprKeyContainer.
566
567 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
568
569         * XslKey.cs : Now it collects key and matching nodes at the first
570           evaluation time. After that, we can just get them from the table.
571         * Compiler.cs : Added KeyCompilationMode. It is used to prevent
572           prohibited key() usage in "match" and "use" attributes in xsl:key.
573           Modified accessibility of some classes.
574         * GenericOutputter.cs,
575           HtmlEmitter.cs,
576           TextEmitter.cs,
577           TextOutputter.cs,
578           XmlWriterEmitter.cs : made classes internal.
579         * XslOutput.cs : support line info for exception.
580         * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
581
582 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
583
584         * XsltCompiledContext.cs : fixed the length of context info array.
585
586 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
587
588         * XsltCompiledContext.cs :
589           replaced EnumeratorIterator with ListIterator
590
591 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
592
593         * GenericOutputter.cs,
594           XslAttributeSet.cs,
595           XslStylesheet.cs,
596           XslTemplate.cs : tiny foreach elimination.
597
598 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
599
600         * XslOutput.cs : Reverted. default encoding should be utf-8.
601
602 2004-01-14  Jackson Harper <jackson@ximian.com>
603
604         * GenericOutputter.cs: Add constructors that do not take an
605         encoding to fix build.
606         
607 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
608
609         * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
610           write XML declaration. It means that output supports non document
611           entity. This fixes bug #52729.
612         * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
613           modified WriteStartDocument() signature to receive Encoding.
614         * GenericOutputter.cs : 
615           - Added .ctor() which receives Encoding. (It is used for TextWriter 
616             output to get actual encoding.)
617           - Added .ctor() to take an boolean argument which indicates it is
618             variable content or not. (When variable, it does not call 
619             WriteStartDocument().)
620         * XslKey.cs,
621           XsltCompiledContext.cs : comment out WriteLine().
622         * XslOutput.cs : set default encoding utf-16.
623
624 2004-01-08  Nick Drochak <ndrochak@ieee.org>
625
626         * XsltCompiledContext.cs: Remove unused variable and unreachable code.
627
628 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
629
630         * XslDecimalFormat.cs : implemented format-number() other than number
631           grouping.
632         * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
633           catch ArgumentException which will be thrown by formatting process.
634
635 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
636
637         * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
638
639 2003-12-20 Ben Maurer  <bmaurer@users.sourceforge.net>
640
641         * XsltCompiledContext.cs: Remove workaround now that monodoc
642         is fixed.
643
644 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
645
646         * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
647           aliases at compilation time, so evaluate at the first run-time.
648
649 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
650
651         * GenericOutputter.cs : support for runtime-determined output type.
652         * HtmlEmitter.cs : Fixed invalid doctype output.
653           Fixed incorrect double attribute output on non-HTML elements.
654           Improved indentation. Fixed "selected" attribute output.
655           Don't have to convert "'" to "&apos;".
656         * XmlWriterEmitter.cs : Now don't output incorrect doctype.
657           Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
658         * XslStylesheet.cs, XsltCompiledContext.cs :
659           space resolution consideration for import and wildcard.
660
661 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
662
663         * Compiler.cs, XslTransformProcessor.cs :
664           Use XmlValidatingReader to support id() for external stylesheets.
665         * XslKey.cs, XsltCompiledContext.cs :
666           to evaluate MatchPattern and UsePattern, SetContext() is required.
667         * XslTemplate.cs : Forgot to commit. Change is below(12/16).
668
669 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
670
671         * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
672           Added WriteWhitespace().
673         * GenericOutputter.cs, XslTemplate.cs : Call above.
674         * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
675           CurrentNode in for-each context have to be pulled at evaluation.
676
677 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
678
679         * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
680           function for bugzilla #52144. It should be reverted soon.
681
682 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
683
684         * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not 
685           implemented yet.
686         * MSMslScriptManager.cs : modified generated assembly class to be unique
687           through running AppDomain.
688         * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
689           arguments to actual argument types. Bugzilla #51450 should be fixed.
690
691 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
692
693         * HtmlEmitter.cs : Fixed incorrect character entity output.
694
695 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
696
697         * Added ScriptCompilerInfo.cs.
698         * MSXslScriptManager.cs : Fixed *true* author's name.
699           Implemented basic msxsl:script support.
700         * Compiler.cs : Added Evidence member.
701
702 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
703
704         * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
705         * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
706           Added WriteWhitespace() to assure not writing whitespaces as cdata.
707         * XslAttributeSet.cs : Error check if attribute-set contains other than
708           xsl:attribute.  Error should be XsltException.
709         * XslDecimalFormat.cs : Complete equality check.  Allow just one
710           character value for some attributes.
711         * XslStylesheet.cs : Made whitespace control setting overridable.
712           Added Version property (for the future compatibility mode).
713           Check unrecongnized top level element.
714         * XslTemplate.cs : Check priority as a number.
715         * XslTransformProcessor.cs : PushCDataState is now PushElementState, 
716           for xsl:preserve-space and xsl:strip-space support.
717         * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
718           incomplete), PushScope and Pop
719
720 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
721
722         * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
723
724 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
725
726         * Compiler.cs : In FromListString(), it should use default ns,
727           not unqualified one.
728         * GenericOutputter.cs : CheckState() - attribute's Prefix should take
729           precedence.  Doctype should be written even if SYSTEM id is absent.
730           Fixed possible multiple xmlns output.
731         * HtmlEmitter.cs :
732           - Encoding output using META element.
733           - Doctype name is fixed (html).
734           - Double quotation on PUBLIC and SYSTEM missing.
735           - Fixed incorrect tag name check for IMG.
736           - '>' should not be escaped.
737         * XmlWriterEmitter.cs :
738           Added newline before doctype.  In WriteComment(), "--" and tail
739           '-' are not allowed (it escapes, while XmlWriter simply rejects).
740         * XslTransformProcessor.cs : cdata-section-elements should enclose
741           direct child tests only.   Added PreserveWhitespace() (incomplete).
742         * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
743
744 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
745
746         * IdPattern.cs : This should work against multiple ids.
747
748 2003-11-27 Ben Maurer  <bmaurer@users.sourceforge.net>
749
750         * Compiler.cs
751         * MSXslScriptManager.cs
752         * XslStylesheet.cs
753         * XslTransformProcessor.cs
754         * XsltCompiledContext.cs: Some work on msxsl script.
755
756 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
757
758         (in general: cdata-section-elements support, correct document() 
759         base uri handling, and so on)
760         * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
761           And move to document element.  Added XslNameUtil.FromListString().
762         * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
763           Added WriteCDataSection().
764         * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
765           Added InsideCDataSection.
766         * GenericOutputter.cs :
767           In .ctor(), WriteState should be succeeded from output XmlWriter.
768           WriteNamespaceDecl() now drops declaration identical to existing one.
769           Removed obsolete htmlEmulation.
770         * XslOutput.cs : Added CDataSectionElements support.
771         * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
772         * XslTransformProcessor.cs :
773           Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
774           now considers xsl:exclude-element-prefixes on literal element.
775           Added PushCDataState() and PopCDataState().
776         * XsltCompiledContext.cs : When base uri of document() target is empty,
777           then it should use stylesheet's BaseURI, not that of current document.
778
779 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
780
781         * Compiler.cs : Modified decimal-format comparison code.
782         * Outputter.cs,
783           TextOutputter.cs,
784           GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
785           be called only when required. 
786         * HtmlEmitter.cs : Improved indentation stuff.
787         * XslDecimalFormat.cs : Added incomplete implementation of 
788           CheckSameAs() and FormatNumber().
789         * XslStylesheet.cs,
790           XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
791           from StringDictionary to ArrayList of QName (to keep order).
792
793 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
794
795         * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
796           node type (i.e. attribute and namespace). Removed extraneous Clone().
797           Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
798
799 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
800
801         * Compiler.cs : Changed Keys from ArrayList to Hashtable.
802           XslStylesheet.cs : Added Keys support here.
803         * XslTransformProcessor.cs : Should call SetContext() to expressions
804           before evaluating current nodes.
805         * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
806           xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
807           for KeyPattern. It now uses CompiledStyle.FindKeys().
808
809 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
810
811         * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
812           to Xalan tests and MS.NET implementation (only for test convenience).
813         * XslOutput.cs : Indent holds string rathen than bool. Its default value
814           varies in the context. When method="html", then default is "yes".
815         * XslTransformProcessor.cs : Extension element prefixes should not 
816           be written as stylesheet namespaces.
817         * XsltCompiledContext.cs : Return type of generate-id() is string.
818           Implemented unparsed-entity-uri().
819
820 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
821
822         * Compiler.cs : More complete attribute set gathering.
823           GetNamespacesToCopy() should only return Local namespaces.
824         * GenericOutputter.cs : Added support for indentation.
825           Added easy hack for html output.
826           More correct Prefix handling (considers already defined ones).
827           Namespace emmission is moved to CheckState().
828         * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
829           Added WriteFullEndElement(). (i.e. IsEmptyElement support)
830         * GenericOutputter.cs, Outputter.cs :
831           Added CanProcessAttributes property for 
832           use-attribute-sets of xsl:copy.
833         * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
834           Added support for exclude-result-prefixes.
835         * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
836
837 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
838
839         * Compiler.cs : It is not important, but attribute order became closer
840           to MS.NET and Xalan (assuming from OASIS tests).
841
842 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
843
844         * GenericOutputter.cs : Attribute wasn't overwritten its properties
845           because Attribute is struct it was let to another local variable.
846
847 2003-09-28 Ben Maurer  <bmaurer@users.sourceforge.net>
848
849         * GenericOutputter.cs: make html output a warning, because doing
850         xml will be right most of the time.
851
852 2003-09-28 Ben Maurer  <bmaurer@users.sourceforge.net>
853
854         * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
855         here for a long time and it hurts thread safty and memory
856         allocation.
857
858 2003-09-21 Ben Maurer  <bmaurer@users.sourceforge.net>
859
860         * Compiler.cs: save the parser (will reduce memory allocation when
861         Jackson's jay patch is committed).
862
863 2003-09-20 Ben Maurer  <bmaurer@users.sourceforge.net>
864
865         * Attribute.cs: Change to struct. Remove QName class.
866         * GenericOutputter.cs: use an Attribute [] rather than an
867         ArrayList. Allows us not to allocate Attributes, which is great
868         for speed. Roll our own allocation.
869
870 2003-09-20 Ben Maurer  <bmaurer@users.sourceforge.net>
871
872         * Compiler.cs: add GetNsm to main class as well.
873
874 2003-09-20 Ben Maurer  <bmaurer@users.sourceforge.net>
875
876         * Compiler.cs (ParseAvtAttribute): Get the attribue using our
877         internal version so we get null if the attr doesnt exist.
878
879 2003-09-17 Ben Maurer  <bmaurer@users.sourceforge.net>
880
881         * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
882         where curVarScope == null
883
884 2003-09-16 Ben Maurer  <bmaurer@users.sourceforge.net>
885
886         * Compiler.cs: 
887         - Better handling of empty attributes (vs not being specified)
888         - Bug in handling #default
889         
890 2003-09-15 Ben Maurer  <bmaurer@users.sourceforge.net>
891
892         * Compiler.cs: Off by one when parsing localname of QName 
893         * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
894         children (so that they get overriden)
895
896 2003-09-15 Ben Maurer  <bmaurer@users.sourceforge.net>
897
898         * GenericOutputter.cs: Output attributes in order recieved; not
899         required by spec, but useful for running test cases.
900
901 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
902
903         * GenericOutputter.cs - fix bug with outputting state.
904         * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs, 
905         * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.  
906
907 2003-09-13 Ben Maurer  <bmaurer@users.sourceforge.net>
908
909         * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
910         exprs on use, pass to nav.
911
912 2003-09-13 Ben Maurer  <bmaurer@users.sourceforge.net>
913
914         * Compiler.cs: pass satic context to Pattern ctor.
915
916 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
917
918         * New files: 
919         GenericOutputter.cs - generic Outputter implementation,
920         Attribute.cs - represents outputted attribute,
921         Emitter.cs - abstract output emitter,
922         TextEmitter.cs - text emitter,
923         XmlWriterEmitter.cs - emitter to XmlWriter.
924         * Checking of duplicating attributes is done in GenericOutputter.
925         * Namespace outputting logic is implemented in GenericOutputter.
926         * Outputter.cs: Writing namespace declarations is delegated to 
927         derived classes (GenericOutputter).
928         * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).                    
929          
930 2003-08-21 Ben Maurer  <bmaurer@users.sourceforge.net>
931
932         * XslTransformProcessor.cs: evaluate variables at beginning
933         when / is current node.
934
935 2003-08-21 Ben Maurer  <bmaurer@users.sourceforge.net>
936
937         * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
938         Fix up namespace handeling
939
940 2003-08-20 Ben Maurer  <bmaurer@users.sourceforge.net>
941
942         * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
943         format-number.
944         * XslDecimalFormat.cs: Stub for decimal-format.
945
946 2003-08-20 Ben Maurer  <bmaurer@users.sourceforge.net>
947
948         * TextOutputter.cs: Add option to ignore element content (Oleg).
949
950 2003-08-19 Ben Maurer  <bmaurer@users.sourceforge.net>
951
952         * Compiler.cs: Really give null for blank avt's
953
954 2003-08-19 Ben Maurer  <bmaurer@users.sourceforge.net>
955
956         * Compiler.cs: Fixed lre/lre04.
957
958 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
959
960         * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
961           won't have default namespace. See http://www.w3.org/TR/xslt#qname
962
963 2003-08-19 Ben Maurer  <bmaurer@users.sourceforge.net>
964
965         * XslTransformProcessor.cs: add support for resolving documents.
966         * XsltCompiledContext: add support for document () function.
967
968 2003-08-19 Ben Maurer  <bmaurer@users.sourceforge.net>
969
970         * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
971         of the abstract methods in Outputter, making them call other
972         functions with default values, remove impl's in derived classes.
973
974 2003-08-19 Ben Maurer  <bmaurer@users.sourceforge.net>
975
976         * Outputter.cs: s/Close/Done
977         * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
978         * XslTransformProcessor.cs: Flush output when popping, pop at end.
979
980 2003-08-19 Ben Maurer  <bmaurer@users.sourceforge.net>
981
982         * Outputter.cs: Add support for namespaces.
983
984 2003-08-19 Ben Maurer  <bmaurer@users.sourceforge.net>
985
986         * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
987         XslTransformProcessor.cs: move output logic from XslStylesheet to
988         Compiler.
989
990 2003-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
991
992         * XslOutput.cs: add support for encoding.
993
994 2003-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
995
996         * *.cs: Support for xsl:output. (Oleg)
997
998 2003-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
999
1000         * Compiler.cs: handle extension and excluded namespaces.
1001
1002 2003-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
1003
1004         * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
1005         from the stylesheet for correct namespace resolution.
1006
1007 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1008
1009         * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument 
1010           introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
1011
1012 2003-08-07 Ben Maurer  <bmaurer@users.sourceforge.net>
1013
1014         * XslTransformProcessor.cs: Add a table to detect when an object
1015         is busy.
1016         * XslAttributeSet.cs: Use the above table. Dont throw nullref
1017         exception when no use-attribute-sets are specified.
1018
1019 2003-08-04 Ben Maurer  <bmaurer@users.sourceforge.net>
1020
1021         * Compiler.cs: Add support for boolean attributes (yes/no).
1022
1023 2003-08-04 Ben Maurer  <bmaurer@users.sourceforge.net>
1024
1025         * Compiler.cs: Add method LocalNameOf, to get the local name of a
1026         string.
1027         * XslTransformProcessor.cs: Support for setting the XmlResolver.
1028
1029 2003-08-01 Ben Maurer  <bmaurer@users.sourceforge.net>
1030
1031         * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
1032
1033 2003-08-01 Ben Maurer  <bmaurer@users.sourceforge.net>
1034
1035         * XslTransformProcessor.cs: Add EvaluateNumber method.
1036
1037 2003-07-31 Ben Maurer  <bmaurer@users.sourceforge.net>
1038
1039         * XsltCompiledContext.cs: Implement more functions.
1040
1041 2003-07-31 Ben Maurer  <bmaurer@users.sourceforge.net>
1042
1043         * Compiler.cs: Add support for key, utility function to parse
1044         QName's from the XsltContext. Store keys in the CompiledStyle, not
1045         in the Stylesheet.
1046         * XslKey.cs: Real implementation
1047         * XslStylesheet.cs: Move the keys to CompiledStyle.
1048         * XsltCompiledContext.cs: Implement the key function
1049
1050 2003-07-31 Ben Maurer  <bmaurer@users.sourceforge.net>
1051
1052         * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1053         the functions ;-). Also wrote current ().
1054
1055 2003-07-31 Ben Maurer  <bmaurer@users.sourceforge.net>
1056
1057         * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1058         done in XPath. Add stubs for XSLT functions.
1059
1060 2003-07-31 Ben Maurer  <bmaurer@users.sourceforge.net>
1061
1062         * Compiler.cs: To resolve a variable you now need to pass the
1063         processor, so that it can be passed to IsEvaluated. A local will
1064         only be resolved if it has already been evaluated.
1065         * XsltCompiledContext.cs: Pass along the processor.
1066         
1067 2003-07-30 Ben Maurer  <bmaurer@users.sourceforge.net>
1068
1069         * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1070         variable values in the XslTransformProcessor.
1071         * XsltCompiledContext.cs: If the scope is null, don't look there!
1072         * Debug.cs: New method Assert
1073
1074 2003-07-30 Ben Maurer  <bmaurer@users.sourceforge.net>
1075
1076         * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1077         * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1078         internal methods in XPathNavigator. Remove verbose debugging messages.
1079
1080 2003-07-29 Ben Maurer  <bmaurer@users.sourceforge.net>
1081
1082         * Initial Checkin
1083