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