1 2006-03-15 Atsushi Enomoto <atsushi@ximian.com>
3 * XslTransformProcessor.cs : in PushNodeset() avoid Clone(). It saves
4 extra cost, and might avoid possible bug in for-each and current()
7 2006-02-22 Atsushi Enomoto <atsushi@ximian.com>
9 * ScriptCompilerInfo.cs : mbas unlike vbc references System.dll
10 etc. by default, so don't add them as references.
11 Set only local file name for #ExternalSource. Fixed bug #75789.
13 2006-01-13 Atsushi Enomoto <atsushi@ximian.com>
15 * GenericOutputter.cs : When writing string, use WriteWhitespace()
16 instead of WhiteString() when its state is not Content. This fixes
17 BVTs_bvt066 case (broken after implementing strict state check in
20 2005-12-24 Gert Driesen <drieseng@users.sourceforge.net>
22 * XslOutput.cs: Do not report error for unknown value for "standalone"
23 and "omit-xml-declaration" attributes, and extranous attributes if
24 stylesheet version is not "1.0".
26 2005-12-24 Atsushi Enomoto <atsushi@ximian.com>
28 * Compiler.cs : pass stylesheet version to XslOutput to determine
29 "indent" value validity.
30 * XslOutput.cs, HtmlEmitter.cs, GenericOutputter.cs : Reverted
31 buggy changes on "indent" attribute handling.
32 http://www.w3.org/TR/xslt#section-HTML-Output-Method
34 2005-12-23 Gert Driesen <drieseng@users.sourceforge.net>
36 * XslOutput.cs: Reduced indentation of cases in switch statement.
38 2005-12-23 Gert Driesen <drieseng@users.sourceforge.net>
40 * ScriptCompilerInfo.cs: Fixed line endings.
41 * XslStylesheet.cs: Beautify error messages.
42 * Debug.cs: Fixed line endings.
43 * XslOutput.cs: Indent is now bool instead of string, use
44 MoveToAttribute to navigate through attributes instead of using
45 GetAttribute, as we also need to distinguish attributes with
46 zero-length value from attributes that are not specified for
47 correct implementation of DOCTYPE. Implemented validation for
48 value of "omit-xml-declaration", "standalone" and "indent".
49 We now throw a XsltCompileException for unknown attribute.
50 * XmlWriterEmitter.cs: only skip WriteDocType is systemId is null.
51 * HtmlEmitter.cs: XslOutput.Indent is now bool. Fixed WriteDocType
53 * XmlDecimalFormat.cs: Beautify error messages.
54 * XslTemplate.cs: Beautify error messages.
55 * GenericOutputter.cs: XslOutput.Indent is now bool.
56 * Compiler.cs: Beautify error messages.
58 2005-12-21 Atsushi Enomoto <atsushi@ximian.com>
60 * XslTemplate.cs : don't check name and mode attributes on
61 non-'xsl:template' element. This should fix bug #77051.
63 2005-12-13 Andrew Skiba <andrews@mainsoft.com>
65 * XslDecimalFormat.jvm.cs: set correct defaults for NaN and Infinity
67 2005-11-30 Atsushi Enomoto <atsushi@ximian.com>
69 * ScriptCompilerInfo.cs : (VBCompilerInfo) There was a space between
70 '#' and 'ExternalResource'. bug #75789 should be fixed.
72 2005-11-23 Vladimir Krasnov <vladimirk@mainsoft.com>
74 * XslKey.cs: fixed KeyIndexTable.Evaluate method, changed
75 XPathNavigator given to GetNodesByValue()
77 2005-11-17 Atsushi Enomoto <atsushi@ximian.com>
79 * XslCompiledContext.cs : since XsltContextInfo is struct, having
80 an array of this type and setting fields of each struct didn't
81 make sense. It thus blocked expected PreserveWhitespace behavior.
83 2005-10-24 Atsushi Enomoto <atsushi@ximian.com>
85 * Compiler.cs : (FromString(s, hashtable)) pull default namespace
86 from the table for LRE (don't consider it as ""; spec. 7.1.2)
89 2005-09-16 Atsushi Enomoto <atsushi@ximian.com>
91 * ScriptCompilerInfo.cs : Compile correct replacement result.
94 2005-09-10 Atsushi Enomoto <atsushi@ximian.com>
96 * Compiler.cs : (Compile) check children only when it is the document
97 element. Fixed bug #76046.
99 2005-08-25 Atsushi Enomoto <atsushi@ximian.com>
101 * ScriptCompilerInfo.cs : It should not be "#line" when the source is
102 not C#. It should fix bug #75789.
104 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
106 * XslKey.cs : Fixed match pattern in xsl:key to check attribute nodes.
107 To minimize attribute iteration, use Pattern.EvaluatedNodeType.
110 2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
112 * XslFunctions.cs : XslTransform recovers from errors on document
113 resolution. Fixed bug #75663.
115 2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
117 * HtmlEmitter.cs : Boolean attribute values should be omitted, but
118 only for related elements.
120 2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
122 * MSXslScriptManager.cs : it should ignore compiler warnings. This
125 2005-04-07 Andrew Skiba <andrews@mainsoft.com>
127 * XslDecimalFormat.jvm.cs : added
129 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
131 * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
132 support CodeDom). Use Guid.ToString("N").
134 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
136 * Compiler.cs : removed extraneous using_directive.
138 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
140 * XslKey.cs : the iterator does not require sorting (already sorted).
143 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
146 Variables are stored per stylesheet and added to compiler after
147 all of the contents are processed (handle import precedence).
148 Imports are now processed in prior to other contents (incorrect
149 imports are now rejected). After imports, process includes to
150 process nested imports. In-process included stylesheets are
151 temporarily stored in including stylesheet.
152 Handle keys like variables are handled.
153 Added Compile() that is splitted from .ctor().
155 Store keys in compiler and compiled stylesheet.
156 Duplicate variables in imports are now overriden as expected.
157 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
159 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
161 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
162 from each EvaluateXXX() methods.
163 * MsxslScriptManager.cs : not to leave reference to stylesheet
164 navigator, pass current node to Compile().
165 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
166 navigator cache for each pattern, to avoid Clone() and not to leave
167 reference to already-done instance navigator.
169 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
171 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
172 * XslKey.cs : Use XSLT pattern parser for match.
173 UsePattern is now "Use" (it is not a pattern).
174 Reimplemented Evaluate() to make full use of index table.
175 Added Matches() to handle shorter match evaluation. For const value
176 for key (e.g. key patterns), it could avoid Evaluate().
177 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
178 new KeyIndexTable.Matches().
179 * XslFunctions.cs : Added PatternMatches() that just delegates to new
180 XsltCompiledContext.MatchesKey().
182 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
184 * GenericOutputter.cs : commented out warned fields.
186 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
188 * XslKey.cs : removed last ListIterator.ctor() argument.
189 Reverted the last commit that changed internal key index change
190 from ArrayList to Hashtable. Avoid clone in CollectIndex().
191 Sort results in Evaluate() before passing list to ListIterator.
192 * XslFunctions.cs : removed last ListIterator.ctor() argument.
194 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
197 XsltCompiledContext.cs,
199 XslTransformProcessor.cs : Now dynamic context key index table is
200 separate from XslKey static context. Added KeyIndexTable class and
201 store it into XsltCompiledContext with hash name-table mapping.
202 Cache map from statically-named key to index table.
203 Use Hashtable for internal key cache instead of ArrayList.
205 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
207 * XslKey.cs : fixed node iteration on collecting key indices which
208 could have resulted in an infinite loop.
210 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
212 * XslDecimalFormat.cs : in some cases it does not throw format
215 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
217 * XsltCompiledContext.cs,
218 XslStylesheet.cs : Fixed significant performance loss on whitespace
221 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
223 * XslKey.cs : removed unused NeedAbsoluteMatching.
224 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
225 Added some missing ToString() overrides.
227 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
229 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
230 to work fine with xsl:*-space attributes as expected.
231 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
232 actually nothing. It should not use XsltContext.PreserveWhitespace()
233 because this method is used to control output, while the referenced
234 method is used to control source document.
236 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
238 * XslTemplate.cs : First non-element content were incorrectly ignored.
240 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
242 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
243 to reduce references to stylesheet XPathNavigator. To accomplish it,
244 IStaticXsltContext does not declare GetNsm() anymore. All xslt
245 function types now directly hold IStaticXsltContext.
246 * XslStylesheet.cs : removed "Compiler c" field.
247 Removed unused properties.
249 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
251 * GenericOutputter.cs : When WriteStartElement() requires to add
252 new namespace declaration, _currentNamespaceDecls needs to be set.
254 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
256 * GenericOutputter.cs : for duplicate attribute in an element, no need
257 to keep previous prefix.
259 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
261 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
262 namespace. Rewrite prefix only when there is non-empty namespace.
264 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
266 * XslStylesheet.cs : Now namespace aliases are collected in prior to
267 all other toplevel elements. Removed unused code.
269 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
271 * GenericOutputter.cs : compute attribute prefix only when actual
272 emission. Fixed some cases that namespace output was missing.
274 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
276 * GenericOutputter.cs : no need to use two collections to store
277 pending attributes. Just use ordered ListDictionary.
278 newNamespace.Add(int) causes extraneous boxing.
280 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
282 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
283 OutputLiteralNamespaceUriNodes() so that everyone can understand
284 what it means and when it should be invoked.
286 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
288 * Compiler.cs : added another CompileTemplateContent() which is
289 requred in xsl:for-each. Commented out unused method.
291 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
293 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
294 in stylesheet should be considered in TryElementNamespacesOutput().
295 ParseQNameListAttribute() is not properly working for filling
298 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
300 * XslStylesheet.cs : included stylesheet could be literal result
301 element as stylesheet (see the spec 2.6.1).
303 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
305 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
306 empty string when nsURI is empty.
307 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
308 unlike xml but like span, as written in the spec 16.2.
310 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
312 * XslCompiledContext.cs, XslTransformProcessor.cs :
313 According to errata E25, those namespaces 1) that has the same
314 name as current element's prefix, or an empty name when current
315 element's namespace URI is empty, are not written to output.
316 So added current element information to XPathContext and added
317 prefix parameter to PushElementState(), added xsl:copy check to
318 TryElementNamespacesOutput().
319 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
321 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
323 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
326 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
328 * XslTemplate.cs : According to the spec 5.7, it is an error for
329 xsl:template to have 'mode' without 'match'.
331 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
333 * Compiler.cs : added ns lookup with nsDecls Hashtable.
335 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
337 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
339 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
341 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
342 namespace "http://www.w3.org/XML/1998/namespace".
344 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
346 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
347 * HtmlEmitter.cs : CDATA nodes are written just as text.
348 * GenericOutputter.cs : custom format are treated just as XML output.
350 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
354 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
355 and WriteState. Writing XML declaration is done inside
356 DetermineOutputMethod().
358 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
360 * Compiler.cs : reverted previous fix, since it should be done
361 in XslTransformProcessor with root stylesheet.
362 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
363 don't output alias namespaces. And now consider null exclusions.
365 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
367 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
369 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
371 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
372 namespace nodes. Patch by Andrew Skiba with some fixes.
373 * XslTransformProcessor.cs : Patch by Andrew Skiba.
374 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
375 as to handle all namespace nodes to copy in stylesheet nodes.
376 Global parameterss are evaluated before global variables.
377 * XmlOutputter.cs : removed unused code.
381 * Actually variables and params should check reference recursion.
382 This patch incompletely fixes the problem.
383 * Those operations that considers excluded-result-prefixes must
384 also check those attributes of its ancestors.
386 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
388 * XmlWriterEmitter.cs : String.Replace() was insufficient for
389 sequential candidates for replacement. Patch by Andrew Skiba.
391 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
393 * GenericOutputter.cs : don't output extraneous xml declaration.
396 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
398 * XslStylesheet.cs : MS implementation had chosen to recover from
399 the error, in the way specified in the spec 7.7.1. Patch by Andrew
402 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
404 * XslTemplate.cs : if input is literal result element, it could result
405 in ArgumentException. Patch by Andrew Skiba.
407 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
409 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
410 NullReferenceException. Patch by Andrew Skiba.
412 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
414 * XslOutput.cs : MS.NET recovers from unknown encoding according to
415 XSLT spec 16.1. Patch by Andrew Skiba.
417 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
419 * HtmlEmitter.cs : patch by Andrew Skiba.
420 Remove extra element prefix output. simplify attribute prefix output.
421 Attribute output might have resulted in invalid element stack peek.
422 Output specified media type if any.
424 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
426 * Compiler.cs : Patch by Andrew Skiba.
427 wrap internal exception with XsltCompileException.
428 Raise an error for not-found document URI.
429 QName might contain sequential whitespaces and thus could be empty.
431 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
433 * XslAttributeSet.cs : just ignore other kind of nodes than element
434 in its content. Fix by Andrew Skiba.
436 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
438 * XslOutput.cs : for html and text output mode, just set internal
439 omitXmlDeclaration status true. Patch by Andrew Skiba.
441 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
443 * XslFunctions.cs : fixed line ending mixture.
445 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
447 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
450 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
453 Compiler.cs : XmlResolver.ResolveUri() may return null.
455 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
457 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
460 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
462 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
464 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
466 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
469 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
471 * XslStylesheet.cs : removed unused fields.
472 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
475 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
477 * Compiler.cs, XslTransformProcessor.cs :
478 when creating XmlTextReader, reuse XmlNameTable.
480 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
482 * Compiler.cs : Changes that reflects CompiledExpression changes.
484 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
486 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
487 This fixes bug #67390.
489 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
491 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
493 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
495 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
496 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
497 : Globalization. Removed unused code.
499 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
501 * XslKey.cs : Key-value search in absolute path search was
504 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
506 * HtmlEmitter.cs : Correct URL escape implementation.
508 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
510 * XslTransformProcessor.cs : On document() function, close the
511 XmlTextReader opened from uri string.
513 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
516 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
517 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
518 should override another overload.
520 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
522 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
523 assembly should not include the .dll extension.
525 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
528 - CompilePattern() now throws XsltCompileException for invalid
529 pattern, and add error location support.
530 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
531 Now it returns MSXslNodeSet instance (for msxsl:node-set).
532 * Debug.cs : don't throw System.Exception.
533 * XslFunctions.cs : Added MSXslNodeSet class.
534 * XslTemplate.cs : reflected CompilePattern() change.
535 * XslTransformProcessor.cs : don't throw System.Exception.
536 * XsltCompiledContext.cs : don't throw System.Exception.
538 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
542 XslStylesheet.cs : made classes/enums internal.
544 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
546 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
547 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
548 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
549 XslTransformProcessor.cs : Make extra classes internal.
551 * XslKey.cs : It should require sorting.
552 * Debug.cs : Just avoid debug output. Only who want to output should
555 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
557 * GenericOutputter.cs : Culture-independency fix.
558 Replaced StringCollection to ArrayList.
559 * XslOutput.cs : Culture-independency fix.
561 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
563 * Compiler.cs : When BaseURI is an empty string, it should not try to
564 create Uri instance. This will fix bug #56832, but not sure.
565 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
566 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
567 should be the TextReader's NewLine).
568 * MSXslScriptManager.cs : Should raise an error when the prefix which
569 was specified by "implements-prefix" was not found.
571 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
573 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
574 when BaseURI for msxsl:script node is not available. This fixes
576 Don't output line number in the error message, when it is 0.
578 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
580 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
582 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
587 XslTransformProcessor.cs :
588 Throw specific types of exceptions instead of Exception.
589 * XslFunctions.cs, XsltCompiledContext.cs :
590 added node argument for XsltExtensionFunction ctor() etc.
592 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
594 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
595 CodeDom. Compilation error should be caught. This fixes bug #55875.
597 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
599 * XslStylesheet.cs : "version" attribute is also required for embedded
602 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
605 XslStylesheet.cs : Reject xsl element other than stylesheet and
606 transform. Check mandatory version attribute (only for existence).
608 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
610 * MSXslScriptManager.cs : if extension namespace was not found in
611 the script, just return null. Patch by Joshua Tauberer.
613 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
615 * XslLiteralElement.cs : quick fix for ArgumentNullException which
616 was because of the combination of non-namespaced instances and
617 exclude-result-prefixes.
619 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
621 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
622 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
623 * XslFunctions.cs : hereby Added.
624 * Compiler.cs : Removed deleted usingdecl.
626 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
628 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
629 * XslKey.cs : Added ExprKeyContainer expression type, which is
630 designed to be matched at any level.
631 * Compiler.cs : support for ExprKeyContainer.
633 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
635 * XslKey.cs : Now it collects key and matching nodes at the first
636 evaluation time. After that, we can just get them from the table.
637 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
638 prohibited key() usage in "match" and "use" attributes in xsl:key.
639 Modified accessibility of some classes.
640 * GenericOutputter.cs,
644 XmlWriterEmitter.cs : made classes internal.
645 * XslOutput.cs : support line info for exception.
646 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
648 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
650 * XsltCompiledContext.cs : fixed the length of context info array.
652 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
654 * XsltCompiledContext.cs :
655 replaced EnumeratorIterator with ListIterator
657 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
659 * GenericOutputter.cs,
662 XslTemplate.cs : tiny foreach elimination.
664 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
666 * XslOutput.cs : Reverted. default encoding should be utf-8.
668 2004-01-14 Jackson Harper <jackson@ximian.com>
670 * GenericOutputter.cs: Add constructors that do not take an
671 encoding to fix build.
673 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
675 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
676 write XML declaration. It means that output supports non document
677 entity. This fixes bug #52729.
678 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
679 modified WriteStartDocument() signature to receive Encoding.
680 * GenericOutputter.cs :
681 - Added .ctor() which receives Encoding. (It is used for TextWriter
682 output to get actual encoding.)
683 - Added .ctor() to take an boolean argument which indicates it is
684 variable content or not. (When variable, it does not call
685 WriteStartDocument().)
687 XsltCompiledContext.cs : comment out WriteLine().
688 * XslOutput.cs : set default encoding utf-16.
690 2004-01-08 Nick Drochak <ndrochak@ieee.org>
692 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
694 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
696 * XslDecimalFormat.cs : implemented format-number() other than number
698 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
699 catch ArgumentException which will be thrown by formatting process.
701 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
703 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
705 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
707 * XsltCompiledContext.cs: Remove workaround now that monodoc
710 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
712 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
713 aliases at compilation time, so evaluate at the first run-time.
715 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
717 * GenericOutputter.cs : support for runtime-determined output type.
718 * HtmlEmitter.cs : Fixed invalid doctype output.
719 Fixed incorrect double attribute output on non-HTML elements.
720 Improved indentation. Fixed "selected" attribute output.
721 Don't have to convert "'" to "'".
722 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
723 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
724 * XslStylesheet.cs, XsltCompiledContext.cs :
725 space resolution consideration for import and wildcard.
727 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
729 * Compiler.cs, XslTransformProcessor.cs :
730 Use XmlValidatingReader to support id() for external stylesheets.
731 * XslKey.cs, XsltCompiledContext.cs :
732 to evaluate MatchPattern and UsePattern, SetContext() is required.
733 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
735 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
737 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
738 Added WriteWhitespace().
739 * GenericOutputter.cs, XslTemplate.cs : Call above.
740 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
741 CurrentNode in for-each context have to be pulled at evaluation.
743 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
745 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
746 function for bugzilla #52144. It should be reverted soon.
748 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
750 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
752 * MSMslScriptManager.cs : modified generated assembly class to be unique
753 through running AppDomain.
754 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
755 arguments to actual argument types. Bugzilla #51450 should be fixed.
757 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
759 * HtmlEmitter.cs : Fixed incorrect character entity output.
761 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
763 * Added ScriptCompilerInfo.cs.
764 * MSXslScriptManager.cs : Fixed *true* author's name.
765 Implemented basic msxsl:script support.
766 * Compiler.cs : Added Evidence member.
768 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
770 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
771 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
772 Added WriteWhitespace() to assure not writing whitespaces as cdata.
773 * XslAttributeSet.cs : Error check if attribute-set contains other than
774 xsl:attribute. Error should be XsltException.
775 * XslDecimalFormat.cs : Complete equality check. Allow just one
776 character value for some attributes.
777 * XslStylesheet.cs : Made whitespace control setting overridable.
778 Added Version property (for the future compatibility mode).
779 Check unrecongnized top level element.
780 * XslTemplate.cs : Check priority as a number.
781 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
782 for xsl:preserve-space and xsl:strip-space support.
783 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
784 incomplete), PushScope and Pop
786 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
788 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
790 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
792 * Compiler.cs : In FromListString(), it should use default ns,
794 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
795 precedence. Doctype should be written even if SYSTEM id is absent.
796 Fixed possible multiple xmlns output.
798 - Encoding output using META element.
799 - Doctype name is fixed (html).
800 - Double quotation on PUBLIC and SYSTEM missing.
801 - Fixed incorrect tag name check for IMG.
802 - '>' should not be escaped.
803 * XmlWriterEmitter.cs :
804 Added newline before doctype. In WriteComment(), "--" and tail
805 '-' are not allowed (it escapes, while XmlWriter simply rejects).
806 * XslTransformProcessor.cs : cdata-section-elements should enclose
807 direct child tests only. Added PreserveWhitespace() (incomplete).
808 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
810 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
812 * IdPattern.cs : This should work against multiple ids.
814 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
817 * MSXslScriptManager.cs
819 * XslTransformProcessor.cs
820 * XsltCompiledContext.cs: Some work on msxsl script.
822 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
824 (in general: cdata-section-elements support, correct document()
825 base uri handling, and so on)
826 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
827 And move to document element. Added XslNameUtil.FromListString().
828 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
829 Added WriteCDataSection().
830 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
831 Added InsideCDataSection.
832 * GenericOutputter.cs :
833 In .ctor(), WriteState should be succeeded from output XmlWriter.
834 WriteNamespaceDecl() now drops declaration identical to existing one.
835 Removed obsolete htmlEmulation.
836 * XslOutput.cs : Added CDataSectionElements support.
837 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
838 * XslTransformProcessor.cs :
839 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
840 now considers xsl:exclude-element-prefixes on literal element.
841 Added PushCDataState() and PopCDataState().
842 * XsltCompiledContext.cs : When base uri of document() target is empty,
843 then it should use stylesheet's BaseURI, not that of current document.
845 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
847 * Compiler.cs : Modified decimal-format comparison code.
850 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
851 be called only when required.
852 * HtmlEmitter.cs : Improved indentation stuff.
853 * XslDecimalFormat.cs : Added incomplete implementation of
854 CheckSameAs() and FormatNumber().
856 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
857 from StringDictionary to ArrayList of QName (to keep order).
859 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
861 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
862 node type (i.e. attribute and namespace). Removed extraneous Clone().
863 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
865 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
867 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
868 XslStylesheet.cs : Added Keys support here.
869 * XslTransformProcessor.cs : Should call SetContext() to expressions
870 before evaluating current nodes.
871 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
872 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
873 for KeyPattern. It now uses CompiledStyle.FindKeys().
875 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
877 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
878 to Xalan tests and MS.NET implementation (only for test convenience).
879 * XslOutput.cs : Indent holds string rathen than bool. Its default value
880 varies in the context. When method="html", then default is "yes".
881 * XslTransformProcessor.cs : Extension element prefixes should not
882 be written as stylesheet namespaces.
883 * XsltCompiledContext.cs : Return type of generate-id() is string.
884 Implemented unparsed-entity-uri().
886 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
888 * Compiler.cs : More complete attribute set gathering.
889 GetNamespacesToCopy() should only return Local namespaces.
890 * GenericOutputter.cs : Added support for indentation.
891 Added easy hack for html output.
892 More correct Prefix handling (considers already defined ones).
893 Namespace emmission is moved to CheckState().
894 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
895 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
896 * GenericOutputter.cs, Outputter.cs :
897 Added CanProcessAttributes property for
898 use-attribute-sets of xsl:copy.
899 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
900 Added support for exclude-result-prefixes.
901 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
903 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
905 * Compiler.cs : It is not important, but attribute order became closer
906 to MS.NET and Xalan (assuming from OASIS tests).
908 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
910 * GenericOutputter.cs : Attribute wasn't overwritten its properties
911 because Attribute is struct it was let to another local variable.
913 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
915 * GenericOutputter.cs: make html output a warning, because doing
916 xml will be right most of the time.
918 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
920 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
921 here for a long time and it hurts thread safty and memory
924 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
926 * Compiler.cs: save the parser (will reduce memory allocation when
927 Jackson's jay patch is committed).
929 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
931 * Attribute.cs: Change to struct. Remove QName class.
932 * GenericOutputter.cs: use an Attribute [] rather than an
933 ArrayList. Allows us not to allocate Attributes, which is great
934 for speed. Roll our own allocation.
936 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
938 * Compiler.cs: add GetNsm to main class as well.
940 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
942 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
943 internal version so we get null if the attr doesnt exist.
945 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
947 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
948 where curVarScope == null
950 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
953 - Better handling of empty attributes (vs not being specified)
954 - Bug in handling #default
956 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
958 * Compiler.cs: Off by one when parsing localname of QName
959 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
960 children (so that they get overriden)
962 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
964 * GenericOutputter.cs: Output attributes in order recieved; not
965 required by spec, but useful for running test cases.
967 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
969 * GenericOutputter.cs - fix bug with outputting state.
970 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
971 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
973 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
975 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
976 exprs on use, pass to nav.
978 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
980 * Compiler.cs: pass satic context to Pattern ctor.
982 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
985 GenericOutputter.cs - generic Outputter implementation,
986 Attribute.cs - represents outputted attribute,
987 Emitter.cs - abstract output emitter,
988 TextEmitter.cs - text emitter,
989 XmlWriterEmitter.cs - emitter to XmlWriter.
990 * Checking of duplicating attributes is done in GenericOutputter.
991 * Namespace outputting logic is implemented in GenericOutputter.
992 * Outputter.cs: Writing namespace declarations is delegated to
993 derived classes (GenericOutputter).
994 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
996 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
998 * XslTransformProcessor.cs: evaluate variables at beginning
999 when / is current node.
1001 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
1003 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
1004 Fix up namespace handeling
1006 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
1008 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
1010 * XslDecimalFormat.cs: Stub for decimal-format.
1012 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
1014 * TextOutputter.cs: Add option to ignore element content (Oleg).
1016 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1018 * Compiler.cs: Really give null for blank avt's
1020 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1022 * Compiler.cs: Fixed lre/lre04.
1024 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1026 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
1027 won't have default namespace. See http://www.w3.org/TR/xslt#qname
1029 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1031 * XslTransformProcessor.cs: add support for resolving documents.
1032 * XsltCompiledContext: add support for document () function.
1034 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1036 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
1037 of the abstract methods in Outputter, making them call other
1038 functions with default values, remove impl's in derived classes.
1040 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1042 * Outputter.cs: s/Close/Done
1043 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
1044 * XslTransformProcessor.cs: Flush output when popping, pop at end.
1046 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1048 * Outputter.cs: Add support for namespaces.
1050 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1052 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
1053 XslTransformProcessor.cs: move output logic from XslStylesheet to
1056 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1058 * XslOutput.cs: add support for encoding.
1060 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1062 * *.cs: Support for xsl:output. (Oleg)
1064 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1066 * Compiler.cs: handle extension and excluded namespaces.
1068 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1070 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
1071 from the stylesheet for correct namespace resolution.
1073 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1075 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
1076 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
1078 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
1080 * XslTransformProcessor.cs: Add a table to detect when an object
1082 * XslAttributeSet.cs: Use the above table. Dont throw nullref
1083 exception when no use-attribute-sets are specified.
1085 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1087 * Compiler.cs: Add support for boolean attributes (yes/no).
1089 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1091 * Compiler.cs: Add method LocalNameOf, to get the local name of a
1093 * XslTransformProcessor.cs: Support for setting the XmlResolver.
1095 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1097 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
1099 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1101 * XslTransformProcessor.cs: Add EvaluateNumber method.
1103 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1105 * XsltCompiledContext.cs: Implement more functions.
1107 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1109 * Compiler.cs: Add support for key, utility function to parse
1110 QName's from the XsltContext. Store keys in the CompiledStyle, not
1112 * XslKey.cs: Real implementation
1113 * XslStylesheet.cs: Move the keys to CompiledStyle.
1114 * XsltCompiledContext.cs: Implement the key function
1116 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1118 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1119 the functions ;-). Also wrote current ().
1121 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1123 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1124 done in XPath. Add stubs for XSLT functions.
1126 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1128 * Compiler.cs: To resolve a variable you now need to pass the
1129 processor, so that it can be passed to IsEvaluated. A local will
1130 only be resolved if it has already been evaluated.
1131 * XsltCompiledContext.cs: Pass along the processor.
1133 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1135 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1136 variable values in the XslTransformProcessor.
1137 * XsltCompiledContext.cs: If the scope is null, don't look there!
1138 * Debug.cs: New method Assert
1140 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1142 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1143 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1144 internal methods in XPathNavigator. Remove verbose debugging messages.
1146 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>