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