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