1 2005-11-17 Atsushi Enomoto <atsushi@ximian.com>
3 * XslCompiledContext.cs : since XsltContextInfo is struct, having
4 an array of this type and setting fields of each struct didn't
5 make sense. It thus blocked expected PreserveWhitespace behavior.
7 2005-10-24 Atsushi Enomoto <atsushi@ximian.com>
9 * Compiler.cs : (FromString(s, hashtable)) pull default namespace
10 from the table for LRE (don't consider it as ""; spec. 7.1.2)
13 2005-09-16 Atsushi Enomoto <atsushi@ximian.com>
15 * ScriptCompilerInfo.cs : Compile correct replacement result.
18 2005-09-10 Atsushi Enomoto <atsushi@ximian.com>
20 * Compiler.cs : (Compile) check children only when it is the document
21 element. Fixed bug #76046.
23 2005-08-25 Atsushi Enomoto <atsushi@ximian.com>
25 * ScriptCompilerInfo.cs : It should not be "#line" when the source is
26 not C#. It should fix bug #75789.
28 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
30 * XslKey.cs : Fixed match pattern in xsl:key to check attribute nodes.
31 To minimize attribute iteration, use Pattern.EvaluatedNodeType.
34 2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
36 * XslFunctions.cs : XslTransform recovers from errors on document
37 resolution. Fixed bug #75663.
39 2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
41 * HtmlEmitter.cs : Boolean attribute values should be omitted, but
42 only for related elements.
44 2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
46 * MSXslScriptManager.cs : it should ignore compiler warnings. This
49 2005-04-07 Andrew Skiba <andrews@mainsoft.com>
51 * XslDecimalFormat.jvm.cs : added
53 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
55 * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
56 support CodeDom). Use Guid.ToString("N").
58 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
60 * Compiler.cs : removed extraneous using_directive.
62 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
64 * XslKey.cs : the iterator does not require sorting (already sorted).
67 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
70 Variables are stored per stylesheet and added to compiler after
71 all of the contents are processed (handle import precedence).
72 Imports are now processed in prior to other contents (incorrect
73 imports are now rejected). After imports, process includes to
74 process nested imports. In-process included stylesheets are
75 temporarily stored in including stylesheet.
76 Handle keys like variables are handled.
77 Added Compile() that is splitted from .ctor().
79 Store keys in compiler and compiled stylesheet.
80 Duplicate variables in imports are now overriden as expected.
81 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
83 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
85 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
86 from each EvaluateXXX() methods.
87 * MsxslScriptManager.cs : not to leave reference to stylesheet
88 navigator, pass current node to Compile().
89 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
90 navigator cache for each pattern, to avoid Clone() and not to leave
91 reference to already-done instance navigator.
93 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
95 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
96 * XslKey.cs : Use XSLT pattern parser for match.
97 UsePattern is now "Use" (it is not a pattern).
98 Reimplemented Evaluate() to make full use of index table.
99 Added Matches() to handle shorter match evaluation. For const value
100 for key (e.g. key patterns), it could avoid Evaluate().
101 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
102 new KeyIndexTable.Matches().
103 * XslFunctions.cs : Added PatternMatches() that just delegates to new
104 XsltCompiledContext.MatchesKey().
106 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
108 * GenericOutputter.cs : commented out warned fields.
110 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
112 * XslKey.cs : removed last ListIterator.ctor() argument.
113 Reverted the last commit that changed internal key index change
114 from ArrayList to Hashtable. Avoid clone in CollectIndex().
115 Sort results in Evaluate() before passing list to ListIterator.
116 * XslFunctions.cs : removed last ListIterator.ctor() argument.
118 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
121 XsltCompiledContext.cs,
123 XslTransformProcessor.cs : Now dynamic context key index table is
124 separate from XslKey static context. Added KeyIndexTable class and
125 store it into XsltCompiledContext with hash name-table mapping.
126 Cache map from statically-named key to index table.
127 Use Hashtable for internal key cache instead of ArrayList.
129 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
131 * XslKey.cs : fixed node iteration on collecting key indices which
132 could have resulted in an infinite loop.
134 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
136 * XslDecimalFormat.cs : in some cases it does not throw format
139 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
141 * XsltCompiledContext.cs,
142 XslStylesheet.cs : Fixed significant performance loss on whitespace
145 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
147 * XslKey.cs : removed unused NeedAbsoluteMatching.
148 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
149 Added some missing ToString() overrides.
151 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
153 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
154 to work fine with xsl:*-space attributes as expected.
155 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
156 actually nothing. It should not use XsltContext.PreserveWhitespace()
157 because this method is used to control output, while the referenced
158 method is used to control source document.
160 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
162 * XslTemplate.cs : First non-element content were incorrectly ignored.
164 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
166 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
167 to reduce references to stylesheet XPathNavigator. To accomplish it,
168 IStaticXsltContext does not declare GetNsm() anymore. All xslt
169 function types now directly hold IStaticXsltContext.
170 * XslStylesheet.cs : removed "Compiler c" field.
171 Removed unused properties.
173 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
175 * GenericOutputter.cs : When WriteStartElement() requires to add
176 new namespace declaration, _currentNamespaceDecls needs to be set.
178 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
180 * GenericOutputter.cs : for duplicate attribute in an element, no need
181 to keep previous prefix.
183 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
185 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
186 namespace. Rewrite prefix only when there is non-empty namespace.
188 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
190 * XslStylesheet.cs : Now namespace aliases are collected in prior to
191 all other toplevel elements. Removed unused code.
193 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
195 * GenericOutputter.cs : compute attribute prefix only when actual
196 emission. Fixed some cases that namespace output was missing.
198 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
200 * GenericOutputter.cs : no need to use two collections to store
201 pending attributes. Just use ordered ListDictionary.
202 newNamespace.Add(int) causes extraneous boxing.
204 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
206 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
207 OutputLiteralNamespaceUriNodes() so that everyone can understand
208 what it means and when it should be invoked.
210 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
212 * Compiler.cs : added another CompileTemplateContent() which is
213 requred in xsl:for-each. Commented out unused method.
215 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
217 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
218 in stylesheet should be considered in TryElementNamespacesOutput().
219 ParseQNameListAttribute() is not properly working for filling
222 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
224 * XslStylesheet.cs : included stylesheet could be literal result
225 element as stylesheet (see the spec 2.6.1).
227 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
229 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
230 empty string when nsURI is empty.
231 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
232 unlike xml but like span, as written in the spec 16.2.
234 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
236 * XslCompiledContext.cs, XslTransformProcessor.cs :
237 According to errata E25, those namespaces 1) that has the same
238 name as current element's prefix, or an empty name when current
239 element's namespace URI is empty, are not written to output.
240 So added current element information to XPathContext and added
241 prefix parameter to PushElementState(), added xsl:copy check to
242 TryElementNamespacesOutput().
243 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
245 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
247 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
250 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
252 * XslTemplate.cs : According to the spec 5.7, it is an error for
253 xsl:template to have 'mode' without 'match'.
255 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
257 * Compiler.cs : added ns lookup with nsDecls Hashtable.
259 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
261 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
263 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
265 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
266 namespace "http://www.w3.org/XML/1998/namespace".
268 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
270 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
271 * HtmlEmitter.cs : CDATA nodes are written just as text.
272 * GenericOutputter.cs : custom format are treated just as XML output.
274 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
278 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
279 and WriteState. Writing XML declaration is done inside
280 DetermineOutputMethod().
282 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
284 * Compiler.cs : reverted previous fix, since it should be done
285 in XslTransformProcessor with root stylesheet.
286 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
287 don't output alias namespaces. And now consider null exclusions.
289 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
291 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
293 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
295 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
296 namespace nodes. Patch by Andrew Skiba with some fixes.
297 * XslTransformProcessor.cs : Patch by Andrew Skiba.
298 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
299 as to handle all namespace nodes to copy in stylesheet nodes.
300 Global parameterss are evaluated before global variables.
301 * XmlOutputter.cs : removed unused code.
305 * Actually variables and params should check reference recursion.
306 This patch incompletely fixes the problem.
307 * Those operations that considers excluded-result-prefixes must
308 also check those attributes of its ancestors.
310 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
312 * XmlWriterEmitter.cs : String.Replace() was insufficient for
313 sequential candidates for replacement. Patch by Andrew Skiba.
315 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
317 * GenericOutputter.cs : don't output extraneous xml declaration.
320 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
322 * XslStylesheet.cs : MS implementation had chosen to recover from
323 the error, in the way specified in the spec 7.7.1. Patch by Andrew
326 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
328 * XslTemplate.cs : if input is literal result element, it could result
329 in ArgumentException. Patch by Andrew Skiba.
331 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
333 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
334 NullReferenceException. Patch by Andrew Skiba.
336 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
338 * XslOutput.cs : MS.NET recovers from unknown encoding according to
339 XSLT spec 16.1. Patch by Andrew Skiba.
341 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
343 * HtmlEmitter.cs : patch by Andrew Skiba.
344 Remove extra element prefix output. simplify attribute prefix output.
345 Attribute output might have resulted in invalid element stack peek.
346 Output specified media type if any.
348 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
350 * Compiler.cs : Patch by Andrew Skiba.
351 wrap internal exception with XsltCompileException.
352 Raise an error for not-found document URI.
353 QName might contain sequential whitespaces and thus could be empty.
355 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
357 * XslAttributeSet.cs : just ignore other kind of nodes than element
358 in its content. Fix by Andrew Skiba.
360 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
362 * XslOutput.cs : for html and text output mode, just set internal
363 omitXmlDeclaration status true. Patch by Andrew Skiba.
365 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
367 * XslFunctions.cs : fixed line ending mixture.
369 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
371 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
374 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
377 Compiler.cs : XmlResolver.ResolveUri() may return null.
379 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
381 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
384 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
386 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
388 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
390 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
393 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
395 * XslStylesheet.cs : removed unused fields.
396 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
399 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
401 * Compiler.cs, XslTransformProcessor.cs :
402 when creating XmlTextReader, reuse XmlNameTable.
404 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
406 * Compiler.cs : Changes that reflects CompiledExpression changes.
408 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
410 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
411 This fixes bug #67390.
413 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
415 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
417 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
419 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
420 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
421 : Globalization. Removed unused code.
423 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
425 * XslKey.cs : Key-value search in absolute path search was
428 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
430 * HtmlEmitter.cs : Correct URL escape implementation.
432 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
434 * XslTransformProcessor.cs : On document() function, close the
435 XmlTextReader opened from uri string.
437 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
440 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
441 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
442 should override another overload.
444 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
446 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
447 assembly should not include the .dll extension.
449 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
452 - CompilePattern() now throws XsltCompileException for invalid
453 pattern, and add error location support.
454 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
455 Now it returns MSXslNodeSet instance (for msxsl:node-set).
456 * Debug.cs : don't throw System.Exception.
457 * XslFunctions.cs : Added MSXslNodeSet class.
458 * XslTemplate.cs : reflected CompilePattern() change.
459 * XslTransformProcessor.cs : don't throw System.Exception.
460 * XsltCompiledContext.cs : don't throw System.Exception.
462 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
466 XslStylesheet.cs : made classes/enums internal.
468 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
470 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
471 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
472 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
473 XslTransformProcessor.cs : Make extra classes internal.
475 * XslKey.cs : It should require sorting.
476 * Debug.cs : Just avoid debug output. Only who want to output should
479 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
481 * GenericOutputter.cs : Culture-independency fix.
482 Replaced StringCollection to ArrayList.
483 * XslOutput.cs : Culture-independency fix.
485 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
487 * Compiler.cs : When BaseURI is an empty string, it should not try to
488 create Uri instance. This will fix bug #56832, but not sure.
489 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
490 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
491 should be the TextReader's NewLine).
492 * MSXslScriptManager.cs : Should raise an error when the prefix which
493 was specified by "implements-prefix" was not found.
495 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
497 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
498 when BaseURI for msxsl:script node is not available. This fixes
500 Don't output line number in the error message, when it is 0.
502 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
504 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
506 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
511 XslTransformProcessor.cs :
512 Throw specific types of exceptions instead of Exception.
513 * XslFunctions.cs, XsltCompiledContext.cs :
514 added node argument for XsltExtensionFunction ctor() etc.
516 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
518 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
519 CodeDom. Compilation error should be caught. This fixes bug #55875.
521 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
523 * XslStylesheet.cs : "version" attribute is also required for embedded
526 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
529 XslStylesheet.cs : Reject xsl element other than stylesheet and
530 transform. Check mandatory version attribute (only for existence).
532 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
534 * MSXslScriptManager.cs : if extension namespace was not found in
535 the script, just return null. Patch by Joshua Tauberer.
537 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
539 * XslLiteralElement.cs : quick fix for ArgumentNullException which
540 was because of the combination of non-namespaced instances and
541 exclude-result-prefixes.
543 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
545 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
546 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
547 * XslFunctions.cs : hereby Added.
548 * Compiler.cs : Removed deleted usingdecl.
550 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
552 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
553 * XslKey.cs : Added ExprKeyContainer expression type, which is
554 designed to be matched at any level.
555 * Compiler.cs : support for ExprKeyContainer.
557 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
559 * XslKey.cs : Now it collects key and matching nodes at the first
560 evaluation time. After that, we can just get them from the table.
561 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
562 prohibited key() usage in "match" and "use" attributes in xsl:key.
563 Modified accessibility of some classes.
564 * GenericOutputter.cs,
568 XmlWriterEmitter.cs : made classes internal.
569 * XslOutput.cs : support line info for exception.
570 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
572 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
574 * XsltCompiledContext.cs : fixed the length of context info array.
576 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
578 * XsltCompiledContext.cs :
579 replaced EnumeratorIterator with ListIterator
581 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
583 * GenericOutputter.cs,
586 XslTemplate.cs : tiny foreach elimination.
588 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
590 * XslOutput.cs : Reverted. default encoding should be utf-8.
592 2004-01-14 Jackson Harper <jackson@ximian.com>
594 * GenericOutputter.cs: Add constructors that do not take an
595 encoding to fix build.
597 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
599 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
600 write XML declaration. It means that output supports non document
601 entity. This fixes bug #52729.
602 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
603 modified WriteStartDocument() signature to receive Encoding.
604 * GenericOutputter.cs :
605 - Added .ctor() which receives Encoding. (It is used for TextWriter
606 output to get actual encoding.)
607 - Added .ctor() to take an boolean argument which indicates it is
608 variable content or not. (When variable, it does not call
609 WriteStartDocument().)
611 XsltCompiledContext.cs : comment out WriteLine().
612 * XslOutput.cs : set default encoding utf-16.
614 2004-01-08 Nick Drochak <ndrochak@ieee.org>
616 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
618 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
620 * XslDecimalFormat.cs : implemented format-number() other than number
622 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
623 catch ArgumentException which will be thrown by formatting process.
625 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
627 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
629 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
631 * XsltCompiledContext.cs: Remove workaround now that monodoc
634 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
636 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
637 aliases at compilation time, so evaluate at the first run-time.
639 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
641 * GenericOutputter.cs : support for runtime-determined output type.
642 * HtmlEmitter.cs : Fixed invalid doctype output.
643 Fixed incorrect double attribute output on non-HTML elements.
644 Improved indentation. Fixed "selected" attribute output.
645 Don't have to convert "'" to "'".
646 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
647 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
648 * XslStylesheet.cs, XsltCompiledContext.cs :
649 space resolution consideration for import and wildcard.
651 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
653 * Compiler.cs, XslTransformProcessor.cs :
654 Use XmlValidatingReader to support id() for external stylesheets.
655 * XslKey.cs, XsltCompiledContext.cs :
656 to evaluate MatchPattern and UsePattern, SetContext() is required.
657 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
659 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
661 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
662 Added WriteWhitespace().
663 * GenericOutputter.cs, XslTemplate.cs : Call above.
664 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
665 CurrentNode in for-each context have to be pulled at evaluation.
667 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
669 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
670 function for bugzilla #52144. It should be reverted soon.
672 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
674 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
676 * MSMslScriptManager.cs : modified generated assembly class to be unique
677 through running AppDomain.
678 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
679 arguments to actual argument types. Bugzilla #51450 should be fixed.
681 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
683 * HtmlEmitter.cs : Fixed incorrect character entity output.
685 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
687 * Added ScriptCompilerInfo.cs.
688 * MSXslScriptManager.cs : Fixed *true* author's name.
689 Implemented basic msxsl:script support.
690 * Compiler.cs : Added Evidence member.
692 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
694 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
695 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
696 Added WriteWhitespace() to assure not writing whitespaces as cdata.
697 * XslAttributeSet.cs : Error check if attribute-set contains other than
698 xsl:attribute. Error should be XsltException.
699 * XslDecimalFormat.cs : Complete equality check. Allow just one
700 character value for some attributes.
701 * XslStylesheet.cs : Made whitespace control setting overridable.
702 Added Version property (for the future compatibility mode).
703 Check unrecongnized top level element.
704 * XslTemplate.cs : Check priority as a number.
705 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
706 for xsl:preserve-space and xsl:strip-space support.
707 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
708 incomplete), PushScope and Pop
710 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
712 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
714 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
716 * Compiler.cs : In FromListString(), it should use default ns,
718 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
719 precedence. Doctype should be written even if SYSTEM id is absent.
720 Fixed possible multiple xmlns output.
722 - Encoding output using META element.
723 - Doctype name is fixed (html).
724 - Double quotation on PUBLIC and SYSTEM missing.
725 - Fixed incorrect tag name check for IMG.
726 - '>' should not be escaped.
727 * XmlWriterEmitter.cs :
728 Added newline before doctype. In WriteComment(), "--" and tail
729 '-' are not allowed (it escapes, while XmlWriter simply rejects).
730 * XslTransformProcessor.cs : cdata-section-elements should enclose
731 direct child tests only. Added PreserveWhitespace() (incomplete).
732 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
734 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
736 * IdPattern.cs : This should work against multiple ids.
738 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
741 * MSXslScriptManager.cs
743 * XslTransformProcessor.cs
744 * XsltCompiledContext.cs: Some work on msxsl script.
746 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
748 (in general: cdata-section-elements support, correct document()
749 base uri handling, and so on)
750 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
751 And move to document element. Added XslNameUtil.FromListString().
752 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
753 Added WriteCDataSection().
754 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
755 Added InsideCDataSection.
756 * GenericOutputter.cs :
757 In .ctor(), WriteState should be succeeded from output XmlWriter.
758 WriteNamespaceDecl() now drops declaration identical to existing one.
759 Removed obsolete htmlEmulation.
760 * XslOutput.cs : Added CDataSectionElements support.
761 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
762 * XslTransformProcessor.cs :
763 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
764 now considers xsl:exclude-element-prefixes on literal element.
765 Added PushCDataState() and PopCDataState().
766 * XsltCompiledContext.cs : When base uri of document() target is empty,
767 then it should use stylesheet's BaseURI, not that of current document.
769 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
771 * Compiler.cs : Modified decimal-format comparison code.
774 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
775 be called only when required.
776 * HtmlEmitter.cs : Improved indentation stuff.
777 * XslDecimalFormat.cs : Added incomplete implementation of
778 CheckSameAs() and FormatNumber().
780 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
781 from StringDictionary to ArrayList of QName (to keep order).
783 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
785 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
786 node type (i.e. attribute and namespace). Removed extraneous Clone().
787 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
789 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
791 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
792 XslStylesheet.cs : Added Keys support here.
793 * XslTransformProcessor.cs : Should call SetContext() to expressions
794 before evaluating current nodes.
795 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
796 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
797 for KeyPattern. It now uses CompiledStyle.FindKeys().
799 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
801 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
802 to Xalan tests and MS.NET implementation (only for test convenience).
803 * XslOutput.cs : Indent holds string rathen than bool. Its default value
804 varies in the context. When method="html", then default is "yes".
805 * XslTransformProcessor.cs : Extension element prefixes should not
806 be written as stylesheet namespaces.
807 * XsltCompiledContext.cs : Return type of generate-id() is string.
808 Implemented unparsed-entity-uri().
810 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
812 * Compiler.cs : More complete attribute set gathering.
813 GetNamespacesToCopy() should only return Local namespaces.
814 * GenericOutputter.cs : Added support for indentation.
815 Added easy hack for html output.
816 More correct Prefix handling (considers already defined ones).
817 Namespace emmission is moved to CheckState().
818 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
819 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
820 * GenericOutputter.cs, Outputter.cs :
821 Added CanProcessAttributes property for
822 use-attribute-sets of xsl:copy.
823 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
824 Added support for exclude-result-prefixes.
825 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
827 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
829 * Compiler.cs : It is not important, but attribute order became closer
830 to MS.NET and Xalan (assuming from OASIS tests).
832 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
834 * GenericOutputter.cs : Attribute wasn't overwritten its properties
835 because Attribute is struct it was let to another local variable.
837 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
839 * GenericOutputter.cs: make html output a warning, because doing
840 xml will be right most of the time.
842 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
844 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
845 here for a long time and it hurts thread safty and memory
848 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
850 * Compiler.cs: save the parser (will reduce memory allocation when
851 Jackson's jay patch is committed).
853 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
855 * Attribute.cs: Change to struct. Remove QName class.
856 * GenericOutputter.cs: use an Attribute [] rather than an
857 ArrayList. Allows us not to allocate Attributes, which is great
858 for speed. Roll our own allocation.
860 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
862 * Compiler.cs: add GetNsm to main class as well.
864 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
866 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
867 internal version so we get null if the attr doesnt exist.
869 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
871 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
872 where curVarScope == null
874 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
877 - Better handling of empty attributes (vs not being specified)
878 - Bug in handling #default
880 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
882 * Compiler.cs: Off by one when parsing localname of QName
883 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
884 children (so that they get overriden)
886 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
888 * GenericOutputter.cs: Output attributes in order recieved; not
889 required by spec, but useful for running test cases.
891 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
893 * GenericOutputter.cs - fix bug with outputting state.
894 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
895 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
897 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
899 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
900 exprs on use, pass to nav.
902 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
904 * Compiler.cs: pass satic context to Pattern ctor.
906 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
909 GenericOutputter.cs - generic Outputter implementation,
910 Attribute.cs - represents outputted attribute,
911 Emitter.cs - abstract output emitter,
912 TextEmitter.cs - text emitter,
913 XmlWriterEmitter.cs - emitter to XmlWriter.
914 * Checking of duplicating attributes is done in GenericOutputter.
915 * Namespace outputting logic is implemented in GenericOutputter.
916 * Outputter.cs: Writing namespace declarations is delegated to
917 derived classes (GenericOutputter).
918 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
920 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
922 * XslTransformProcessor.cs: evaluate variables at beginning
923 when / is current node.
925 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
927 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
928 Fix up namespace handeling
930 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
932 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
934 * XslDecimalFormat.cs: Stub for decimal-format.
936 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
938 * TextOutputter.cs: Add option to ignore element content (Oleg).
940 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
942 * Compiler.cs: Really give null for blank avt's
944 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
946 * Compiler.cs: Fixed lre/lre04.
948 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
950 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
951 won't have default namespace. See http://www.w3.org/TR/xslt#qname
953 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
955 * XslTransformProcessor.cs: add support for resolving documents.
956 * XsltCompiledContext: add support for document () function.
958 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
960 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
961 of the abstract methods in Outputter, making them call other
962 functions with default values, remove impl's in derived classes.
964 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
966 * Outputter.cs: s/Close/Done
967 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
968 * XslTransformProcessor.cs: Flush output when popping, pop at end.
970 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
972 * Outputter.cs: Add support for namespaces.
974 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
976 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
977 XslTransformProcessor.cs: move output logic from XslStylesheet to
980 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
982 * XslOutput.cs: add support for encoding.
984 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
986 * *.cs: Support for xsl:output. (Oleg)
988 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
990 * Compiler.cs: handle extension and excluded namespaces.
992 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
994 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
995 from the stylesheet for correct namespace resolution.
997 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
999 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
1000 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
1002 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
1004 * XslTransformProcessor.cs: Add a table to detect when an object
1006 * XslAttributeSet.cs: Use the above table. Dont throw nullref
1007 exception when no use-attribute-sets are specified.
1009 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1011 * Compiler.cs: Add support for boolean attributes (yes/no).
1013 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1015 * Compiler.cs: Add method LocalNameOf, to get the local name of a
1017 * XslTransformProcessor.cs: Support for setting the XmlResolver.
1019 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1021 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
1023 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1025 * XslTransformProcessor.cs: Add EvaluateNumber method.
1027 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1029 * XsltCompiledContext.cs: Implement more functions.
1031 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1033 * Compiler.cs: Add support for key, utility function to parse
1034 QName's from the XsltContext. Store keys in the CompiledStyle, not
1036 * XslKey.cs: Real implementation
1037 * XslStylesheet.cs: Move the keys to CompiledStyle.
1038 * XsltCompiledContext.cs: Implement the key function
1040 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1042 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1043 the functions ;-). Also wrote current ().
1045 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1047 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1048 done in XPath. Add stubs for XSLT functions.
1050 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1052 * Compiler.cs: To resolve a variable you now need to pass the
1053 processor, so that it can be passed to IsEvaluated. A local will
1054 only be resolved if it has already been evaluated.
1055 * XsltCompiledContext.cs: Pass along the processor.
1057 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1059 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1060 variable values in the XslTransformProcessor.
1061 * XsltCompiledContext.cs: If the scope is null, don't look there!
1062 * Debug.cs: New method Assert
1064 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1066 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1067 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1068 internal methods in XPathNavigator. Remove verbose debugging messages.
1070 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>