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