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