1 2005-08-25 Atsushi Enomoto <atsushi@ximian.com>
3 * ScriptCompilerInfo.cs : It should not be "#line" when the source is
4 not C#. It should fix bug #75789.
6 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
8 * XslKey.cs : Fixed match pattern in xsl:key to check attribute nodes.
9 To minimize attribute iteration, use Pattern.EvaluatedNodeType.
12 2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
14 * XslFunctions.cs : XslTransform recovers from errors on document
15 resolution. Fixed bug #75663.
17 2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
19 * HtmlEmitter.cs : Boolean attribute values should be omitted, but
20 only for related elements.
22 2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
24 * MSXslScriptManager.cs : it should ignore compiler warnings. This
27 2005-04-07 Andrew Skiba <andrews@mainsoft.com>
29 * XslDecimalFormat.jvm.cs : added
31 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
33 * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
34 support CodeDom). Use Guid.ToString("N").
36 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
38 * Compiler.cs : removed extraneous using_directive.
40 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
42 * XslKey.cs : the iterator does not require sorting (already sorted).
45 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
48 Variables are stored per stylesheet and added to compiler after
49 all of the contents are processed (handle import precedence).
50 Imports are now processed in prior to other contents (incorrect
51 imports are now rejected). After imports, process includes to
52 process nested imports. In-process included stylesheets are
53 temporarily stored in including stylesheet.
54 Handle keys like variables are handled.
55 Added Compile() that is splitted from .ctor().
57 Store keys in compiler and compiled stylesheet.
58 Duplicate variables in imports are now overriden as expected.
59 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
61 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
63 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
64 from each EvaluateXXX() methods.
65 * MsxslScriptManager.cs : not to leave reference to stylesheet
66 navigator, pass current node to Compile().
67 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
68 navigator cache for each pattern, to avoid Clone() and not to leave
69 reference to already-done instance navigator.
71 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
73 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
74 * XslKey.cs : Use XSLT pattern parser for match.
75 UsePattern is now "Use" (it is not a pattern).
76 Reimplemented Evaluate() to make full use of index table.
77 Added Matches() to handle shorter match evaluation. For const value
78 for key (e.g. key patterns), it could avoid Evaluate().
79 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
80 new KeyIndexTable.Matches().
81 * XslFunctions.cs : Added PatternMatches() that just delegates to new
82 XsltCompiledContext.MatchesKey().
84 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
86 * GenericOutputter.cs : commented out warned fields.
88 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
90 * XslKey.cs : removed last ListIterator.ctor() argument.
91 Reverted the last commit that changed internal key index change
92 from ArrayList to Hashtable. Avoid clone in CollectIndex().
93 Sort results in Evaluate() before passing list to ListIterator.
94 * XslFunctions.cs : removed last ListIterator.ctor() argument.
96 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
99 XsltCompiledContext.cs,
101 XslTransformProcessor.cs : Now dynamic context key index table is
102 separate from XslKey static context. Added KeyIndexTable class and
103 store it into XsltCompiledContext with hash name-table mapping.
104 Cache map from statically-named key to index table.
105 Use Hashtable for internal key cache instead of ArrayList.
107 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
109 * XslKey.cs : fixed node iteration on collecting key indices which
110 could have resulted in an infinite loop.
112 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
114 * XslDecimalFormat.cs : in some cases it does not throw format
117 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
119 * XsltCompiledContext.cs,
120 XslStylesheet.cs : Fixed significant performance loss on whitespace
123 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
125 * XslKey.cs : removed unused NeedAbsoluteMatching.
126 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
127 Added some missing ToString() overrides.
129 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
131 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
132 to work fine with xsl:*-space attributes as expected.
133 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
134 actually nothing. It should not use XsltContext.PreserveWhitespace()
135 because this method is used to control output, while the referenced
136 method is used to control source document.
138 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
140 * XslTemplate.cs : First non-element content were incorrectly ignored.
142 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
144 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
145 to reduce references to stylesheet XPathNavigator. To accomplish it,
146 IStaticXsltContext does not declare GetNsm() anymore. All xslt
147 function types now directly hold IStaticXsltContext.
148 * XslStylesheet.cs : removed "Compiler c" field.
149 Removed unused properties.
151 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
153 * GenericOutputter.cs : When WriteStartElement() requires to add
154 new namespace declaration, _currentNamespaceDecls needs to be set.
156 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
158 * GenericOutputter.cs : for duplicate attribute in an element, no need
159 to keep previous prefix.
161 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
163 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
164 namespace. Rewrite prefix only when there is non-empty namespace.
166 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
168 * XslStylesheet.cs : Now namespace aliases are collected in prior to
169 all other toplevel elements. Removed unused code.
171 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
173 * GenericOutputter.cs : compute attribute prefix only when actual
174 emission. Fixed some cases that namespace output was missing.
176 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
178 * GenericOutputter.cs : no need to use two collections to store
179 pending attributes. Just use ordered ListDictionary.
180 newNamespace.Add(int) causes extraneous boxing.
182 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
184 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
185 OutputLiteralNamespaceUriNodes() so that everyone can understand
186 what it means and when it should be invoked.
188 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
190 * Compiler.cs : added another CompileTemplateContent() which is
191 requred in xsl:for-each. Commented out unused method.
193 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
195 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
196 in stylesheet should be considered in TryElementNamespacesOutput().
197 ParseQNameListAttribute() is not properly working for filling
200 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
202 * XslStylesheet.cs : included stylesheet could be literal result
203 element as stylesheet (see the spec 2.6.1).
205 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
207 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
208 empty string when nsURI is empty.
209 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
210 unlike xml but like span, as written in the spec 16.2.
212 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
214 * XslCompiledContext.cs, XslTransformProcessor.cs :
215 According to errata E25, those namespaces 1) that has the same
216 name as current element's prefix, or an empty name when current
217 element's namespace URI is empty, are not written to output.
218 So added current element information to XPathContext and added
219 prefix parameter to PushElementState(), added xsl:copy check to
220 TryElementNamespacesOutput().
221 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
223 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
225 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
228 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
230 * XslTemplate.cs : According to the spec 5.7, it is an error for
231 xsl:template to have 'mode' without 'match'.
233 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
235 * Compiler.cs : added ns lookup with nsDecls Hashtable.
237 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
239 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
241 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
243 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
244 namespace "http://www.w3.org/XML/1998/namespace".
246 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
248 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
249 * HtmlEmitter.cs : CDATA nodes are written just as text.
250 * GenericOutputter.cs : custom format are treated just as XML output.
252 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
256 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
257 and WriteState. Writing XML declaration is done inside
258 DetermineOutputMethod().
260 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
262 * Compiler.cs : reverted previous fix, since it should be done
263 in XslTransformProcessor with root stylesheet.
264 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
265 don't output alias namespaces. And now consider null exclusions.
267 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
269 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
271 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
273 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
274 namespace nodes. Patch by Andrew Skiba with some fixes.
275 * XslTransformProcessor.cs : Patch by Andrew Skiba.
276 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
277 as to handle all namespace nodes to copy in stylesheet nodes.
278 Global parameterss are evaluated before global variables.
279 * XmlOutputter.cs : removed unused code.
283 * Actually variables and params should check reference recursion.
284 This patch incompletely fixes the problem.
285 * Those operations that considers excluded-result-prefixes must
286 also check those attributes of its ancestors.
288 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
290 * XmlWriterEmitter.cs : String.Replace() was insufficient for
291 sequential candidates for replacement. Patch by Andrew Skiba.
293 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
295 * GenericOutputter.cs : don't output extraneous xml declaration.
298 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
300 * XslStylesheet.cs : MS implementation had chosen to recover from
301 the error, in the way specified in the spec 7.7.1. Patch by Andrew
304 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
306 * XslTemplate.cs : if input is literal result element, it could result
307 in ArgumentException. Patch by Andrew Skiba.
309 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
311 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
312 NullReferenceException. Patch by Andrew Skiba.
314 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
316 * XslOutput.cs : MS.NET recovers from unknown encoding according to
317 XSLT spec 16.1. Patch by Andrew Skiba.
319 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
321 * HtmlEmitter.cs : patch by Andrew Skiba.
322 Remove extra element prefix output. simplify attribute prefix output.
323 Attribute output might have resulted in invalid element stack peek.
324 Output specified media type if any.
326 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
328 * Compiler.cs : Patch by Andrew Skiba.
329 wrap internal exception with XsltCompileException.
330 Raise an error for not-found document URI.
331 QName might contain sequential whitespaces and thus could be empty.
333 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
335 * XslAttributeSet.cs : just ignore other kind of nodes than element
336 in its content. Fix by Andrew Skiba.
338 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
340 * XslOutput.cs : for html and text output mode, just set internal
341 omitXmlDeclaration status true. Patch by Andrew Skiba.
343 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
345 * XslFunctions.cs : fixed line ending mixture.
347 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
349 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
352 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
355 Compiler.cs : XmlResolver.ResolveUri() may return null.
357 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
359 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
362 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
364 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
366 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
368 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
371 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
373 * XslStylesheet.cs : removed unused fields.
374 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
377 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
379 * Compiler.cs, XslTransformProcessor.cs :
380 when creating XmlTextReader, reuse XmlNameTable.
382 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
384 * Compiler.cs : Changes that reflects CompiledExpression changes.
386 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
388 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
389 This fixes bug #67390.
391 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
393 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
395 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
397 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
398 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
399 : Globalization. Removed unused code.
401 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
403 * XslKey.cs : Key-value search in absolute path search was
406 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
408 * HtmlEmitter.cs : Correct URL escape implementation.
410 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
412 * XslTransformProcessor.cs : On document() function, close the
413 XmlTextReader opened from uri string.
415 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
418 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
419 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
420 should override another overload.
422 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
424 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
425 assembly should not include the .dll extension.
427 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
430 - CompilePattern() now throws XsltCompileException for invalid
431 pattern, and add error location support.
432 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
433 Now it returns MSXslNodeSet instance (for msxsl:node-set).
434 * Debug.cs : don't throw System.Exception.
435 * XslFunctions.cs : Added MSXslNodeSet class.
436 * XslTemplate.cs : reflected CompilePattern() change.
437 * XslTransformProcessor.cs : don't throw System.Exception.
438 * XsltCompiledContext.cs : don't throw System.Exception.
440 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
444 XslStylesheet.cs : made classes/enums internal.
446 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
448 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
449 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
450 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
451 XslTransformProcessor.cs : Make extra classes internal.
453 * XslKey.cs : It should require sorting.
454 * Debug.cs : Just avoid debug output. Only who want to output should
457 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
459 * GenericOutputter.cs : Culture-independency fix.
460 Replaced StringCollection to ArrayList.
461 * XslOutput.cs : Culture-independency fix.
463 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
465 * Compiler.cs : When BaseURI is an empty string, it should not try to
466 create Uri instance. This will fix bug #56832, but not sure.
467 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
468 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
469 should be the TextReader's NewLine).
470 * MSXslScriptManager.cs : Should raise an error when the prefix which
471 was specified by "implements-prefix" was not found.
473 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
475 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
476 when BaseURI for msxsl:script node is not available. This fixes
478 Don't output line number in the error message, when it is 0.
480 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
482 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
484 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
489 XslTransformProcessor.cs :
490 Throw specific types of exceptions instead of Exception.
491 * XslFunctions.cs, XsltCompiledContext.cs :
492 added node argument for XsltExtensionFunction ctor() etc.
494 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
496 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
497 CodeDom. Compilation error should be caught. This fixes bug #55875.
499 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
501 * XslStylesheet.cs : "version" attribute is also required for embedded
504 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
507 XslStylesheet.cs : Reject xsl element other than stylesheet and
508 transform. Check mandatory version attribute (only for existence).
510 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
512 * MSXslScriptManager.cs : if extension namespace was not found in
513 the script, just return null. Patch by Joshua Tauberer.
515 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
517 * XslLiteralElement.cs : quick fix for ArgumentNullException which
518 was because of the combination of non-namespaced instances and
519 exclude-result-prefixes.
521 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
523 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
524 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
525 * XslFunctions.cs : hereby Added.
526 * Compiler.cs : Removed deleted usingdecl.
528 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
530 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
531 * XslKey.cs : Added ExprKeyContainer expression type, which is
532 designed to be matched at any level.
533 * Compiler.cs : support for ExprKeyContainer.
535 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
537 * XslKey.cs : Now it collects key and matching nodes at the first
538 evaluation time. After that, we can just get them from the table.
539 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
540 prohibited key() usage in "match" and "use" attributes in xsl:key.
541 Modified accessibility of some classes.
542 * GenericOutputter.cs,
546 XmlWriterEmitter.cs : made classes internal.
547 * XslOutput.cs : support line info for exception.
548 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
550 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
552 * XsltCompiledContext.cs : fixed the length of context info array.
554 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
556 * XsltCompiledContext.cs :
557 replaced EnumeratorIterator with ListIterator
559 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
561 * GenericOutputter.cs,
564 XslTemplate.cs : tiny foreach elimination.
566 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
568 * XslOutput.cs : Reverted. default encoding should be utf-8.
570 2004-01-14 Jackson Harper <jackson@ximian.com>
572 * GenericOutputter.cs: Add constructors that do not take an
573 encoding to fix build.
575 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
577 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
578 write XML declaration. It means that output supports non document
579 entity. This fixes bug #52729.
580 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
581 modified WriteStartDocument() signature to receive Encoding.
582 * GenericOutputter.cs :
583 - Added .ctor() which receives Encoding. (It is used for TextWriter
584 output to get actual encoding.)
585 - Added .ctor() to take an boolean argument which indicates it is
586 variable content or not. (When variable, it does not call
587 WriteStartDocument().)
589 XsltCompiledContext.cs : comment out WriteLine().
590 * XslOutput.cs : set default encoding utf-16.
592 2004-01-08 Nick Drochak <ndrochak@ieee.org>
594 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
596 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
598 * XslDecimalFormat.cs : implemented format-number() other than number
600 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
601 catch ArgumentException which will be thrown by formatting process.
603 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
605 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
607 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
609 * XsltCompiledContext.cs: Remove workaround now that monodoc
612 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
614 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
615 aliases at compilation time, so evaluate at the first run-time.
617 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
619 * GenericOutputter.cs : support for runtime-determined output type.
620 * HtmlEmitter.cs : Fixed invalid doctype output.
621 Fixed incorrect double attribute output on non-HTML elements.
622 Improved indentation. Fixed "selected" attribute output.
623 Don't have to convert "'" to "'".
624 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
625 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
626 * XslStylesheet.cs, XsltCompiledContext.cs :
627 space resolution consideration for import and wildcard.
629 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
631 * Compiler.cs, XslTransformProcessor.cs :
632 Use XmlValidatingReader to support id() for external stylesheets.
633 * XslKey.cs, XsltCompiledContext.cs :
634 to evaluate MatchPattern and UsePattern, SetContext() is required.
635 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
637 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
639 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
640 Added WriteWhitespace().
641 * GenericOutputter.cs, XslTemplate.cs : Call above.
642 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
643 CurrentNode in for-each context have to be pulled at evaluation.
645 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
647 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
648 function for bugzilla #52144. It should be reverted soon.
650 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
652 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
654 * MSMslScriptManager.cs : modified generated assembly class to be unique
655 through running AppDomain.
656 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
657 arguments to actual argument types. Bugzilla #51450 should be fixed.
659 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
661 * HtmlEmitter.cs : Fixed incorrect character entity output.
663 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
665 * Added ScriptCompilerInfo.cs.
666 * MSXslScriptManager.cs : Fixed *true* author's name.
667 Implemented basic msxsl:script support.
668 * Compiler.cs : Added Evidence member.
670 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
672 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
673 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
674 Added WriteWhitespace() to assure not writing whitespaces as cdata.
675 * XslAttributeSet.cs : Error check if attribute-set contains other than
676 xsl:attribute. Error should be XsltException.
677 * XslDecimalFormat.cs : Complete equality check. Allow just one
678 character value for some attributes.
679 * XslStylesheet.cs : Made whitespace control setting overridable.
680 Added Version property (for the future compatibility mode).
681 Check unrecongnized top level element.
682 * XslTemplate.cs : Check priority as a number.
683 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
684 for xsl:preserve-space and xsl:strip-space support.
685 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
686 incomplete), PushScope and Pop
688 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
690 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
692 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
694 * Compiler.cs : In FromListString(), it should use default ns,
696 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
697 precedence. Doctype should be written even if SYSTEM id is absent.
698 Fixed possible multiple xmlns output.
700 - Encoding output using META element.
701 - Doctype name is fixed (html).
702 - Double quotation on PUBLIC and SYSTEM missing.
703 - Fixed incorrect tag name check for IMG.
704 - '>' should not be escaped.
705 * XmlWriterEmitter.cs :
706 Added newline before doctype. In WriteComment(), "--" and tail
707 '-' are not allowed (it escapes, while XmlWriter simply rejects).
708 * XslTransformProcessor.cs : cdata-section-elements should enclose
709 direct child tests only. Added PreserveWhitespace() (incomplete).
710 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
712 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
714 * IdPattern.cs : This should work against multiple ids.
716 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
719 * MSXslScriptManager.cs
721 * XslTransformProcessor.cs
722 * XsltCompiledContext.cs: Some work on msxsl script.
724 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
726 (in general: cdata-section-elements support, correct document()
727 base uri handling, and so on)
728 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
729 And move to document element. Added XslNameUtil.FromListString().
730 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
731 Added WriteCDataSection().
732 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
733 Added InsideCDataSection.
734 * GenericOutputter.cs :
735 In .ctor(), WriteState should be succeeded from output XmlWriter.
736 WriteNamespaceDecl() now drops declaration identical to existing one.
737 Removed obsolete htmlEmulation.
738 * XslOutput.cs : Added CDataSectionElements support.
739 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
740 * XslTransformProcessor.cs :
741 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
742 now considers xsl:exclude-element-prefixes on literal element.
743 Added PushCDataState() and PopCDataState().
744 * XsltCompiledContext.cs : When base uri of document() target is empty,
745 then it should use stylesheet's BaseURI, not that of current document.
747 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
749 * Compiler.cs : Modified decimal-format comparison code.
752 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
753 be called only when required.
754 * HtmlEmitter.cs : Improved indentation stuff.
755 * XslDecimalFormat.cs : Added incomplete implementation of
756 CheckSameAs() and FormatNumber().
758 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
759 from StringDictionary to ArrayList of QName (to keep order).
761 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
763 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
764 node type (i.e. attribute and namespace). Removed extraneous Clone().
765 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
767 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
769 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
770 XslStylesheet.cs : Added Keys support here.
771 * XslTransformProcessor.cs : Should call SetContext() to expressions
772 before evaluating current nodes.
773 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
774 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
775 for KeyPattern. It now uses CompiledStyle.FindKeys().
777 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
779 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
780 to Xalan tests and MS.NET implementation (only for test convenience).
781 * XslOutput.cs : Indent holds string rathen than bool. Its default value
782 varies in the context. When method="html", then default is "yes".
783 * XslTransformProcessor.cs : Extension element prefixes should not
784 be written as stylesheet namespaces.
785 * XsltCompiledContext.cs : Return type of generate-id() is string.
786 Implemented unparsed-entity-uri().
788 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
790 * Compiler.cs : More complete attribute set gathering.
791 GetNamespacesToCopy() should only return Local namespaces.
792 * GenericOutputter.cs : Added support for indentation.
793 Added easy hack for html output.
794 More correct Prefix handling (considers already defined ones).
795 Namespace emmission is moved to CheckState().
796 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
797 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
798 * GenericOutputter.cs, Outputter.cs :
799 Added CanProcessAttributes property for
800 use-attribute-sets of xsl:copy.
801 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
802 Added support for exclude-result-prefixes.
803 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
805 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
807 * Compiler.cs : It is not important, but attribute order became closer
808 to MS.NET and Xalan (assuming from OASIS tests).
810 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
812 * GenericOutputter.cs : Attribute wasn't overwritten its properties
813 because Attribute is struct it was let to another local variable.
815 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
817 * GenericOutputter.cs: make html output a warning, because doing
818 xml will be right most of the time.
820 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
822 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
823 here for a long time and it hurts thread safty and memory
826 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
828 * Compiler.cs: save the parser (will reduce memory allocation when
829 Jackson's jay patch is committed).
831 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
833 * Attribute.cs: Change to struct. Remove QName class.
834 * GenericOutputter.cs: use an Attribute [] rather than an
835 ArrayList. Allows us not to allocate Attributes, which is great
836 for speed. Roll our own allocation.
838 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
840 * Compiler.cs: add GetNsm to main class as well.
842 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
844 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
845 internal version so we get null if the attr doesnt exist.
847 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
849 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
850 where curVarScope == null
852 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
855 - Better handling of empty attributes (vs not being specified)
856 - Bug in handling #default
858 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
860 * Compiler.cs: Off by one when parsing localname of QName
861 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
862 children (so that they get overriden)
864 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
866 * GenericOutputter.cs: Output attributes in order recieved; not
867 required by spec, but useful for running test cases.
869 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
871 * GenericOutputter.cs - fix bug with outputting state.
872 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
873 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
875 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
877 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
878 exprs on use, pass to nav.
880 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
882 * Compiler.cs: pass satic context to Pattern ctor.
884 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
887 GenericOutputter.cs - generic Outputter implementation,
888 Attribute.cs - represents outputted attribute,
889 Emitter.cs - abstract output emitter,
890 TextEmitter.cs - text emitter,
891 XmlWriterEmitter.cs - emitter to XmlWriter.
892 * Checking of duplicating attributes is done in GenericOutputter.
893 * Namespace outputting logic is implemented in GenericOutputter.
894 * Outputter.cs: Writing namespace declarations is delegated to
895 derived classes (GenericOutputter).
896 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
898 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
900 * XslTransformProcessor.cs: evaluate variables at beginning
901 when / is current node.
903 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
905 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
906 Fix up namespace handeling
908 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
910 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
912 * XslDecimalFormat.cs: Stub for decimal-format.
914 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
916 * TextOutputter.cs: Add option to ignore element content (Oleg).
918 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
920 * Compiler.cs: Really give null for blank avt's
922 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
924 * Compiler.cs: Fixed lre/lre04.
926 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
928 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
929 won't have default namespace. See http://www.w3.org/TR/xslt#qname
931 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
933 * XslTransformProcessor.cs: add support for resolving documents.
934 * XsltCompiledContext: add support for document () function.
936 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
938 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
939 of the abstract methods in Outputter, making them call other
940 functions with default values, remove impl's in derived classes.
942 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
944 * Outputter.cs: s/Close/Done
945 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
946 * XslTransformProcessor.cs: Flush output when popping, pop at end.
948 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
950 * Outputter.cs: Add support for namespaces.
952 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
954 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
955 XslTransformProcessor.cs: move output logic from XslStylesheet to
958 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
960 * XslOutput.cs: add support for encoding.
962 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
964 * *.cs: Support for xsl:output. (Oleg)
966 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
968 * Compiler.cs: handle extension and excluded namespaces.
970 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
972 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
973 from the stylesheet for correct namespace resolution.
975 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
977 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
978 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
980 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
982 * XslTransformProcessor.cs: Add a table to detect when an object
984 * XslAttributeSet.cs: Use the above table. Dont throw nullref
985 exception when no use-attribute-sets are specified.
987 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
989 * Compiler.cs: Add support for boolean attributes (yes/no).
991 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
993 * Compiler.cs: Add method LocalNameOf, to get the local name of a
995 * XslTransformProcessor.cs: Support for setting the XmlResolver.
997 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
999 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
1001 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1003 * XslTransformProcessor.cs: Add EvaluateNumber method.
1005 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1007 * XsltCompiledContext.cs: Implement more functions.
1009 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1011 * Compiler.cs: Add support for key, utility function to parse
1012 QName's from the XsltContext. Store keys in the CompiledStyle, not
1014 * XslKey.cs: Real implementation
1015 * XslStylesheet.cs: Move the keys to CompiledStyle.
1016 * XsltCompiledContext.cs: Implement the key function
1018 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1020 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1021 the functions ;-). Also wrote current ().
1023 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1025 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1026 done in XPath. Add stubs for XSLT functions.
1028 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1030 * Compiler.cs: To resolve a variable you now need to pass the
1031 processor, so that it can be passed to IsEvaluated. A local will
1032 only be resolved if it has already been evaluated.
1033 * XsltCompiledContext.cs: Pass along the processor.
1035 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1037 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1038 variable values in the XslTransformProcessor.
1039 * XsltCompiledContext.cs: If the scope is null, don't look there!
1040 * Debug.cs: New method Assert
1042 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1044 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1045 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1046 internal methods in XPathNavigator. Remove verbose debugging messages.
1048 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>