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