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