1 2006-03-15 Atsushi Enomoto <atsushi@ximian.com>
3 * XslTransformProcessor.cs,
4 Compiler.cs : eliminate ExpressionStore. Now sorting is done
5 inside XslSortEvaluator.
6 * XslSortEvaluator.cs : new file. It handles current node in XSLT
7 context. Fixed bug #77781.
9 2006-03-15 Atsushi Enomoto <atsushi@ximian.com>
11 * XslTransformProcessor.cs : in PushNodeset() avoid Clone(). It saves
12 extra cost, and might avoid possible bug in for-each and current()
15 2006-02-22 Atsushi Enomoto <atsushi@ximian.com>
17 * ScriptCompilerInfo.cs : mbas unlike vbc references System.dll
18 etc. by default, so don't add them as references.
19 Set only local file name for #ExternalSource. Fixed bug #75789.
21 2006-01-13 Atsushi Enomoto <atsushi@ximian.com>
23 * GenericOutputter.cs : When writing string, use WriteWhitespace()
24 instead of WhiteString() when its state is not Content. This fixes
25 BVTs_bvt066 case (broken after implementing strict state check in
28 2005-12-24 Gert Driesen <drieseng@users.sourceforge.net>
30 * XslOutput.cs: Do not report error for unknown value for "standalone"
31 and "omit-xml-declaration" attributes, and extranous attributes if
32 stylesheet version is not "1.0".
34 2005-12-24 Atsushi Enomoto <atsushi@ximian.com>
36 * Compiler.cs : pass stylesheet version to XslOutput to determine
37 "indent" value validity.
38 * XslOutput.cs, HtmlEmitter.cs, GenericOutputter.cs : Reverted
39 buggy changes on "indent" attribute handling.
40 http://www.w3.org/TR/xslt#section-HTML-Output-Method
42 2005-12-23 Gert Driesen <drieseng@users.sourceforge.net>
44 * XslOutput.cs: Reduced indentation of cases in switch statement.
46 2005-12-23 Gert Driesen <drieseng@users.sourceforge.net>
48 * ScriptCompilerInfo.cs: Fixed line endings.
49 * XslStylesheet.cs: Beautify error messages.
50 * Debug.cs: Fixed line endings.
51 * XslOutput.cs: Indent is now bool instead of string, use
52 MoveToAttribute to navigate through attributes instead of using
53 GetAttribute, as we also need to distinguish attributes with
54 zero-length value from attributes that are not specified for
55 correct implementation of DOCTYPE. Implemented validation for
56 value of "omit-xml-declaration", "standalone" and "indent".
57 We now throw a XsltCompileException for unknown attribute.
58 * XmlWriterEmitter.cs: only skip WriteDocType is systemId is null.
59 * HtmlEmitter.cs: XslOutput.Indent is now bool. Fixed WriteDocType
61 * XmlDecimalFormat.cs: Beautify error messages.
62 * XslTemplate.cs: Beautify error messages.
63 * GenericOutputter.cs: XslOutput.Indent is now bool.
64 * Compiler.cs: Beautify error messages.
66 2005-12-21 Atsushi Enomoto <atsushi@ximian.com>
68 * XslTemplate.cs : don't check name and mode attributes on
69 non-'xsl:template' element. This should fix bug #77051.
71 2005-12-13 Andrew Skiba <andrews@mainsoft.com>
73 * XslDecimalFormat.jvm.cs: set correct defaults for NaN and Infinity
75 2005-11-30 Atsushi Enomoto <atsushi@ximian.com>
77 * ScriptCompilerInfo.cs : (VBCompilerInfo) There was a space between
78 '#' and 'ExternalResource'. bug #75789 should be fixed.
80 2005-11-23 Vladimir Krasnov <vladimirk@mainsoft.com>
82 * XslKey.cs: fixed KeyIndexTable.Evaluate method, changed
83 XPathNavigator given to GetNodesByValue()
85 2005-11-17 Atsushi Enomoto <atsushi@ximian.com>
87 * XslCompiledContext.cs : since XsltContextInfo is struct, having
88 an array of this type and setting fields of each struct didn't
89 make sense. It thus blocked expected PreserveWhitespace behavior.
91 2005-10-24 Atsushi Enomoto <atsushi@ximian.com>
93 * Compiler.cs : (FromString(s, hashtable)) pull default namespace
94 from the table for LRE (don't consider it as ""; spec. 7.1.2)
97 2005-09-16 Atsushi Enomoto <atsushi@ximian.com>
99 * ScriptCompilerInfo.cs : Compile correct replacement result.
102 2005-09-10 Atsushi Enomoto <atsushi@ximian.com>
104 * Compiler.cs : (Compile) check children only when it is the document
105 element. Fixed bug #76046.
107 2005-08-25 Atsushi Enomoto <atsushi@ximian.com>
109 * ScriptCompilerInfo.cs : It should not be "#line" when the source is
110 not C#. It should fix bug #75789.
112 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
114 * XslKey.cs : Fixed match pattern in xsl:key to check attribute nodes.
115 To minimize attribute iteration, use Pattern.EvaluatedNodeType.
118 2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
120 * XslFunctions.cs : XslTransform recovers from errors on document
121 resolution. Fixed bug #75663.
123 2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
125 * HtmlEmitter.cs : Boolean attribute values should be omitted, but
126 only for related elements.
128 2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
130 * MSXslScriptManager.cs : it should ignore compiler warnings. This
133 2005-04-07 Andrew Skiba <andrews@mainsoft.com>
135 * XslDecimalFormat.jvm.cs : added
137 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
139 * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
140 support CodeDom). Use Guid.ToString("N").
142 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
144 * Compiler.cs : removed extraneous using_directive.
146 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
148 * XslKey.cs : the iterator does not require sorting (already sorted).
151 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
154 Variables are stored per stylesheet and added to compiler after
155 all of the contents are processed (handle import precedence).
156 Imports are now processed in prior to other contents (incorrect
157 imports are now rejected). After imports, process includes to
158 process nested imports. In-process included stylesheets are
159 temporarily stored in including stylesheet.
160 Handle keys like variables are handled.
161 Added Compile() that is splitted from .ctor().
163 Store keys in compiler and compiled stylesheet.
164 Duplicate variables in imports are now overriden as expected.
165 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
167 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
169 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
170 from each EvaluateXXX() methods.
171 * MsxslScriptManager.cs : not to leave reference to stylesheet
172 navigator, pass current node to Compile().
173 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
174 navigator cache for each pattern, to avoid Clone() and not to leave
175 reference to already-done instance navigator.
177 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
179 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
180 * XslKey.cs : Use XSLT pattern parser for match.
181 UsePattern is now "Use" (it is not a pattern).
182 Reimplemented Evaluate() to make full use of index table.
183 Added Matches() to handle shorter match evaluation. For const value
184 for key (e.g. key patterns), it could avoid Evaluate().
185 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
186 new KeyIndexTable.Matches().
187 * XslFunctions.cs : Added PatternMatches() that just delegates to new
188 XsltCompiledContext.MatchesKey().
190 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
192 * GenericOutputter.cs : commented out warned fields.
194 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
196 * XslKey.cs : removed last ListIterator.ctor() argument.
197 Reverted the last commit that changed internal key index change
198 from ArrayList to Hashtable. Avoid clone in CollectIndex().
199 Sort results in Evaluate() before passing list to ListIterator.
200 * XslFunctions.cs : removed last ListIterator.ctor() argument.
202 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
205 XsltCompiledContext.cs,
207 XslTransformProcessor.cs : Now dynamic context key index table is
208 separate from XslKey static context. Added KeyIndexTable class and
209 store it into XsltCompiledContext with hash name-table mapping.
210 Cache map from statically-named key to index table.
211 Use Hashtable for internal key cache instead of ArrayList.
213 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
215 * XslKey.cs : fixed node iteration on collecting key indices which
216 could have resulted in an infinite loop.
218 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
220 * XslDecimalFormat.cs : in some cases it does not throw format
223 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
225 * XsltCompiledContext.cs,
226 XslStylesheet.cs : Fixed significant performance loss on whitespace
229 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
231 * XslKey.cs : removed unused NeedAbsoluteMatching.
232 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
233 Added some missing ToString() overrides.
235 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
237 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
238 to work fine with xsl:*-space attributes as expected.
239 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
240 actually nothing. It should not use XsltContext.PreserveWhitespace()
241 because this method is used to control output, while the referenced
242 method is used to control source document.
244 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
246 * XslTemplate.cs : First non-element content were incorrectly ignored.
248 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
250 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
251 to reduce references to stylesheet XPathNavigator. To accomplish it,
252 IStaticXsltContext does not declare GetNsm() anymore. All xslt
253 function types now directly hold IStaticXsltContext.
254 * XslStylesheet.cs : removed "Compiler c" field.
255 Removed unused properties.
257 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
259 * GenericOutputter.cs : When WriteStartElement() requires to add
260 new namespace declaration, _currentNamespaceDecls needs to be set.
262 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
264 * GenericOutputter.cs : for duplicate attribute in an element, no need
265 to keep previous prefix.
267 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
269 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
270 namespace. Rewrite prefix only when there is non-empty namespace.
272 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
274 * XslStylesheet.cs : Now namespace aliases are collected in prior to
275 all other toplevel elements. Removed unused code.
277 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
279 * GenericOutputter.cs : compute attribute prefix only when actual
280 emission. Fixed some cases that namespace output was missing.
282 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
284 * GenericOutputter.cs : no need to use two collections to store
285 pending attributes. Just use ordered ListDictionary.
286 newNamespace.Add(int) causes extraneous boxing.
288 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
290 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
291 OutputLiteralNamespaceUriNodes() so that everyone can understand
292 what it means and when it should be invoked.
294 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
296 * Compiler.cs : added another CompileTemplateContent() which is
297 requred in xsl:for-each. Commented out unused method.
299 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
301 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
302 in stylesheet should be considered in TryElementNamespacesOutput().
303 ParseQNameListAttribute() is not properly working for filling
306 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
308 * XslStylesheet.cs : included stylesheet could be literal result
309 element as stylesheet (see the spec 2.6.1).
311 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
313 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
314 empty string when nsURI is empty.
315 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
316 unlike xml but like span, as written in the spec 16.2.
318 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
320 * XslCompiledContext.cs, XslTransformProcessor.cs :
321 According to errata E25, those namespaces 1) that has the same
322 name as current element's prefix, or an empty name when current
323 element's namespace URI is empty, are not written to output.
324 So added current element information to XPathContext and added
325 prefix parameter to PushElementState(), added xsl:copy check to
326 TryElementNamespacesOutput().
327 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
329 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
331 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
334 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
336 * XslTemplate.cs : According to the spec 5.7, it is an error for
337 xsl:template to have 'mode' without 'match'.
339 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
341 * Compiler.cs : added ns lookup with nsDecls Hashtable.
343 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
345 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
347 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
349 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
350 namespace "http://www.w3.org/XML/1998/namespace".
352 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
354 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
355 * HtmlEmitter.cs : CDATA nodes are written just as text.
356 * GenericOutputter.cs : custom format are treated just as XML output.
358 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
362 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
363 and WriteState. Writing XML declaration is done inside
364 DetermineOutputMethod().
366 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
368 * Compiler.cs : reverted previous fix, since it should be done
369 in XslTransformProcessor with root stylesheet.
370 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
371 don't output alias namespaces. And now consider null exclusions.
373 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
375 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
377 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
379 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
380 namespace nodes. Patch by Andrew Skiba with some fixes.
381 * XslTransformProcessor.cs : Patch by Andrew Skiba.
382 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
383 as to handle all namespace nodes to copy in stylesheet nodes.
384 Global parameterss are evaluated before global variables.
385 * XmlOutputter.cs : removed unused code.
389 * Actually variables and params should check reference recursion.
390 This patch incompletely fixes the problem.
391 * Those operations that considers excluded-result-prefixes must
392 also check those attributes of its ancestors.
394 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
396 * XmlWriterEmitter.cs : String.Replace() was insufficient for
397 sequential candidates for replacement. Patch by Andrew Skiba.
399 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
401 * GenericOutputter.cs : don't output extraneous xml declaration.
404 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
406 * XslStylesheet.cs : MS implementation had chosen to recover from
407 the error, in the way specified in the spec 7.7.1. Patch by Andrew
410 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
412 * XslTemplate.cs : if input is literal result element, it could result
413 in ArgumentException. Patch by Andrew Skiba.
415 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
417 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
418 NullReferenceException. Patch by Andrew Skiba.
420 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
422 * XslOutput.cs : MS.NET recovers from unknown encoding according to
423 XSLT spec 16.1. Patch by Andrew Skiba.
425 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
427 * HtmlEmitter.cs : patch by Andrew Skiba.
428 Remove extra element prefix output. simplify attribute prefix output.
429 Attribute output might have resulted in invalid element stack peek.
430 Output specified media type if any.
432 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
434 * Compiler.cs : Patch by Andrew Skiba.
435 wrap internal exception with XsltCompileException.
436 Raise an error for not-found document URI.
437 QName might contain sequential whitespaces and thus could be empty.
439 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
441 * XslAttributeSet.cs : just ignore other kind of nodes than element
442 in its content. Fix by Andrew Skiba.
444 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
446 * XslOutput.cs : for html and text output mode, just set internal
447 omitXmlDeclaration status true. Patch by Andrew Skiba.
449 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
451 * XslFunctions.cs : fixed line ending mixture.
453 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
455 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
458 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
461 Compiler.cs : XmlResolver.ResolveUri() may return null.
463 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
465 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
468 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
470 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
472 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
474 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
477 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
479 * XslStylesheet.cs : removed unused fields.
480 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
483 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
485 * Compiler.cs, XslTransformProcessor.cs :
486 when creating XmlTextReader, reuse XmlNameTable.
488 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
490 * Compiler.cs : Changes that reflects CompiledExpression changes.
492 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
494 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
495 This fixes bug #67390.
497 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
499 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
501 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
503 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
504 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
505 : Globalization. Removed unused code.
507 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
509 * XslKey.cs : Key-value search in absolute path search was
512 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
514 * HtmlEmitter.cs : Correct URL escape implementation.
516 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
518 * XslTransformProcessor.cs : On document() function, close the
519 XmlTextReader opened from uri string.
521 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
524 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
525 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
526 should override another overload.
528 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
530 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
531 assembly should not include the .dll extension.
533 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
536 - CompilePattern() now throws XsltCompileException for invalid
537 pattern, and add error location support.
538 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
539 Now it returns MSXslNodeSet instance (for msxsl:node-set).
540 * Debug.cs : don't throw System.Exception.
541 * XslFunctions.cs : Added MSXslNodeSet class.
542 * XslTemplate.cs : reflected CompilePattern() change.
543 * XslTransformProcessor.cs : don't throw System.Exception.
544 * XsltCompiledContext.cs : don't throw System.Exception.
546 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
550 XslStylesheet.cs : made classes/enums internal.
552 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
554 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
555 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
556 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
557 XslTransformProcessor.cs : Make extra classes internal.
559 * XslKey.cs : It should require sorting.
560 * Debug.cs : Just avoid debug output. Only who want to output should
563 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
565 * GenericOutputter.cs : Culture-independency fix.
566 Replaced StringCollection to ArrayList.
567 * XslOutput.cs : Culture-independency fix.
569 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
571 * Compiler.cs : When BaseURI is an empty string, it should not try to
572 create Uri instance. This will fix bug #56832, but not sure.
573 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
574 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
575 should be the TextReader's NewLine).
576 * MSXslScriptManager.cs : Should raise an error when the prefix which
577 was specified by "implements-prefix" was not found.
579 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
581 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
582 when BaseURI for msxsl:script node is not available. This fixes
584 Don't output line number in the error message, when it is 0.
586 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
588 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
590 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
595 XslTransformProcessor.cs :
596 Throw specific types of exceptions instead of Exception.
597 * XslFunctions.cs, XsltCompiledContext.cs :
598 added node argument for XsltExtensionFunction ctor() etc.
600 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
602 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
603 CodeDom. Compilation error should be caught. This fixes bug #55875.
605 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
607 * XslStylesheet.cs : "version" attribute is also required for embedded
610 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
613 XslStylesheet.cs : Reject xsl element other than stylesheet and
614 transform. Check mandatory version attribute (only for existence).
616 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
618 * MSXslScriptManager.cs : if extension namespace was not found in
619 the script, just return null. Patch by Joshua Tauberer.
621 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
623 * XslLiteralElement.cs : quick fix for ArgumentNullException which
624 was because of the combination of non-namespaced instances and
625 exclude-result-prefixes.
627 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
629 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
630 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
631 * XslFunctions.cs : hereby Added.
632 * Compiler.cs : Removed deleted usingdecl.
634 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
636 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
637 * XslKey.cs : Added ExprKeyContainer expression type, which is
638 designed to be matched at any level.
639 * Compiler.cs : support for ExprKeyContainer.
641 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
643 * XslKey.cs : Now it collects key and matching nodes at the first
644 evaluation time. After that, we can just get them from the table.
645 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
646 prohibited key() usage in "match" and "use" attributes in xsl:key.
647 Modified accessibility of some classes.
648 * GenericOutputter.cs,
652 XmlWriterEmitter.cs : made classes internal.
653 * XslOutput.cs : support line info for exception.
654 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
656 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
658 * XsltCompiledContext.cs : fixed the length of context info array.
660 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
662 * XsltCompiledContext.cs :
663 replaced EnumeratorIterator with ListIterator
665 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
667 * GenericOutputter.cs,
670 XslTemplate.cs : tiny foreach elimination.
672 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
674 * XslOutput.cs : Reverted. default encoding should be utf-8.
676 2004-01-14 Jackson Harper <jackson@ximian.com>
678 * GenericOutputter.cs: Add constructors that do not take an
679 encoding to fix build.
681 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
683 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
684 write XML declaration. It means that output supports non document
685 entity. This fixes bug #52729.
686 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
687 modified WriteStartDocument() signature to receive Encoding.
688 * GenericOutputter.cs :
689 - Added .ctor() which receives Encoding. (It is used for TextWriter
690 output to get actual encoding.)
691 - Added .ctor() to take an boolean argument which indicates it is
692 variable content or not. (When variable, it does not call
693 WriteStartDocument().)
695 XsltCompiledContext.cs : comment out WriteLine().
696 * XslOutput.cs : set default encoding utf-16.
698 2004-01-08 Nick Drochak <ndrochak@ieee.org>
700 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
702 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
704 * XslDecimalFormat.cs : implemented format-number() other than number
706 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
707 catch ArgumentException which will be thrown by formatting process.
709 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
711 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
713 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
715 * XsltCompiledContext.cs: Remove workaround now that monodoc
718 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
720 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
721 aliases at compilation time, so evaluate at the first run-time.
723 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
725 * GenericOutputter.cs : support for runtime-determined output type.
726 * HtmlEmitter.cs : Fixed invalid doctype output.
727 Fixed incorrect double attribute output on non-HTML elements.
728 Improved indentation. Fixed "selected" attribute output.
729 Don't have to convert "'" to "'".
730 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
731 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
732 * XslStylesheet.cs, XsltCompiledContext.cs :
733 space resolution consideration for import and wildcard.
735 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
737 * Compiler.cs, XslTransformProcessor.cs :
738 Use XmlValidatingReader to support id() for external stylesheets.
739 * XslKey.cs, XsltCompiledContext.cs :
740 to evaluate MatchPattern and UsePattern, SetContext() is required.
741 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
743 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
745 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
746 Added WriteWhitespace().
747 * GenericOutputter.cs, XslTemplate.cs : Call above.
748 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
749 CurrentNode in for-each context have to be pulled at evaluation.
751 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
753 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
754 function for bugzilla #52144. It should be reverted soon.
756 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
758 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
760 * MSMslScriptManager.cs : modified generated assembly class to be unique
761 through running AppDomain.
762 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
763 arguments to actual argument types. Bugzilla #51450 should be fixed.
765 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
767 * HtmlEmitter.cs : Fixed incorrect character entity output.
769 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
771 * Added ScriptCompilerInfo.cs.
772 * MSXslScriptManager.cs : Fixed *true* author's name.
773 Implemented basic msxsl:script support.
774 * Compiler.cs : Added Evidence member.
776 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
778 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
779 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
780 Added WriteWhitespace() to assure not writing whitespaces as cdata.
781 * XslAttributeSet.cs : Error check if attribute-set contains other than
782 xsl:attribute. Error should be XsltException.
783 * XslDecimalFormat.cs : Complete equality check. Allow just one
784 character value for some attributes.
785 * XslStylesheet.cs : Made whitespace control setting overridable.
786 Added Version property (for the future compatibility mode).
787 Check unrecongnized top level element.
788 * XslTemplate.cs : Check priority as a number.
789 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
790 for xsl:preserve-space and xsl:strip-space support.
791 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
792 incomplete), PushScope and Pop
794 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
796 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
798 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
800 * Compiler.cs : In FromListString(), it should use default ns,
802 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
803 precedence. Doctype should be written even if SYSTEM id is absent.
804 Fixed possible multiple xmlns output.
806 - Encoding output using META element.
807 - Doctype name is fixed (html).
808 - Double quotation on PUBLIC and SYSTEM missing.
809 - Fixed incorrect tag name check for IMG.
810 - '>' should not be escaped.
811 * XmlWriterEmitter.cs :
812 Added newline before doctype. In WriteComment(), "--" and tail
813 '-' are not allowed (it escapes, while XmlWriter simply rejects).
814 * XslTransformProcessor.cs : cdata-section-elements should enclose
815 direct child tests only. Added PreserveWhitespace() (incomplete).
816 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
818 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
820 * IdPattern.cs : This should work against multiple ids.
822 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
825 * MSXslScriptManager.cs
827 * XslTransformProcessor.cs
828 * XsltCompiledContext.cs: Some work on msxsl script.
830 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
832 (in general: cdata-section-elements support, correct document()
833 base uri handling, and so on)
834 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
835 And move to document element. Added XslNameUtil.FromListString().
836 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
837 Added WriteCDataSection().
838 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
839 Added InsideCDataSection.
840 * GenericOutputter.cs :
841 In .ctor(), WriteState should be succeeded from output XmlWriter.
842 WriteNamespaceDecl() now drops declaration identical to existing one.
843 Removed obsolete htmlEmulation.
844 * XslOutput.cs : Added CDataSectionElements support.
845 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
846 * XslTransformProcessor.cs :
847 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
848 now considers xsl:exclude-element-prefixes on literal element.
849 Added PushCDataState() and PopCDataState().
850 * XsltCompiledContext.cs : When base uri of document() target is empty,
851 then it should use stylesheet's BaseURI, not that of current document.
853 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
855 * Compiler.cs : Modified decimal-format comparison code.
858 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
859 be called only when required.
860 * HtmlEmitter.cs : Improved indentation stuff.
861 * XslDecimalFormat.cs : Added incomplete implementation of
862 CheckSameAs() and FormatNumber().
864 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
865 from StringDictionary to ArrayList of QName (to keep order).
867 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
869 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
870 node type (i.e. attribute and namespace). Removed extraneous Clone().
871 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
873 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
875 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
876 XslStylesheet.cs : Added Keys support here.
877 * XslTransformProcessor.cs : Should call SetContext() to expressions
878 before evaluating current nodes.
879 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
880 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
881 for KeyPattern. It now uses CompiledStyle.FindKeys().
883 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
885 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
886 to Xalan tests and MS.NET implementation (only for test convenience).
887 * XslOutput.cs : Indent holds string rathen than bool. Its default value
888 varies in the context. When method="html", then default is "yes".
889 * XslTransformProcessor.cs : Extension element prefixes should not
890 be written as stylesheet namespaces.
891 * XsltCompiledContext.cs : Return type of generate-id() is string.
892 Implemented unparsed-entity-uri().
894 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
896 * Compiler.cs : More complete attribute set gathering.
897 GetNamespacesToCopy() should only return Local namespaces.
898 * GenericOutputter.cs : Added support for indentation.
899 Added easy hack for html output.
900 More correct Prefix handling (considers already defined ones).
901 Namespace emmission is moved to CheckState().
902 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
903 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
904 * GenericOutputter.cs, Outputter.cs :
905 Added CanProcessAttributes property for
906 use-attribute-sets of xsl:copy.
907 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
908 Added support for exclude-result-prefixes.
909 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
911 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
913 * Compiler.cs : It is not important, but attribute order became closer
914 to MS.NET and Xalan (assuming from OASIS tests).
916 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
918 * GenericOutputter.cs : Attribute wasn't overwritten its properties
919 because Attribute is struct it was let to another local variable.
921 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
923 * GenericOutputter.cs: make html output a warning, because doing
924 xml will be right most of the time.
926 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
928 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
929 here for a long time and it hurts thread safty and memory
932 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
934 * Compiler.cs: save the parser (will reduce memory allocation when
935 Jackson's jay patch is committed).
937 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
939 * Attribute.cs: Change to struct. Remove QName class.
940 * GenericOutputter.cs: use an Attribute [] rather than an
941 ArrayList. Allows us not to allocate Attributes, which is great
942 for speed. Roll our own allocation.
944 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
946 * Compiler.cs: add GetNsm to main class as well.
948 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
950 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
951 internal version so we get null if the attr doesnt exist.
953 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
955 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
956 where curVarScope == null
958 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
961 - Better handling of empty attributes (vs not being specified)
962 - Bug in handling #default
964 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
966 * Compiler.cs: Off by one when parsing localname of QName
967 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
968 children (so that they get overriden)
970 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
972 * GenericOutputter.cs: Output attributes in order recieved; not
973 required by spec, but useful for running test cases.
975 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
977 * GenericOutputter.cs - fix bug with outputting state.
978 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
979 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
981 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
983 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
984 exprs on use, pass to nav.
986 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
988 * Compiler.cs: pass satic context to Pattern ctor.
990 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
993 GenericOutputter.cs - generic Outputter implementation,
994 Attribute.cs - represents outputted attribute,
995 Emitter.cs - abstract output emitter,
996 TextEmitter.cs - text emitter,
997 XmlWriterEmitter.cs - emitter to XmlWriter.
998 * Checking of duplicating attributes is done in GenericOutputter.
999 * Namespace outputting logic is implemented in GenericOutputter.
1000 * Outputter.cs: Writing namespace declarations is delegated to
1001 derived classes (GenericOutputter).
1002 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
1004 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
1006 * XslTransformProcessor.cs: evaluate variables at beginning
1007 when / is current node.
1009 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
1011 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
1012 Fix up namespace handeling
1014 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
1016 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
1018 * XslDecimalFormat.cs: Stub for decimal-format.
1020 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
1022 * TextOutputter.cs: Add option to ignore element content (Oleg).
1024 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1026 * Compiler.cs: Really give null for blank avt's
1028 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1030 * Compiler.cs: Fixed lre/lre04.
1032 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1034 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
1035 won't have default namespace. See http://www.w3.org/TR/xslt#qname
1037 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1039 * XslTransformProcessor.cs: add support for resolving documents.
1040 * XsltCompiledContext: add support for document () function.
1042 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1044 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
1045 of the abstract methods in Outputter, making them call other
1046 functions with default values, remove impl's in derived classes.
1048 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1050 * Outputter.cs: s/Close/Done
1051 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
1052 * XslTransformProcessor.cs: Flush output when popping, pop at end.
1054 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1056 * Outputter.cs: Add support for namespaces.
1058 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1060 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
1061 XslTransformProcessor.cs: move output logic from XslStylesheet to
1064 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1066 * XslOutput.cs: add support for encoding.
1068 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1070 * *.cs: Support for xsl:output. (Oleg)
1072 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1074 * Compiler.cs: handle extension and excluded namespaces.
1076 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1078 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
1079 from the stylesheet for correct namespace resolution.
1081 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1083 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
1084 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
1086 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
1088 * XslTransformProcessor.cs: Add a table to detect when an object
1090 * XslAttributeSet.cs: Use the above table. Dont throw nullref
1091 exception when no use-attribute-sets are specified.
1093 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1095 * Compiler.cs: Add support for boolean attributes (yes/no).
1097 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1099 * Compiler.cs: Add method LocalNameOf, to get the local name of a
1101 * XslTransformProcessor.cs: Support for setting the XmlResolver.
1103 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1105 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
1107 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1109 * XslTransformProcessor.cs: Add EvaluateNumber method.
1111 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1113 * XsltCompiledContext.cs: Implement more functions.
1115 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1117 * Compiler.cs: Add support for key, utility function to parse
1118 QName's from the XsltContext. Store keys in the CompiledStyle, not
1120 * XslKey.cs: Real implementation
1121 * XslStylesheet.cs: Move the keys to CompiledStyle.
1122 * XsltCompiledContext.cs: Implement the key function
1124 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1126 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1127 the functions ;-). Also wrote current ().
1129 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1131 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1132 done in XPath. Add stubs for XSLT functions.
1134 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1136 * Compiler.cs: To resolve a variable you now need to pass the
1137 processor, so that it can be passed to IsEvaluated. A local will
1138 only be resolved if it has already been evaluated.
1139 * XsltCompiledContext.cs: Pass along the processor.
1141 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1143 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1144 variable values in the XslTransformProcessor.
1145 * XsltCompiledContext.cs: If the scope is null, don't look there!
1146 * Debug.cs: New method Assert
1148 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1150 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1151 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1152 internal methods in XPathNavigator. Remove verbose debugging messages.
1154 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>