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