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