1 2005-10-24 Atsushi Enomoto <atsushi@ximian.com>
3 * Compiler.cs : (FromString(s, hashtable)) pull default namespace
4 from the table for LRE (don't consider it as ""; spec. 7.1.2)
7 2005-09-16 Atsushi Enomoto <atsushi@ximian.com>
9 * ScriptCompilerInfo.cs : Compile correct replacement result.
12 2005-09-10 Atsushi Enomoto <atsushi@ximian.com>
14 * Compiler.cs : (Compile) check children only when it is the document
15 element. Fixed bug #76046.
17 2005-08-25 Atsushi Enomoto <atsushi@ximian.com>
19 * ScriptCompilerInfo.cs : It should not be "#line" when the source is
20 not C#. It should fix bug #75789.
22 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
24 * XslKey.cs : Fixed match pattern in xsl:key to check attribute nodes.
25 To minimize attribute iteration, use Pattern.EvaluatedNodeType.
28 2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
30 * XslFunctions.cs : XslTransform recovers from errors on document
31 resolution. Fixed bug #75663.
33 2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
35 * HtmlEmitter.cs : Boolean attribute values should be omitted, but
36 only for related elements.
38 2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
40 * MSXslScriptManager.cs : it should ignore compiler warnings. This
43 2005-04-07 Andrew Skiba <andrews@mainsoft.com>
45 * XslDecimalFormat.jvm.cs : added
47 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
49 * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
50 support CodeDom). Use Guid.ToString("N").
52 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
54 * Compiler.cs : removed extraneous using_directive.
56 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
58 * XslKey.cs : the iterator does not require sorting (already sorted).
61 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
64 Variables are stored per stylesheet and added to compiler after
65 all of the contents are processed (handle import precedence).
66 Imports are now processed in prior to other contents (incorrect
67 imports are now rejected). After imports, process includes to
68 process nested imports. In-process included stylesheets are
69 temporarily stored in including stylesheet.
70 Handle keys like variables are handled.
71 Added Compile() that is splitted from .ctor().
73 Store keys in compiler and compiled stylesheet.
74 Duplicate variables in imports are now overriden as expected.
75 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
77 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
79 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
80 from each EvaluateXXX() methods.
81 * MsxslScriptManager.cs : not to leave reference to stylesheet
82 navigator, pass current node to Compile().
83 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
84 navigator cache for each pattern, to avoid Clone() and not to leave
85 reference to already-done instance navigator.
87 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
89 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
90 * XslKey.cs : Use XSLT pattern parser for match.
91 UsePattern is now "Use" (it is not a pattern).
92 Reimplemented Evaluate() to make full use of index table.
93 Added Matches() to handle shorter match evaluation. For const value
94 for key (e.g. key patterns), it could avoid Evaluate().
95 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
96 new KeyIndexTable.Matches().
97 * XslFunctions.cs : Added PatternMatches() that just delegates to new
98 XsltCompiledContext.MatchesKey().
100 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
102 * GenericOutputter.cs : commented out warned fields.
104 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
106 * XslKey.cs : removed last ListIterator.ctor() argument.
107 Reverted the last commit that changed internal key index change
108 from ArrayList to Hashtable. Avoid clone in CollectIndex().
109 Sort results in Evaluate() before passing list to ListIterator.
110 * XslFunctions.cs : removed last ListIterator.ctor() argument.
112 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
115 XsltCompiledContext.cs,
117 XslTransformProcessor.cs : Now dynamic context key index table is
118 separate from XslKey static context. Added KeyIndexTable class and
119 store it into XsltCompiledContext with hash name-table mapping.
120 Cache map from statically-named key to index table.
121 Use Hashtable for internal key cache instead of ArrayList.
123 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
125 * XslKey.cs : fixed node iteration on collecting key indices which
126 could have resulted in an infinite loop.
128 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
130 * XslDecimalFormat.cs : in some cases it does not throw format
133 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
135 * XsltCompiledContext.cs,
136 XslStylesheet.cs : Fixed significant performance loss on whitespace
139 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
141 * XslKey.cs : removed unused NeedAbsoluteMatching.
142 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
143 Added some missing ToString() overrides.
145 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
147 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
148 to work fine with xsl:*-space attributes as expected.
149 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
150 actually nothing. It should not use XsltContext.PreserveWhitespace()
151 because this method is used to control output, while the referenced
152 method is used to control source document.
154 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
156 * XslTemplate.cs : First non-element content were incorrectly ignored.
158 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
160 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
161 to reduce references to stylesheet XPathNavigator. To accomplish it,
162 IStaticXsltContext does not declare GetNsm() anymore. All xslt
163 function types now directly hold IStaticXsltContext.
164 * XslStylesheet.cs : removed "Compiler c" field.
165 Removed unused properties.
167 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
169 * GenericOutputter.cs : When WriteStartElement() requires to add
170 new namespace declaration, _currentNamespaceDecls needs to be set.
172 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
174 * GenericOutputter.cs : for duplicate attribute in an element, no need
175 to keep previous prefix.
177 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
179 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
180 namespace. Rewrite prefix only when there is non-empty namespace.
182 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
184 * XslStylesheet.cs : Now namespace aliases are collected in prior to
185 all other toplevel elements. Removed unused code.
187 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
189 * GenericOutputter.cs : compute attribute prefix only when actual
190 emission. Fixed some cases that namespace output was missing.
192 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
194 * GenericOutputter.cs : no need to use two collections to store
195 pending attributes. Just use ordered ListDictionary.
196 newNamespace.Add(int) causes extraneous boxing.
198 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
200 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
201 OutputLiteralNamespaceUriNodes() so that everyone can understand
202 what it means and when it should be invoked.
204 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
206 * Compiler.cs : added another CompileTemplateContent() which is
207 requred in xsl:for-each. Commented out unused method.
209 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
211 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
212 in stylesheet should be considered in TryElementNamespacesOutput().
213 ParseQNameListAttribute() is not properly working for filling
216 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
218 * XslStylesheet.cs : included stylesheet could be literal result
219 element as stylesheet (see the spec 2.6.1).
221 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
223 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
224 empty string when nsURI is empty.
225 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
226 unlike xml but like span, as written in the spec 16.2.
228 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
230 * XslCompiledContext.cs, XslTransformProcessor.cs :
231 According to errata E25, those namespaces 1) that has the same
232 name as current element's prefix, or an empty name when current
233 element's namespace URI is empty, are not written to output.
234 So added current element information to XPathContext and added
235 prefix parameter to PushElementState(), added xsl:copy check to
236 TryElementNamespacesOutput().
237 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
239 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
241 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
244 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
246 * XslTemplate.cs : According to the spec 5.7, it is an error for
247 xsl:template to have 'mode' without 'match'.
249 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
251 * Compiler.cs : added ns lookup with nsDecls Hashtable.
253 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
255 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
257 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
259 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
260 namespace "http://www.w3.org/XML/1998/namespace".
262 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
264 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
265 * HtmlEmitter.cs : CDATA nodes are written just as text.
266 * GenericOutputter.cs : custom format are treated just as XML output.
268 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
272 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
273 and WriteState. Writing XML declaration is done inside
274 DetermineOutputMethod().
276 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
278 * Compiler.cs : reverted previous fix, since it should be done
279 in XslTransformProcessor with root stylesheet.
280 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
281 don't output alias namespaces. And now consider null exclusions.
283 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
285 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
287 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
289 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
290 namespace nodes. Patch by Andrew Skiba with some fixes.
291 * XslTransformProcessor.cs : Patch by Andrew Skiba.
292 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
293 as to handle all namespace nodes to copy in stylesheet nodes.
294 Global parameterss are evaluated before global variables.
295 * XmlOutputter.cs : removed unused code.
299 * Actually variables and params should check reference recursion.
300 This patch incompletely fixes the problem.
301 * Those operations that considers excluded-result-prefixes must
302 also check those attributes of its ancestors.
304 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
306 * XmlWriterEmitter.cs : String.Replace() was insufficient for
307 sequential candidates for replacement. Patch by Andrew Skiba.
309 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
311 * GenericOutputter.cs : don't output extraneous xml declaration.
314 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
316 * XslStylesheet.cs : MS implementation had chosen to recover from
317 the error, in the way specified in the spec 7.7.1. Patch by Andrew
320 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
322 * XslTemplate.cs : if input is literal result element, it could result
323 in ArgumentException. Patch by Andrew Skiba.
325 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
327 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
328 NullReferenceException. Patch by Andrew Skiba.
330 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
332 * XslOutput.cs : MS.NET recovers from unknown encoding according to
333 XSLT spec 16.1. Patch by Andrew Skiba.
335 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
337 * HtmlEmitter.cs : patch by Andrew Skiba.
338 Remove extra element prefix output. simplify attribute prefix output.
339 Attribute output might have resulted in invalid element stack peek.
340 Output specified media type if any.
342 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
344 * Compiler.cs : Patch by Andrew Skiba.
345 wrap internal exception with XsltCompileException.
346 Raise an error for not-found document URI.
347 QName might contain sequential whitespaces and thus could be empty.
349 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
351 * XslAttributeSet.cs : just ignore other kind of nodes than element
352 in its content. Fix by Andrew Skiba.
354 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
356 * XslOutput.cs : for html and text output mode, just set internal
357 omitXmlDeclaration status true. Patch by Andrew Skiba.
359 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
361 * XslFunctions.cs : fixed line ending mixture.
363 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
365 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
368 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
371 Compiler.cs : XmlResolver.ResolveUri() may return null.
373 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
375 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
378 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
380 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
382 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
384 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
387 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
389 * XslStylesheet.cs : removed unused fields.
390 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
393 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
395 * Compiler.cs, XslTransformProcessor.cs :
396 when creating XmlTextReader, reuse XmlNameTable.
398 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
400 * Compiler.cs : Changes that reflects CompiledExpression changes.
402 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
404 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
405 This fixes bug #67390.
407 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
409 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
411 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
413 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
414 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
415 : Globalization. Removed unused code.
417 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
419 * XslKey.cs : Key-value search in absolute path search was
422 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
424 * HtmlEmitter.cs : Correct URL escape implementation.
426 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
428 * XslTransformProcessor.cs : On document() function, close the
429 XmlTextReader opened from uri string.
431 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
434 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
435 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
436 should override another overload.
438 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
440 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
441 assembly should not include the .dll extension.
443 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
446 - CompilePattern() now throws XsltCompileException for invalid
447 pattern, and add error location support.
448 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
449 Now it returns MSXslNodeSet instance (for msxsl:node-set).
450 * Debug.cs : don't throw System.Exception.
451 * XslFunctions.cs : Added MSXslNodeSet class.
452 * XslTemplate.cs : reflected CompilePattern() change.
453 * XslTransformProcessor.cs : don't throw System.Exception.
454 * XsltCompiledContext.cs : don't throw System.Exception.
456 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
460 XslStylesheet.cs : made classes/enums internal.
462 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
464 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
465 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
466 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
467 XslTransformProcessor.cs : Make extra classes internal.
469 * XslKey.cs : It should require sorting.
470 * Debug.cs : Just avoid debug output. Only who want to output should
473 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
475 * GenericOutputter.cs : Culture-independency fix.
476 Replaced StringCollection to ArrayList.
477 * XslOutput.cs : Culture-independency fix.
479 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
481 * Compiler.cs : When BaseURI is an empty string, it should not try to
482 create Uri instance. This will fix bug #56832, but not sure.
483 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
484 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
485 should be the TextReader's NewLine).
486 * MSXslScriptManager.cs : Should raise an error when the prefix which
487 was specified by "implements-prefix" was not found.
489 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
491 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
492 when BaseURI for msxsl:script node is not available. This fixes
494 Don't output line number in the error message, when it is 0.
496 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
498 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
500 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
505 XslTransformProcessor.cs :
506 Throw specific types of exceptions instead of Exception.
507 * XslFunctions.cs, XsltCompiledContext.cs :
508 added node argument for XsltExtensionFunction ctor() etc.
510 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
512 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
513 CodeDom. Compilation error should be caught. This fixes bug #55875.
515 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
517 * XslStylesheet.cs : "version" attribute is also required for embedded
520 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
523 XslStylesheet.cs : Reject xsl element other than stylesheet and
524 transform. Check mandatory version attribute (only for existence).
526 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
528 * MSXslScriptManager.cs : if extension namespace was not found in
529 the script, just return null. Patch by Joshua Tauberer.
531 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
533 * XslLiteralElement.cs : quick fix for ArgumentNullException which
534 was because of the combination of non-namespaced instances and
535 exclude-result-prefixes.
537 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
539 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
540 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
541 * XslFunctions.cs : hereby Added.
542 * Compiler.cs : Removed deleted usingdecl.
544 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
546 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
547 * XslKey.cs : Added ExprKeyContainer expression type, which is
548 designed to be matched at any level.
549 * Compiler.cs : support for ExprKeyContainer.
551 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
553 * XslKey.cs : Now it collects key and matching nodes at the first
554 evaluation time. After that, we can just get them from the table.
555 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
556 prohibited key() usage in "match" and "use" attributes in xsl:key.
557 Modified accessibility of some classes.
558 * GenericOutputter.cs,
562 XmlWriterEmitter.cs : made classes internal.
563 * XslOutput.cs : support line info for exception.
564 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
566 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
568 * XsltCompiledContext.cs : fixed the length of context info array.
570 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
572 * XsltCompiledContext.cs :
573 replaced EnumeratorIterator with ListIterator
575 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
577 * GenericOutputter.cs,
580 XslTemplate.cs : tiny foreach elimination.
582 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
584 * XslOutput.cs : Reverted. default encoding should be utf-8.
586 2004-01-14 Jackson Harper <jackson@ximian.com>
588 * GenericOutputter.cs: Add constructors that do not take an
589 encoding to fix build.
591 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
593 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
594 write XML declaration. It means that output supports non document
595 entity. This fixes bug #52729.
596 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
597 modified WriteStartDocument() signature to receive Encoding.
598 * GenericOutputter.cs :
599 - Added .ctor() which receives Encoding. (It is used for TextWriter
600 output to get actual encoding.)
601 - Added .ctor() to take an boolean argument which indicates it is
602 variable content or not. (When variable, it does not call
603 WriteStartDocument().)
605 XsltCompiledContext.cs : comment out WriteLine().
606 * XslOutput.cs : set default encoding utf-16.
608 2004-01-08 Nick Drochak <ndrochak@ieee.org>
610 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
612 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
614 * XslDecimalFormat.cs : implemented format-number() other than number
616 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
617 catch ArgumentException which will be thrown by formatting process.
619 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
621 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
623 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
625 * XsltCompiledContext.cs: Remove workaround now that monodoc
628 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
630 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
631 aliases at compilation time, so evaluate at the first run-time.
633 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
635 * GenericOutputter.cs : support for runtime-determined output type.
636 * HtmlEmitter.cs : Fixed invalid doctype output.
637 Fixed incorrect double attribute output on non-HTML elements.
638 Improved indentation. Fixed "selected" attribute output.
639 Don't have to convert "'" to "'".
640 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
641 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
642 * XslStylesheet.cs, XsltCompiledContext.cs :
643 space resolution consideration for import and wildcard.
645 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
647 * Compiler.cs, XslTransformProcessor.cs :
648 Use XmlValidatingReader to support id() for external stylesheets.
649 * XslKey.cs, XsltCompiledContext.cs :
650 to evaluate MatchPattern and UsePattern, SetContext() is required.
651 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
653 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
655 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
656 Added WriteWhitespace().
657 * GenericOutputter.cs, XslTemplate.cs : Call above.
658 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
659 CurrentNode in for-each context have to be pulled at evaluation.
661 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
663 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
664 function for bugzilla #52144. It should be reverted soon.
666 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
668 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
670 * MSMslScriptManager.cs : modified generated assembly class to be unique
671 through running AppDomain.
672 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
673 arguments to actual argument types. Bugzilla #51450 should be fixed.
675 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
677 * HtmlEmitter.cs : Fixed incorrect character entity output.
679 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
681 * Added ScriptCompilerInfo.cs.
682 * MSXslScriptManager.cs : Fixed *true* author's name.
683 Implemented basic msxsl:script support.
684 * Compiler.cs : Added Evidence member.
686 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
688 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
689 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
690 Added WriteWhitespace() to assure not writing whitespaces as cdata.
691 * XslAttributeSet.cs : Error check if attribute-set contains other than
692 xsl:attribute. Error should be XsltException.
693 * XslDecimalFormat.cs : Complete equality check. Allow just one
694 character value for some attributes.
695 * XslStylesheet.cs : Made whitespace control setting overridable.
696 Added Version property (for the future compatibility mode).
697 Check unrecongnized top level element.
698 * XslTemplate.cs : Check priority as a number.
699 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
700 for xsl:preserve-space and xsl:strip-space support.
701 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
702 incomplete), PushScope and Pop
704 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
706 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
708 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
710 * Compiler.cs : In FromListString(), it should use default ns,
712 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
713 precedence. Doctype should be written even if SYSTEM id is absent.
714 Fixed possible multiple xmlns output.
716 - Encoding output using META element.
717 - Doctype name is fixed (html).
718 - Double quotation on PUBLIC and SYSTEM missing.
719 - Fixed incorrect tag name check for IMG.
720 - '>' should not be escaped.
721 * XmlWriterEmitter.cs :
722 Added newline before doctype. In WriteComment(), "--" and tail
723 '-' are not allowed (it escapes, while XmlWriter simply rejects).
724 * XslTransformProcessor.cs : cdata-section-elements should enclose
725 direct child tests only. Added PreserveWhitespace() (incomplete).
726 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
728 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
730 * IdPattern.cs : This should work against multiple ids.
732 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
735 * MSXslScriptManager.cs
737 * XslTransformProcessor.cs
738 * XsltCompiledContext.cs: Some work on msxsl script.
740 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
742 (in general: cdata-section-elements support, correct document()
743 base uri handling, and so on)
744 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
745 And move to document element. Added XslNameUtil.FromListString().
746 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
747 Added WriteCDataSection().
748 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
749 Added InsideCDataSection.
750 * GenericOutputter.cs :
751 In .ctor(), WriteState should be succeeded from output XmlWriter.
752 WriteNamespaceDecl() now drops declaration identical to existing one.
753 Removed obsolete htmlEmulation.
754 * XslOutput.cs : Added CDataSectionElements support.
755 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
756 * XslTransformProcessor.cs :
757 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
758 now considers xsl:exclude-element-prefixes on literal element.
759 Added PushCDataState() and PopCDataState().
760 * XsltCompiledContext.cs : When base uri of document() target is empty,
761 then it should use stylesheet's BaseURI, not that of current document.
763 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
765 * Compiler.cs : Modified decimal-format comparison code.
768 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
769 be called only when required.
770 * HtmlEmitter.cs : Improved indentation stuff.
771 * XslDecimalFormat.cs : Added incomplete implementation of
772 CheckSameAs() and FormatNumber().
774 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
775 from StringDictionary to ArrayList of QName (to keep order).
777 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
779 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
780 node type (i.e. attribute and namespace). Removed extraneous Clone().
781 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
783 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
785 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
786 XslStylesheet.cs : Added Keys support here.
787 * XslTransformProcessor.cs : Should call SetContext() to expressions
788 before evaluating current nodes.
789 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
790 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
791 for KeyPattern. It now uses CompiledStyle.FindKeys().
793 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
795 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
796 to Xalan tests and MS.NET implementation (only for test convenience).
797 * XslOutput.cs : Indent holds string rathen than bool. Its default value
798 varies in the context. When method="html", then default is "yes".
799 * XslTransformProcessor.cs : Extension element prefixes should not
800 be written as stylesheet namespaces.
801 * XsltCompiledContext.cs : Return type of generate-id() is string.
802 Implemented unparsed-entity-uri().
804 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
806 * Compiler.cs : More complete attribute set gathering.
807 GetNamespacesToCopy() should only return Local namespaces.
808 * GenericOutputter.cs : Added support for indentation.
809 Added easy hack for html output.
810 More correct Prefix handling (considers already defined ones).
811 Namespace emmission is moved to CheckState().
812 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
813 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
814 * GenericOutputter.cs, Outputter.cs :
815 Added CanProcessAttributes property for
816 use-attribute-sets of xsl:copy.
817 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
818 Added support for exclude-result-prefixes.
819 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
821 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
823 * Compiler.cs : It is not important, but attribute order became closer
824 to MS.NET and Xalan (assuming from OASIS tests).
826 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
828 * GenericOutputter.cs : Attribute wasn't overwritten its properties
829 because Attribute is struct it was let to another local variable.
831 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
833 * GenericOutputter.cs: make html output a warning, because doing
834 xml will be right most of the time.
836 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
838 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
839 here for a long time and it hurts thread safty and memory
842 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
844 * Compiler.cs: save the parser (will reduce memory allocation when
845 Jackson's jay patch is committed).
847 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
849 * Attribute.cs: Change to struct. Remove QName class.
850 * GenericOutputter.cs: use an Attribute [] rather than an
851 ArrayList. Allows us not to allocate Attributes, which is great
852 for speed. Roll our own allocation.
854 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
856 * Compiler.cs: add GetNsm to main class as well.
858 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
860 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
861 internal version so we get null if the attr doesnt exist.
863 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
865 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
866 where curVarScope == null
868 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
871 - Better handling of empty attributes (vs not being specified)
872 - Bug in handling #default
874 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
876 * Compiler.cs: Off by one when parsing localname of QName
877 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
878 children (so that they get overriden)
880 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
882 * GenericOutputter.cs: Output attributes in order recieved; not
883 required by spec, but useful for running test cases.
885 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
887 * GenericOutputter.cs - fix bug with outputting state.
888 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
889 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
891 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
893 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
894 exprs on use, pass to nav.
896 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
898 * Compiler.cs: pass satic context to Pattern ctor.
900 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
903 GenericOutputter.cs - generic Outputter implementation,
904 Attribute.cs - represents outputted attribute,
905 Emitter.cs - abstract output emitter,
906 TextEmitter.cs - text emitter,
907 XmlWriterEmitter.cs - emitter to XmlWriter.
908 * Checking of duplicating attributes is done in GenericOutputter.
909 * Namespace outputting logic is implemented in GenericOutputter.
910 * Outputter.cs: Writing namespace declarations is delegated to
911 derived classes (GenericOutputter).
912 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
914 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
916 * XslTransformProcessor.cs: evaluate variables at beginning
917 when / is current node.
919 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
921 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
922 Fix up namespace handeling
924 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
926 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
928 * XslDecimalFormat.cs: Stub for decimal-format.
930 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
932 * TextOutputter.cs: Add option to ignore element content (Oleg).
934 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
936 * Compiler.cs: Really give null for blank avt's
938 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
940 * Compiler.cs: Fixed lre/lre04.
942 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
944 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
945 won't have default namespace. See http://www.w3.org/TR/xslt#qname
947 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
949 * XslTransformProcessor.cs: add support for resolving documents.
950 * XsltCompiledContext: add support for document () function.
952 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
954 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
955 of the abstract methods in Outputter, making them call other
956 functions with default values, remove impl's in derived classes.
958 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
960 * Outputter.cs: s/Close/Done
961 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
962 * XslTransformProcessor.cs: Flush output when popping, pop at end.
964 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
966 * Outputter.cs: Add support for namespaces.
968 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
970 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
971 XslTransformProcessor.cs: move output logic from XslStylesheet to
974 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
976 * XslOutput.cs: add support for encoding.
978 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
980 * *.cs: Support for xsl:output. (Oleg)
982 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
984 * Compiler.cs: handle extension and excluded namespaces.
986 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
988 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
989 from the stylesheet for correct namespace resolution.
991 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
993 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
994 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
996 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
998 * XslTransformProcessor.cs: Add a table to detect when an object
1000 * XslAttributeSet.cs: Use the above table. Dont throw nullref
1001 exception when no use-attribute-sets are specified.
1003 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1005 * Compiler.cs: Add support for boolean attributes (yes/no).
1007 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1009 * Compiler.cs: Add method LocalNameOf, to get the local name of a
1011 * XslTransformProcessor.cs: Support for setting the XmlResolver.
1013 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1015 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
1017 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1019 * XslTransformProcessor.cs: Add EvaluateNumber method.
1021 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1023 * XsltCompiledContext.cs: Implement more functions.
1025 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1027 * Compiler.cs: Add support for key, utility function to parse
1028 QName's from the XsltContext. Store keys in the CompiledStyle, not
1030 * XslKey.cs: Real implementation
1031 * XslStylesheet.cs: Move the keys to CompiledStyle.
1032 * XsltCompiledContext.cs: Implement the key function
1034 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1036 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1037 the functions ;-). Also wrote current ().
1039 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1041 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1042 done in XPath. Add stubs for XSLT functions.
1044 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1046 * Compiler.cs: To resolve a variable you now need to pass the
1047 processor, so that it can be passed to IsEvaluated. A local will
1048 only be resolved if it has already been evaluated.
1049 * XsltCompiledContext.cs: Pass along the processor.
1051 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1053 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1054 variable values in the XslTransformProcessor.
1055 * XsltCompiledContext.cs: If the scope is null, don't look there!
1056 * Debug.cs: New method Assert
1058 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1060 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1061 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1062 internal methods in XPathNavigator. Remove verbose debugging messages.
1064 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>