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