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