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