1 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
3 * Compiler.cs : removed extraneous using_directive.
5 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
7 * XslKey.cs : the iterator does not require sorting (already sorted).
10 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
13 Variables are stored per stylesheet and added to compiler after
14 all of the contents are processed (handle import precedence).
15 Imports are now processed in prior to other contents (incorrect
16 imports are now rejected). After imports, process includes to
17 process nested imports. In-process included stylesheets are
18 temporarily stored in including stylesheet.
19 Handle keys like variables are handled.
20 Added Compile() that is splitted from .ctor().
22 Store keys in compiler and compiled stylesheet.
23 Duplicate variables in imports are now overriden as expected.
24 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
26 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
28 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
29 from each EvaluateXXX() methods.
30 * MsxslScriptManager.cs : not to leave reference to stylesheet
31 navigator, pass current node to Compile().
32 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
33 navigator cache for each pattern, to avoid Clone() and not to leave
34 reference to already-done instance navigator.
36 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
38 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
39 * XslKey.cs : Use XSLT pattern parser for match.
40 UsePattern is now "Use" (it is not a pattern).
41 Reimplemented Evaluate() to make full use of index table.
42 Added Matches() to handle shorter match evaluation. For const value
43 for key (e.g. key patterns), it could avoid Evaluate().
44 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
45 new KeyIndexTable.Matches().
46 * XslFunctions.cs : Added PatternMatches() that just delegates to new
47 XsltCompiledContext.MatchesKey().
49 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
51 * GenericOutputter.cs : commented out warned fields.
53 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
55 * XslKey.cs : removed last ListIterator.ctor() argument.
56 Reverted the last commit that changed internal key index change
57 from ArrayList to Hashtable. Avoid clone in CollectIndex().
58 Sort results in Evaluate() before passing list to ListIterator.
59 * XslFunctions.cs : removed last ListIterator.ctor() argument.
61 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
64 XsltCompiledContext.cs,
66 XslTransformProcessor.cs : Now dynamic context key index table is
67 separate from XslKey static context. Added KeyIndexTable class and
68 store it into XsltCompiledContext with hash name-table mapping.
69 Cache map from statically-named key to index table.
70 Use Hashtable for internal key cache instead of ArrayList.
72 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
74 * XslKey.cs : fixed node iteration on collecting key indices which
75 could have resulted in an infinite loop.
77 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
79 * XslDecimalFormat.cs : in some cases it does not throw format
82 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
84 * XsltCompiledContext.cs,
85 XslStylesheet.cs : Fixed significant performance loss on whitespace
88 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
90 * XslKey.cs : removed unused NeedAbsoluteMatching.
91 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
92 Added some missing ToString() overrides.
94 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
96 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
97 to work fine with xsl:*-space attributes as expected.
98 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
99 actually nothing. It should not use XsltContext.PreserveWhitespace()
100 because this method is used to control output, while the referenced
101 method is used to control source document.
103 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
105 * XslTemplate.cs : First non-element content were incorrectly ignored.
107 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
109 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
110 to reduce references to stylesheet XPathNavigator. To accomplish it,
111 IStaticXsltContext does not declare GetNsm() anymore. All xslt
112 function types now directly hold IStaticXsltContext.
113 * XslStylesheet.cs : removed "Compiler c" field.
114 Removed unused properties.
116 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
118 * GenericOutputter.cs : When WriteStartElement() requires to add
119 new namespace declaration, _currentNamespaceDecls needs to be set.
121 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
123 * GenericOutputter.cs : for duplicate attribute in an element, no need
124 to keep previous prefix.
126 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
128 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
129 namespace. Rewrite prefix only when there is non-empty namespace.
131 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
133 * XslStylesheet.cs : Now namespace aliases are collected in prior to
134 all other toplevel elements. Removed unused code.
136 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
138 * GenericOutputter.cs : compute attribute prefix only when actual
139 emission. Fixed some cases that namespace output was missing.
141 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
143 * GenericOutputter.cs : no need to use two collections to store
144 pending attributes. Just use ordered ListDictionary.
145 newNamespace.Add(int) causes extraneous boxing.
147 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
149 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
150 OutputLiteralNamespaceUriNodes() so that everyone can understand
151 what it means and when it should be invoked.
153 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
155 * Compiler.cs : added another CompileTemplateContent() which is
156 requred in xsl:for-each. Commented out unused method.
158 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
160 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
161 in stylesheet should be considered in TryElementNamespacesOutput().
162 ParseQNameListAttribute() is not properly working for filling
165 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
167 * XslStylesheet.cs : included stylesheet could be literal result
168 element as stylesheet (see the spec 2.6.1).
170 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
172 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
173 empty string when nsURI is empty.
174 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
175 unlike xml but like span, as written in the spec 16.2.
177 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
179 * XslCompiledContext.cs, XslTransformProcessor.cs :
180 According to errata E25, those namespaces 1) that has the same
181 name as current element's prefix, or an empty name when current
182 element's namespace URI is empty, are not written to output.
183 So added current element information to XPathContext and added
184 prefix parameter to PushElementState(), added xsl:copy check to
185 TryElementNamespacesOutput().
186 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
188 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
190 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
193 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
195 * XslTemplate.cs : According to the spec 5.7, it is an error for
196 xsl:template to have 'mode' without 'match'.
198 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
200 * Compiler.cs : added ns lookup with nsDecls Hashtable.
202 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
204 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
206 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
208 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
209 namespace "http://www.w3.org/XML/1998/namespace".
211 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
213 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
214 * HtmlEmitter.cs : CDATA nodes are written just as text.
215 * GenericOutputter.cs : custom format are treated just as XML output.
217 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
221 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
222 and WriteState. Writing XML declaration is done inside
223 DetermineOutputMethod().
225 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
227 * Compiler.cs : reverted previous fix, since it should be done
228 in XslTransformProcessor with root stylesheet.
229 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
230 don't output alias namespaces. And now consider null exclusions.
232 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
234 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
236 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
238 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
239 namespace nodes. Patch by Andrew Skiba with some fixes.
240 * XslTransformProcessor.cs : Patch by Andrew Skiba.
241 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
242 as to handle all namespace nodes to copy in stylesheet nodes.
243 Global parameterss are evaluated before global variables.
244 * XmlOutputter.cs : removed unused code.
248 * Actually variables and params should check reference recursion.
249 This patch incompletely fixes the problem.
250 * Those operations that considers excluded-result-prefixes must
251 also check those attributes of its ancestors.
253 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
255 * XmlWriterEmitter.cs : String.Replace() was insufficient for
256 sequential candidates for replacement. Patch by Andrew Skiba.
258 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
260 * GenericOutputter.cs : don't output extraneous xml declaration.
263 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
265 * XslStylesheet.cs : MS implementation had chosen to recover from
266 the error, in the way specified in the spec 7.7.1. Patch by Andrew
269 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
271 * XslTemplate.cs : if input is literal result element, it could result
272 in ArgumentException. Patch by Andrew Skiba.
274 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
276 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
277 NullReferenceException. Patch by Andrew Skiba.
279 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
281 * XslOutput.cs : MS.NET recovers from unknown encoding according to
282 XSLT spec 16.1. Patch by Andrew Skiba.
284 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
286 * HtmlEmitter.cs : patch by Andrew Skiba.
287 Remove extra element prefix output. simplify attribute prefix output.
288 Attribute output might have resulted in invalid element stack peek.
289 Output specified media type if any.
291 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
293 * Compiler.cs : Patch by Andrew Skiba.
294 wrap internal exception with XsltCompileException.
295 Raise an error for not-found document URI.
296 QName might contain sequential whitespaces and thus could be empty.
298 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
300 * XslAttributeSet.cs : just ignore other kind of nodes than element
301 in its content. Fix by Andrew Skiba.
303 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
305 * XslOutput.cs : for html and text output mode, just set internal
306 omitXmlDeclaration status true. Patch by Andrew Skiba.
308 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
310 * XslFunctions.cs : fixed line ending mixture.
312 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
314 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
317 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
320 Compiler.cs : XmlResolver.ResolveUri() may return null.
322 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
324 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
327 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
329 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
331 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
333 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
336 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
338 * XslStylesheet.cs : removed unused fields.
339 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
342 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
344 * Compiler.cs, XslTransformProcessor.cs :
345 when creating XmlTextReader, reuse XmlNameTable.
347 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
349 * Compiler.cs : Changes that reflects CompiledExpression changes.
351 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
353 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
354 This fixes bug #67390.
356 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
358 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
360 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
362 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
363 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
364 : Globalization. Removed unused code.
366 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
368 * XslKey.cs : Key-value search in absolute path search was
371 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
373 * HtmlEmitter.cs : Correct URL escape implementation.
375 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
377 * XslTransformProcessor.cs : On document() function, close the
378 XmlTextReader opened from uri string.
380 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
383 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
384 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
385 should override another overload.
387 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
389 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
390 assembly should not include the .dll extension.
392 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
395 - CompilePattern() now throws XsltCompileException for invalid
396 pattern, and add error location support.
397 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
398 Now it returns MSXslNodeSet instance (for msxsl:node-set).
399 * Debug.cs : don't throw System.Exception.
400 * XslFunctions.cs : Added MSXslNodeSet class.
401 * XslTemplate.cs : reflected CompilePattern() change.
402 * XslTransformProcessor.cs : don't throw System.Exception.
403 * XsltCompiledContext.cs : don't throw System.Exception.
405 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
409 XslStylesheet.cs : made classes/enums internal.
411 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
413 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
414 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
415 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
416 XslTransformProcessor.cs : Make extra classes internal.
418 * XslKey.cs : It should require sorting.
419 * Debug.cs : Just avoid debug output. Only who want to output should
422 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
424 * GenericOutputter.cs : Culture-independency fix.
425 Replaced StringCollection to ArrayList.
426 * XslOutput.cs : Culture-independency fix.
428 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
430 * Compiler.cs : When BaseURI is an empty string, it should not try to
431 create Uri instance. This will fix bug #56832, but not sure.
432 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
433 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
434 should be the TextReader's NewLine).
435 * MSXslScriptManager.cs : Should raise an error when the prefix which
436 was specified by "implements-prefix" was not found.
438 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
440 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
441 when BaseURI for msxsl:script node is not available. This fixes
443 Don't output line number in the error message, when it is 0.
445 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
447 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
449 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
454 XslTransformProcessor.cs :
455 Throw specific types of exceptions instead of Exception.
456 * XslFunctions.cs, XsltCompiledContext.cs :
457 added node argument for XsltExtensionFunction ctor() etc.
459 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
461 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
462 CodeDom. Compilation error should be caught. This fixes bug #55875.
464 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
466 * XslStylesheet.cs : "version" attribute is also required for embedded
469 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
472 XslStylesheet.cs : Reject xsl element other than stylesheet and
473 transform. Check mandatory version attribute (only for existence).
475 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
477 * MSXslScriptManager.cs : if extension namespace was not found in
478 the script, just return null. Patch by Joshua Tauberer.
480 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
482 * XslLiteralElement.cs : quick fix for ArgumentNullException which
483 was because of the combination of non-namespaced instances and
484 exclude-result-prefixes.
486 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
488 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
489 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
490 * XslFunctions.cs : hereby Added.
491 * Compiler.cs : Removed deleted usingdecl.
493 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
495 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
496 * XslKey.cs : Added ExprKeyContainer expression type, which is
497 designed to be matched at any level.
498 * Compiler.cs : support for ExprKeyContainer.
500 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
502 * XslKey.cs : Now it collects key and matching nodes at the first
503 evaluation time. After that, we can just get them from the table.
504 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
505 prohibited key() usage in "match" and "use" attributes in xsl:key.
506 Modified accessibility of some classes.
507 * GenericOutputter.cs,
511 XmlWriterEmitter.cs : made classes internal.
512 * XslOutput.cs : support line info for exception.
513 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
515 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
517 * XsltCompiledContext.cs : fixed the length of context info array.
519 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
521 * XsltCompiledContext.cs :
522 replaced EnumeratorIterator with ListIterator
524 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
526 * GenericOutputter.cs,
529 XslTemplate.cs : tiny foreach elimination.
531 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
533 * XslOutput.cs : Reverted. default encoding should be utf-8.
535 2004-01-14 Jackson Harper <jackson@ximian.com>
537 * GenericOutputter.cs: Add constructors that do not take an
538 encoding to fix build.
540 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
542 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
543 write XML declaration. It means that output supports non document
544 entity. This fixes bug #52729.
545 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
546 modified WriteStartDocument() signature to receive Encoding.
547 * GenericOutputter.cs :
548 - Added .ctor() which receives Encoding. (It is used for TextWriter
549 output to get actual encoding.)
550 - Added .ctor() to take an boolean argument which indicates it is
551 variable content or not. (When variable, it does not call
552 WriteStartDocument().)
554 XsltCompiledContext.cs : comment out WriteLine().
555 * XslOutput.cs : set default encoding utf-16.
557 2004-01-08 Nick Drochak <ndrochak@ieee.org>
559 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
561 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
563 * XslDecimalFormat.cs : implemented format-number() other than number
565 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
566 catch ArgumentException which will be thrown by formatting process.
568 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
570 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
572 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
574 * XsltCompiledContext.cs: Remove workaround now that monodoc
577 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
579 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
580 aliases at compilation time, so evaluate at the first run-time.
582 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
584 * GenericOutputter.cs : support for runtime-determined output type.
585 * HtmlEmitter.cs : Fixed invalid doctype output.
586 Fixed incorrect double attribute output on non-HTML elements.
587 Improved indentation. Fixed "selected" attribute output.
588 Don't have to convert "'" to "'".
589 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
590 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
591 * XslStylesheet.cs, XsltCompiledContext.cs :
592 space resolution consideration for import and wildcard.
594 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
596 * Compiler.cs, XslTransformProcessor.cs :
597 Use XmlValidatingReader to support id() for external stylesheets.
598 * XslKey.cs, XsltCompiledContext.cs :
599 to evaluate MatchPattern and UsePattern, SetContext() is required.
600 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
602 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
604 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
605 Added WriteWhitespace().
606 * GenericOutputter.cs, XslTemplate.cs : Call above.
607 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
608 CurrentNode in for-each context have to be pulled at evaluation.
610 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
612 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
613 function for bugzilla #52144. It should be reverted soon.
615 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
617 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
619 * MSMslScriptManager.cs : modified generated assembly class to be unique
620 through running AppDomain.
621 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
622 arguments to actual argument types. Bugzilla #51450 should be fixed.
624 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
626 * HtmlEmitter.cs : Fixed incorrect character entity output.
628 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
630 * Added ScriptCompilerInfo.cs.
631 * MSXslScriptManager.cs : Fixed *true* author's name.
632 Implemented basic msxsl:script support.
633 * Compiler.cs : Added Evidence member.
635 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
637 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
638 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
639 Added WriteWhitespace() to assure not writing whitespaces as cdata.
640 * XslAttributeSet.cs : Error check if attribute-set contains other than
641 xsl:attribute. Error should be XsltException.
642 * XslDecimalFormat.cs : Complete equality check. Allow just one
643 character value for some attributes.
644 * XslStylesheet.cs : Made whitespace control setting overridable.
645 Added Version property (for the future compatibility mode).
646 Check unrecongnized top level element.
647 * XslTemplate.cs : Check priority as a number.
648 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
649 for xsl:preserve-space and xsl:strip-space support.
650 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
651 incomplete), PushScope and Pop
653 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
655 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
657 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
659 * Compiler.cs : In FromListString(), it should use default ns,
661 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
662 precedence. Doctype should be written even if SYSTEM id is absent.
663 Fixed possible multiple xmlns output.
665 - Encoding output using META element.
666 - Doctype name is fixed (html).
667 - Double quotation on PUBLIC and SYSTEM missing.
668 - Fixed incorrect tag name check for IMG.
669 - '>' should not be escaped.
670 * XmlWriterEmitter.cs :
671 Added newline before doctype. In WriteComment(), "--" and tail
672 '-' are not allowed (it escapes, while XmlWriter simply rejects).
673 * XslTransformProcessor.cs : cdata-section-elements should enclose
674 direct child tests only. Added PreserveWhitespace() (incomplete).
675 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
677 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
679 * IdPattern.cs : This should work against multiple ids.
681 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
684 * MSXslScriptManager.cs
686 * XslTransformProcessor.cs
687 * XsltCompiledContext.cs: Some work on msxsl script.
689 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
691 (in general: cdata-section-elements support, correct document()
692 base uri handling, and so on)
693 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
694 And move to document element. Added XslNameUtil.FromListString().
695 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
696 Added WriteCDataSection().
697 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
698 Added InsideCDataSection.
699 * GenericOutputter.cs :
700 In .ctor(), WriteState should be succeeded from output XmlWriter.
701 WriteNamespaceDecl() now drops declaration identical to existing one.
702 Removed obsolete htmlEmulation.
703 * XslOutput.cs : Added CDataSectionElements support.
704 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
705 * XslTransformProcessor.cs :
706 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
707 now considers xsl:exclude-element-prefixes on literal element.
708 Added PushCDataState() and PopCDataState().
709 * XsltCompiledContext.cs : When base uri of document() target is empty,
710 then it should use stylesheet's BaseURI, not that of current document.
712 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
714 * Compiler.cs : Modified decimal-format comparison code.
717 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
718 be called only when required.
719 * HtmlEmitter.cs : Improved indentation stuff.
720 * XslDecimalFormat.cs : Added incomplete implementation of
721 CheckSameAs() and FormatNumber().
723 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
724 from StringDictionary to ArrayList of QName (to keep order).
726 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
728 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
729 node type (i.e. attribute and namespace). Removed extraneous Clone().
730 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
732 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
734 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
735 XslStylesheet.cs : Added Keys support here.
736 * XslTransformProcessor.cs : Should call SetContext() to expressions
737 before evaluating current nodes.
738 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
739 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
740 for KeyPattern. It now uses CompiledStyle.FindKeys().
742 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
744 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
745 to Xalan tests and MS.NET implementation (only for test convenience).
746 * XslOutput.cs : Indent holds string rathen than bool. Its default value
747 varies in the context. When method="html", then default is "yes".
748 * XslTransformProcessor.cs : Extension element prefixes should not
749 be written as stylesheet namespaces.
750 * XsltCompiledContext.cs : Return type of generate-id() is string.
751 Implemented unparsed-entity-uri().
753 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
755 * Compiler.cs : More complete attribute set gathering.
756 GetNamespacesToCopy() should only return Local namespaces.
757 * GenericOutputter.cs : Added support for indentation.
758 Added easy hack for html output.
759 More correct Prefix handling (considers already defined ones).
760 Namespace emmission is moved to CheckState().
761 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
762 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
763 * GenericOutputter.cs, Outputter.cs :
764 Added CanProcessAttributes property for
765 use-attribute-sets of xsl:copy.
766 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
767 Added support for exclude-result-prefixes.
768 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
770 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
772 * Compiler.cs : It is not important, but attribute order became closer
773 to MS.NET and Xalan (assuming from OASIS tests).
775 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
777 * GenericOutputter.cs : Attribute wasn't overwritten its properties
778 because Attribute is struct it was let to another local variable.
780 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
782 * GenericOutputter.cs: make html output a warning, because doing
783 xml will be right most of the time.
785 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
787 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
788 here for a long time and it hurts thread safty and memory
791 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
793 * Compiler.cs: save the parser (will reduce memory allocation when
794 Jackson's jay patch is committed).
796 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
798 * Attribute.cs: Change to struct. Remove QName class.
799 * GenericOutputter.cs: use an Attribute [] rather than an
800 ArrayList. Allows us not to allocate Attributes, which is great
801 for speed. Roll our own allocation.
803 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
805 * Compiler.cs: add GetNsm to main class as well.
807 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
809 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
810 internal version so we get null if the attr doesnt exist.
812 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
814 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
815 where curVarScope == null
817 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
820 - Better handling of empty attributes (vs not being specified)
821 - Bug in handling #default
823 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
825 * Compiler.cs: Off by one when parsing localname of QName
826 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
827 children (so that they get overriden)
829 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
831 * GenericOutputter.cs: Output attributes in order recieved; not
832 required by spec, but useful for running test cases.
834 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
836 * GenericOutputter.cs - fix bug with outputting state.
837 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
838 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
840 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
842 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
843 exprs on use, pass to nav.
845 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
847 * Compiler.cs: pass satic context to Pattern ctor.
849 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
852 GenericOutputter.cs - generic Outputter implementation,
853 Attribute.cs - represents outputted attribute,
854 Emitter.cs - abstract output emitter,
855 TextEmitter.cs - text emitter,
856 XmlWriterEmitter.cs - emitter to XmlWriter.
857 * Checking of duplicating attributes is done in GenericOutputter.
858 * Namespace outputting logic is implemented in GenericOutputter.
859 * Outputter.cs: Writing namespace declarations is delegated to
860 derived classes (GenericOutputter).
861 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
863 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
865 * XslTransformProcessor.cs: evaluate variables at beginning
866 when / is current node.
868 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
870 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
871 Fix up namespace handeling
873 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
875 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
877 * XslDecimalFormat.cs: Stub for decimal-format.
879 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
881 * TextOutputter.cs: Add option to ignore element content (Oleg).
883 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
885 * Compiler.cs: Really give null for blank avt's
887 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
889 * Compiler.cs: Fixed lre/lre04.
891 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
893 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
894 won't have default namespace. See http://www.w3.org/TR/xslt#qname
896 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
898 * XslTransformProcessor.cs: add support for resolving documents.
899 * XsltCompiledContext: add support for document () function.
901 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
903 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
904 of the abstract methods in Outputter, making them call other
905 functions with default values, remove impl's in derived classes.
907 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
909 * Outputter.cs: s/Close/Done
910 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
911 * XslTransformProcessor.cs: Flush output when popping, pop at end.
913 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
915 * Outputter.cs: Add support for namespaces.
917 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
919 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
920 XslTransformProcessor.cs: move output logic from XslStylesheet to
923 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
925 * XslOutput.cs: add support for encoding.
927 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
929 * *.cs: Support for xsl:output. (Oleg)
931 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
933 * Compiler.cs: handle extension and excluded namespaces.
935 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
937 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
938 from the stylesheet for correct namespace resolution.
940 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
942 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
943 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
945 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
947 * XslTransformProcessor.cs: Add a table to detect when an object
949 * XslAttributeSet.cs: Use the above table. Dont throw nullref
950 exception when no use-attribute-sets are specified.
952 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
954 * Compiler.cs: Add support for boolean attributes (yes/no).
956 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
958 * Compiler.cs: Add method LocalNameOf, to get the local name of a
960 * XslTransformProcessor.cs: Support for setting the XmlResolver.
962 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
964 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
966 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
968 * XslTransformProcessor.cs: Add EvaluateNumber method.
970 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
972 * XsltCompiledContext.cs: Implement more functions.
974 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
976 * Compiler.cs: Add support for key, utility function to parse
977 QName's from the XsltContext. Store keys in the CompiledStyle, not
979 * XslKey.cs: Real implementation
980 * XslStylesheet.cs: Move the keys to CompiledStyle.
981 * XsltCompiledContext.cs: Implement the key function
983 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
985 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
986 the functions ;-). Also wrote current ().
988 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
990 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
991 done in XPath. Add stubs for XSLT functions.
993 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
995 * Compiler.cs: To resolve a variable you now need to pass the
996 processor, so that it can be passed to IsEvaluated. A local will
997 only be resolved if it has already been evaluated.
998 * XsltCompiledContext.cs: Pass along the processor.
1000 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1002 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1003 variable values in the XslTransformProcessor.
1004 * XsltCompiledContext.cs: If the scope is null, don't look there!
1005 * Debug.cs: New method Assert
1007 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1009 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1010 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1011 internal methods in XPathNavigator. Remove verbose debugging messages.
1013 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>