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