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