1 2006-04-07 Atsushi Enomoto <atsushi@ximian.com>
3 * XslTransformProcessor.cs : in NodesetMoveNext() take
4 XPathContext.PreserveWhitespace() into consideration.
6 2006-03-15 Atsushi Enomoto <atsushi@ximian.com>
8 * XslTransformProcessor.cs,
9 Compiler.cs : eliminate ExpressionStore. Now sorting is done
10 inside XslSortEvaluator.
11 * XslSortEvaluator.cs : new file. It handles current node in XSLT
12 context. Fixed bug #77781.
14 2006-03-15 Atsushi Enomoto <atsushi@ximian.com>
16 * XslTransformProcessor.cs : in PushNodeset() avoid Clone(). It saves
17 extra cost, and might avoid possible bug in for-each and current()
20 2006-02-22 Atsushi Enomoto <atsushi@ximian.com>
22 * ScriptCompilerInfo.cs : mbas unlike vbc references System.dll
23 etc. by default, so don't add them as references.
24 Set only local file name for #ExternalSource. Fixed bug #75789.
26 2006-01-13 Atsushi Enomoto <atsushi@ximian.com>
28 * GenericOutputter.cs : When writing string, use WriteWhitespace()
29 instead of WhiteString() when its state is not Content. This fixes
30 BVTs_bvt066 case (broken after implementing strict state check in
33 2005-12-24 Gert Driesen <drieseng@users.sourceforge.net>
35 * XslOutput.cs: Do not report error for unknown value for "standalone"
36 and "omit-xml-declaration" attributes, and extranous attributes if
37 stylesheet version is not "1.0".
39 2005-12-24 Atsushi Enomoto <atsushi@ximian.com>
41 * Compiler.cs : pass stylesheet version to XslOutput to determine
42 "indent" value validity.
43 * XslOutput.cs, HtmlEmitter.cs, GenericOutputter.cs : Reverted
44 buggy changes on "indent" attribute handling.
45 http://www.w3.org/TR/xslt#section-HTML-Output-Method
47 2005-12-23 Gert Driesen <drieseng@users.sourceforge.net>
49 * XslOutput.cs: Reduced indentation of cases in switch statement.
51 2005-12-23 Gert Driesen <drieseng@users.sourceforge.net>
53 * ScriptCompilerInfo.cs: Fixed line endings.
54 * XslStylesheet.cs: Beautify error messages.
55 * Debug.cs: Fixed line endings.
56 * XslOutput.cs: Indent is now bool instead of string, use
57 MoveToAttribute to navigate through attributes instead of using
58 GetAttribute, as we also need to distinguish attributes with
59 zero-length value from attributes that are not specified for
60 correct implementation of DOCTYPE. Implemented validation for
61 value of "omit-xml-declaration", "standalone" and "indent".
62 We now throw a XsltCompileException for unknown attribute.
63 * XmlWriterEmitter.cs: only skip WriteDocType is systemId is null.
64 * HtmlEmitter.cs: XslOutput.Indent is now bool. Fixed WriteDocType
66 * XmlDecimalFormat.cs: Beautify error messages.
67 * XslTemplate.cs: Beautify error messages.
68 * GenericOutputter.cs: XslOutput.Indent is now bool.
69 * Compiler.cs: Beautify error messages.
71 2005-12-21 Atsushi Enomoto <atsushi@ximian.com>
73 * XslTemplate.cs : don't check name and mode attributes on
74 non-'xsl:template' element. This should fix bug #77051.
76 2005-12-13 Andrew Skiba <andrews@mainsoft.com>
78 * XslDecimalFormat.jvm.cs: set correct defaults for NaN and Infinity
80 2005-11-30 Atsushi Enomoto <atsushi@ximian.com>
82 * ScriptCompilerInfo.cs : (VBCompilerInfo) There was a space between
83 '#' and 'ExternalResource'. bug #75789 should be fixed.
85 2005-11-23 Vladimir Krasnov <vladimirk@mainsoft.com>
87 * XslKey.cs: fixed KeyIndexTable.Evaluate method, changed
88 XPathNavigator given to GetNodesByValue()
90 2005-11-17 Atsushi Enomoto <atsushi@ximian.com>
92 * XslCompiledContext.cs : since XsltContextInfo is struct, having
93 an array of this type and setting fields of each struct didn't
94 make sense. It thus blocked expected PreserveWhitespace behavior.
96 2005-10-24 Atsushi Enomoto <atsushi@ximian.com>
98 * Compiler.cs : (FromString(s, hashtable)) pull default namespace
99 from the table for LRE (don't consider it as ""; spec. 7.1.2)
102 2005-09-16 Atsushi Enomoto <atsushi@ximian.com>
104 * ScriptCompilerInfo.cs : Compile correct replacement result.
107 2005-09-10 Atsushi Enomoto <atsushi@ximian.com>
109 * Compiler.cs : (Compile) check children only when it is the document
110 element. Fixed bug #76046.
112 2005-08-25 Atsushi Enomoto <atsushi@ximian.com>
114 * ScriptCompilerInfo.cs : It should not be "#line" when the source is
115 not C#. It should fix bug #75789.
117 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
119 * XslKey.cs : Fixed match pattern in xsl:key to check attribute nodes.
120 To minimize attribute iteration, use Pattern.EvaluatedNodeType.
123 2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
125 * XslFunctions.cs : XslTransform recovers from errors on document
126 resolution. Fixed bug #75663.
128 2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
130 * HtmlEmitter.cs : Boolean attribute values should be omitted, but
131 only for related elements.
133 2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
135 * MSXslScriptManager.cs : it should ignore compiler warnings. This
138 2005-04-07 Andrew Skiba <andrews@mainsoft.com>
140 * XslDecimalFormat.jvm.cs : added
142 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
144 * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
145 support CodeDom). Use Guid.ToString("N").
147 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
149 * Compiler.cs : removed extraneous using_directive.
151 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
153 * XslKey.cs : the iterator does not require sorting (already sorted).
156 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
159 Variables are stored per stylesheet and added to compiler after
160 all of the contents are processed (handle import precedence).
161 Imports are now processed in prior to other contents (incorrect
162 imports are now rejected). After imports, process includes to
163 process nested imports. In-process included stylesheets are
164 temporarily stored in including stylesheet.
165 Handle keys like variables are handled.
166 Added Compile() that is splitted from .ctor().
168 Store keys in compiler and compiled stylesheet.
169 Duplicate variables in imports are now overriden as expected.
170 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
172 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
174 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
175 from each EvaluateXXX() methods.
176 * MsxslScriptManager.cs : not to leave reference to stylesheet
177 navigator, pass current node to Compile().
178 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
179 navigator cache for each pattern, to avoid Clone() and not to leave
180 reference to already-done instance navigator.
182 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
184 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
185 * XslKey.cs : Use XSLT pattern parser for match.
186 UsePattern is now "Use" (it is not a pattern).
187 Reimplemented Evaluate() to make full use of index table.
188 Added Matches() to handle shorter match evaluation. For const value
189 for key (e.g. key patterns), it could avoid Evaluate().
190 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
191 new KeyIndexTable.Matches().
192 * XslFunctions.cs : Added PatternMatches() that just delegates to new
193 XsltCompiledContext.MatchesKey().
195 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
197 * GenericOutputter.cs : commented out warned fields.
199 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
201 * XslKey.cs : removed last ListIterator.ctor() argument.
202 Reverted the last commit that changed internal key index change
203 from ArrayList to Hashtable. Avoid clone in CollectIndex().
204 Sort results in Evaluate() before passing list to ListIterator.
205 * XslFunctions.cs : removed last ListIterator.ctor() argument.
207 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
210 XsltCompiledContext.cs,
212 XslTransformProcessor.cs : Now dynamic context key index table is
213 separate from XslKey static context. Added KeyIndexTable class and
214 store it into XsltCompiledContext with hash name-table mapping.
215 Cache map from statically-named key to index table.
216 Use Hashtable for internal key cache instead of ArrayList.
218 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
220 * XslKey.cs : fixed node iteration on collecting key indices which
221 could have resulted in an infinite loop.
223 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
225 * XslDecimalFormat.cs : in some cases it does not throw format
228 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
230 * XsltCompiledContext.cs,
231 XslStylesheet.cs : Fixed significant performance loss on whitespace
234 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
236 * XslKey.cs : removed unused NeedAbsoluteMatching.
237 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
238 Added some missing ToString() overrides.
240 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
242 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
243 to work fine with xsl:*-space attributes as expected.
244 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
245 actually nothing. It should not use XsltContext.PreserveWhitespace()
246 because this method is used to control output, while the referenced
247 method is used to control source document.
249 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
251 * XslTemplate.cs : First non-element content were incorrectly ignored.
253 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
255 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
256 to reduce references to stylesheet XPathNavigator. To accomplish it,
257 IStaticXsltContext does not declare GetNsm() anymore. All xslt
258 function types now directly hold IStaticXsltContext.
259 * XslStylesheet.cs : removed "Compiler c" field.
260 Removed unused properties.
262 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
264 * GenericOutputter.cs : When WriteStartElement() requires to add
265 new namespace declaration, _currentNamespaceDecls needs to be set.
267 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
269 * GenericOutputter.cs : for duplicate attribute in an element, no need
270 to keep previous prefix.
272 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
274 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
275 namespace. Rewrite prefix only when there is non-empty namespace.
277 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
279 * XslStylesheet.cs : Now namespace aliases are collected in prior to
280 all other toplevel elements. Removed unused code.
282 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
284 * GenericOutputter.cs : compute attribute prefix only when actual
285 emission. Fixed some cases that namespace output was missing.
287 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
289 * GenericOutputter.cs : no need to use two collections to store
290 pending attributes. Just use ordered ListDictionary.
291 newNamespace.Add(int) causes extraneous boxing.
293 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
295 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
296 OutputLiteralNamespaceUriNodes() so that everyone can understand
297 what it means and when it should be invoked.
299 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
301 * Compiler.cs : added another CompileTemplateContent() which is
302 requred in xsl:for-each. Commented out unused method.
304 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
306 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
307 in stylesheet should be considered in TryElementNamespacesOutput().
308 ParseQNameListAttribute() is not properly working for filling
311 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
313 * XslStylesheet.cs : included stylesheet could be literal result
314 element as stylesheet (see the spec 2.6.1).
316 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
318 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
319 empty string when nsURI is empty.
320 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
321 unlike xml but like span, as written in the spec 16.2.
323 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
325 * XslCompiledContext.cs, XslTransformProcessor.cs :
326 According to errata E25, those namespaces 1) that has the same
327 name as current element's prefix, or an empty name when current
328 element's namespace URI is empty, are not written to output.
329 So added current element information to XPathContext and added
330 prefix parameter to PushElementState(), added xsl:copy check to
331 TryElementNamespacesOutput().
332 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
334 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
336 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
339 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
341 * XslTemplate.cs : According to the spec 5.7, it is an error for
342 xsl:template to have 'mode' without 'match'.
344 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
346 * Compiler.cs : added ns lookup with nsDecls Hashtable.
348 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
350 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
352 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
354 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
355 namespace "http://www.w3.org/XML/1998/namespace".
357 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
359 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
360 * HtmlEmitter.cs : CDATA nodes are written just as text.
361 * GenericOutputter.cs : custom format are treated just as XML output.
363 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
367 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
368 and WriteState. Writing XML declaration is done inside
369 DetermineOutputMethod().
371 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
373 * Compiler.cs : reverted previous fix, since it should be done
374 in XslTransformProcessor with root stylesheet.
375 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
376 don't output alias namespaces. And now consider null exclusions.
378 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
380 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
382 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
384 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
385 namespace nodes. Patch by Andrew Skiba with some fixes.
386 * XslTransformProcessor.cs : Patch by Andrew Skiba.
387 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
388 as to handle all namespace nodes to copy in stylesheet nodes.
389 Global parameterss are evaluated before global variables.
390 * XmlOutputter.cs : removed unused code.
394 * Actually variables and params should check reference recursion.
395 This patch incompletely fixes the problem.
396 * Those operations that considers excluded-result-prefixes must
397 also check those attributes of its ancestors.
399 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
401 * XmlWriterEmitter.cs : String.Replace() was insufficient for
402 sequential candidates for replacement. Patch by Andrew Skiba.
404 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
406 * GenericOutputter.cs : don't output extraneous xml declaration.
409 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
411 * XslStylesheet.cs : MS implementation had chosen to recover from
412 the error, in the way specified in the spec 7.7.1. Patch by Andrew
415 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
417 * XslTemplate.cs : if input is literal result element, it could result
418 in ArgumentException. Patch by Andrew Skiba.
420 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
422 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
423 NullReferenceException. Patch by Andrew Skiba.
425 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
427 * XslOutput.cs : MS.NET recovers from unknown encoding according to
428 XSLT spec 16.1. Patch by Andrew Skiba.
430 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
432 * HtmlEmitter.cs : patch by Andrew Skiba.
433 Remove extra element prefix output. simplify attribute prefix output.
434 Attribute output might have resulted in invalid element stack peek.
435 Output specified media type if any.
437 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
439 * Compiler.cs : Patch by Andrew Skiba.
440 wrap internal exception with XsltCompileException.
441 Raise an error for not-found document URI.
442 QName might contain sequential whitespaces and thus could be empty.
444 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
446 * XslAttributeSet.cs : just ignore other kind of nodes than element
447 in its content. Fix by Andrew Skiba.
449 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
451 * XslOutput.cs : for html and text output mode, just set internal
452 omitXmlDeclaration status true. Patch by Andrew Skiba.
454 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
456 * XslFunctions.cs : fixed line ending mixture.
458 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
460 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
463 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
466 Compiler.cs : XmlResolver.ResolveUri() may return null.
468 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
470 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
473 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
475 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
477 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
479 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
482 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
484 * XslStylesheet.cs : removed unused fields.
485 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
488 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
490 * Compiler.cs, XslTransformProcessor.cs :
491 when creating XmlTextReader, reuse XmlNameTable.
493 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
495 * Compiler.cs : Changes that reflects CompiledExpression changes.
497 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
499 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
500 This fixes bug #67390.
502 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
504 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
506 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
508 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
509 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
510 : Globalization. Removed unused code.
512 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
514 * XslKey.cs : Key-value search in absolute path search was
517 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
519 * HtmlEmitter.cs : Correct URL escape implementation.
521 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
523 * XslTransformProcessor.cs : On document() function, close the
524 XmlTextReader opened from uri string.
526 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
529 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
530 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
531 should override another overload.
533 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
535 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
536 assembly should not include the .dll extension.
538 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
541 - CompilePattern() now throws XsltCompileException for invalid
542 pattern, and add error location support.
543 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
544 Now it returns MSXslNodeSet instance (for msxsl:node-set).
545 * Debug.cs : don't throw System.Exception.
546 * XslFunctions.cs : Added MSXslNodeSet class.
547 * XslTemplate.cs : reflected CompilePattern() change.
548 * XslTransformProcessor.cs : don't throw System.Exception.
549 * XsltCompiledContext.cs : don't throw System.Exception.
551 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
555 XslStylesheet.cs : made classes/enums internal.
557 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
559 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
560 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
561 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
562 XslTransformProcessor.cs : Make extra classes internal.
564 * XslKey.cs : It should require sorting.
565 * Debug.cs : Just avoid debug output. Only who want to output should
568 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
570 * GenericOutputter.cs : Culture-independency fix.
571 Replaced StringCollection to ArrayList.
572 * XslOutput.cs : Culture-independency fix.
574 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
576 * Compiler.cs : When BaseURI is an empty string, it should not try to
577 create Uri instance. This will fix bug #56832, but not sure.
578 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
579 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
580 should be the TextReader's NewLine).
581 * MSXslScriptManager.cs : Should raise an error when the prefix which
582 was specified by "implements-prefix" was not found.
584 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
586 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
587 when BaseURI for msxsl:script node is not available. This fixes
589 Don't output line number in the error message, when it is 0.
591 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
593 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
595 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
600 XslTransformProcessor.cs :
601 Throw specific types of exceptions instead of Exception.
602 * XslFunctions.cs, XsltCompiledContext.cs :
603 added node argument for XsltExtensionFunction ctor() etc.
605 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
607 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
608 CodeDom. Compilation error should be caught. This fixes bug #55875.
610 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
612 * XslStylesheet.cs : "version" attribute is also required for embedded
615 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
618 XslStylesheet.cs : Reject xsl element other than stylesheet and
619 transform. Check mandatory version attribute (only for existence).
621 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
623 * MSXslScriptManager.cs : if extension namespace was not found in
624 the script, just return null. Patch by Joshua Tauberer.
626 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
628 * XslLiteralElement.cs : quick fix for ArgumentNullException which
629 was because of the combination of non-namespaced instances and
630 exclude-result-prefixes.
632 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
634 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
635 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
636 * XslFunctions.cs : hereby Added.
637 * Compiler.cs : Removed deleted usingdecl.
639 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
641 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
642 * XslKey.cs : Added ExprKeyContainer expression type, which is
643 designed to be matched at any level.
644 * Compiler.cs : support for ExprKeyContainer.
646 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
648 * XslKey.cs : Now it collects key and matching nodes at the first
649 evaluation time. After that, we can just get them from the table.
650 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
651 prohibited key() usage in "match" and "use" attributes in xsl:key.
652 Modified accessibility of some classes.
653 * GenericOutputter.cs,
657 XmlWriterEmitter.cs : made classes internal.
658 * XslOutput.cs : support line info for exception.
659 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
661 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
663 * XsltCompiledContext.cs : fixed the length of context info array.
665 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
667 * XsltCompiledContext.cs :
668 replaced EnumeratorIterator with ListIterator
670 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
672 * GenericOutputter.cs,
675 XslTemplate.cs : tiny foreach elimination.
677 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
679 * XslOutput.cs : Reverted. default encoding should be utf-8.
681 2004-01-14 Jackson Harper <jackson@ximian.com>
683 * GenericOutputter.cs: Add constructors that do not take an
684 encoding to fix build.
686 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
688 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
689 write XML declaration. It means that output supports non document
690 entity. This fixes bug #52729.
691 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
692 modified WriteStartDocument() signature to receive Encoding.
693 * GenericOutputter.cs :
694 - Added .ctor() which receives Encoding. (It is used for TextWriter
695 output to get actual encoding.)
696 - Added .ctor() to take an boolean argument which indicates it is
697 variable content or not. (When variable, it does not call
698 WriteStartDocument().)
700 XsltCompiledContext.cs : comment out WriteLine().
701 * XslOutput.cs : set default encoding utf-16.
703 2004-01-08 Nick Drochak <ndrochak@ieee.org>
705 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
707 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
709 * XslDecimalFormat.cs : implemented format-number() other than number
711 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
712 catch ArgumentException which will be thrown by formatting process.
714 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
716 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
718 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
720 * XsltCompiledContext.cs: Remove workaround now that monodoc
723 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
725 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
726 aliases at compilation time, so evaluate at the first run-time.
728 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
730 * GenericOutputter.cs : support for runtime-determined output type.
731 * HtmlEmitter.cs : Fixed invalid doctype output.
732 Fixed incorrect double attribute output on non-HTML elements.
733 Improved indentation. Fixed "selected" attribute output.
734 Don't have to convert "'" to "'".
735 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
736 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
737 * XslStylesheet.cs, XsltCompiledContext.cs :
738 space resolution consideration for import and wildcard.
740 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
742 * Compiler.cs, XslTransformProcessor.cs :
743 Use XmlValidatingReader to support id() for external stylesheets.
744 * XslKey.cs, XsltCompiledContext.cs :
745 to evaluate MatchPattern and UsePattern, SetContext() is required.
746 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
748 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
750 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
751 Added WriteWhitespace().
752 * GenericOutputter.cs, XslTemplate.cs : Call above.
753 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
754 CurrentNode in for-each context have to be pulled at evaluation.
756 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
758 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
759 function for bugzilla #52144. It should be reverted soon.
761 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
763 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
765 * MSMslScriptManager.cs : modified generated assembly class to be unique
766 through running AppDomain.
767 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
768 arguments to actual argument types. Bugzilla #51450 should be fixed.
770 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
772 * HtmlEmitter.cs : Fixed incorrect character entity output.
774 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
776 * Added ScriptCompilerInfo.cs.
777 * MSXslScriptManager.cs : Fixed *true* author's name.
778 Implemented basic msxsl:script support.
779 * Compiler.cs : Added Evidence member.
781 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
783 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
784 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
785 Added WriteWhitespace() to assure not writing whitespaces as cdata.
786 * XslAttributeSet.cs : Error check if attribute-set contains other than
787 xsl:attribute. Error should be XsltException.
788 * XslDecimalFormat.cs : Complete equality check. Allow just one
789 character value for some attributes.
790 * XslStylesheet.cs : Made whitespace control setting overridable.
791 Added Version property (for the future compatibility mode).
792 Check unrecongnized top level element.
793 * XslTemplate.cs : Check priority as a number.
794 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
795 for xsl:preserve-space and xsl:strip-space support.
796 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
797 incomplete), PushScope and Pop
799 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
801 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
803 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
805 * Compiler.cs : In FromListString(), it should use default ns,
807 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
808 precedence. Doctype should be written even if SYSTEM id is absent.
809 Fixed possible multiple xmlns output.
811 - Encoding output using META element.
812 - Doctype name is fixed (html).
813 - Double quotation on PUBLIC and SYSTEM missing.
814 - Fixed incorrect tag name check for IMG.
815 - '>' should not be escaped.
816 * XmlWriterEmitter.cs :
817 Added newline before doctype. In WriteComment(), "--" and tail
818 '-' are not allowed (it escapes, while XmlWriter simply rejects).
819 * XslTransformProcessor.cs : cdata-section-elements should enclose
820 direct child tests only. Added PreserveWhitespace() (incomplete).
821 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
823 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
825 * IdPattern.cs : This should work against multiple ids.
827 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
830 * MSXslScriptManager.cs
832 * XslTransformProcessor.cs
833 * XsltCompiledContext.cs: Some work on msxsl script.
835 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
837 (in general: cdata-section-elements support, correct document()
838 base uri handling, and so on)
839 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
840 And move to document element. Added XslNameUtil.FromListString().
841 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
842 Added WriteCDataSection().
843 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
844 Added InsideCDataSection.
845 * GenericOutputter.cs :
846 In .ctor(), WriteState should be succeeded from output XmlWriter.
847 WriteNamespaceDecl() now drops declaration identical to existing one.
848 Removed obsolete htmlEmulation.
849 * XslOutput.cs : Added CDataSectionElements support.
850 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
851 * XslTransformProcessor.cs :
852 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
853 now considers xsl:exclude-element-prefixes on literal element.
854 Added PushCDataState() and PopCDataState().
855 * XsltCompiledContext.cs : When base uri of document() target is empty,
856 then it should use stylesheet's BaseURI, not that of current document.
858 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
860 * Compiler.cs : Modified decimal-format comparison code.
863 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
864 be called only when required.
865 * HtmlEmitter.cs : Improved indentation stuff.
866 * XslDecimalFormat.cs : Added incomplete implementation of
867 CheckSameAs() and FormatNumber().
869 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
870 from StringDictionary to ArrayList of QName (to keep order).
872 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
874 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
875 node type (i.e. attribute and namespace). Removed extraneous Clone().
876 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
878 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
880 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
881 XslStylesheet.cs : Added Keys support here.
882 * XslTransformProcessor.cs : Should call SetContext() to expressions
883 before evaluating current nodes.
884 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
885 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
886 for KeyPattern. It now uses CompiledStyle.FindKeys().
888 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
890 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
891 to Xalan tests and MS.NET implementation (only for test convenience).
892 * XslOutput.cs : Indent holds string rathen than bool. Its default value
893 varies in the context. When method="html", then default is "yes".
894 * XslTransformProcessor.cs : Extension element prefixes should not
895 be written as stylesheet namespaces.
896 * XsltCompiledContext.cs : Return type of generate-id() is string.
897 Implemented unparsed-entity-uri().
899 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
901 * Compiler.cs : More complete attribute set gathering.
902 GetNamespacesToCopy() should only return Local namespaces.
903 * GenericOutputter.cs : Added support for indentation.
904 Added easy hack for html output.
905 More correct Prefix handling (considers already defined ones).
906 Namespace emmission is moved to CheckState().
907 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
908 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
909 * GenericOutputter.cs, Outputter.cs :
910 Added CanProcessAttributes property for
911 use-attribute-sets of xsl:copy.
912 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
913 Added support for exclude-result-prefixes.
914 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
916 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
918 * Compiler.cs : It is not important, but attribute order became closer
919 to MS.NET and Xalan (assuming from OASIS tests).
921 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
923 * GenericOutputter.cs : Attribute wasn't overwritten its properties
924 because Attribute is struct it was let to another local variable.
926 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
928 * GenericOutputter.cs: make html output a warning, because doing
929 xml will be right most of the time.
931 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
933 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
934 here for a long time and it hurts thread safty and memory
937 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
939 * Compiler.cs: save the parser (will reduce memory allocation when
940 Jackson's jay patch is committed).
942 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
944 * Attribute.cs: Change to struct. Remove QName class.
945 * GenericOutputter.cs: use an Attribute [] rather than an
946 ArrayList. Allows us not to allocate Attributes, which is great
947 for speed. Roll our own allocation.
949 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
951 * Compiler.cs: add GetNsm to main class as well.
953 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
955 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
956 internal version so we get null if the attr doesnt exist.
958 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
960 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
961 where curVarScope == null
963 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
966 - Better handling of empty attributes (vs not being specified)
967 - Bug in handling #default
969 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
971 * Compiler.cs: Off by one when parsing localname of QName
972 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
973 children (so that they get overriden)
975 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
977 * GenericOutputter.cs: Output attributes in order recieved; not
978 required by spec, but useful for running test cases.
980 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
982 * GenericOutputter.cs - fix bug with outputting state.
983 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
984 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
986 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
988 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
989 exprs on use, pass to nav.
991 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
993 * Compiler.cs: pass satic context to Pattern ctor.
995 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
998 GenericOutputter.cs - generic Outputter implementation,
999 Attribute.cs - represents outputted attribute,
1000 Emitter.cs - abstract output emitter,
1001 TextEmitter.cs - text emitter,
1002 XmlWriterEmitter.cs - emitter to XmlWriter.
1003 * Checking of duplicating attributes is done in GenericOutputter.
1004 * Namespace outputting logic is implemented in GenericOutputter.
1005 * Outputter.cs: Writing namespace declarations is delegated to
1006 derived classes (GenericOutputter).
1007 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
1009 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
1011 * XslTransformProcessor.cs: evaluate variables at beginning
1012 when / is current node.
1014 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
1016 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
1017 Fix up namespace handeling
1019 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
1021 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
1023 * XslDecimalFormat.cs: Stub for decimal-format.
1025 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
1027 * TextOutputter.cs: Add option to ignore element content (Oleg).
1029 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1031 * Compiler.cs: Really give null for blank avt's
1033 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1035 * Compiler.cs: Fixed lre/lre04.
1037 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1039 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
1040 won't have default namespace. See http://www.w3.org/TR/xslt#qname
1042 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1044 * XslTransformProcessor.cs: add support for resolving documents.
1045 * XsltCompiledContext: add support for document () function.
1047 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1049 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
1050 of the abstract methods in Outputter, making them call other
1051 functions with default values, remove impl's in derived classes.
1053 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1055 * Outputter.cs: s/Close/Done
1056 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
1057 * XslTransformProcessor.cs: Flush output when popping, pop at end.
1059 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1061 * Outputter.cs: Add support for namespaces.
1063 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1065 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
1066 XslTransformProcessor.cs: move output logic from XslStylesheet to
1069 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1071 * XslOutput.cs: add support for encoding.
1073 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1075 * *.cs: Support for xsl:output. (Oleg)
1077 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1079 * Compiler.cs: handle extension and excluded namespaces.
1081 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1083 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
1084 from the stylesheet for correct namespace resolution.
1086 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1088 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
1089 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
1091 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
1093 * XslTransformProcessor.cs: Add a table to detect when an object
1095 * XslAttributeSet.cs: Use the above table. Dont throw nullref
1096 exception when no use-attribute-sets are specified.
1098 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1100 * Compiler.cs: Add support for boolean attributes (yes/no).
1102 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1104 * Compiler.cs: Add method LocalNameOf, to get the local name of a
1106 * XslTransformProcessor.cs: Support for setting the XmlResolver.
1108 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1110 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
1112 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1114 * XslTransformProcessor.cs: Add EvaluateNumber method.
1116 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1118 * XsltCompiledContext.cs: Implement more functions.
1120 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1122 * Compiler.cs: Add support for key, utility function to parse
1123 QName's from the XsltContext. Store keys in the CompiledStyle, not
1125 * XslKey.cs: Real implementation
1126 * XslStylesheet.cs: Move the keys to CompiledStyle.
1127 * XsltCompiledContext.cs: Implement the key function
1129 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1131 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1132 the functions ;-). Also wrote current ().
1134 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1136 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1137 done in XPath. Add stubs for XSLT functions.
1139 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1141 * Compiler.cs: To resolve a variable you now need to pass the
1142 processor, so that it can be passed to IsEvaluated. A local will
1143 only be resolved if it has already been evaluated.
1144 * XsltCompiledContext.cs: Pass along the processor.
1146 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1148 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1149 variable values in the XslTransformProcessor.
1150 * XsltCompiledContext.cs: If the scope is null, don't look there!
1151 * Debug.cs: New method Assert
1153 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1155 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1156 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1157 internal methods in XPathNavigator. Remove verbose debugging messages.
1159 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>