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