1 2006-04-07 Atsushi Enomoto <atsushi@ximian.com>
3 * XslTransformProcessor.cs : push current node context after iterating
4 template target node. Added another NodesetMoveNext() which takes
5 explicit XPathNodeIterator to iterate and filter whitespaces out.
7 2006-04-07 Atsushi Enomoto <atsushi@ximian.com>
9 * XslTransformProcessor.cs : in NodesetMoveNext() take
10 XPathContext.PreserveWhitespace() into consideration.
12 2006-03-15 Atsushi Enomoto <atsushi@ximian.com>
14 * XslTransformProcessor.cs,
15 Compiler.cs : eliminate ExpressionStore. Now sorting is done
16 inside XslSortEvaluator.
17 * XslSortEvaluator.cs : new file. It handles current node in XSLT
18 context. Fixed bug #77781.
20 2006-03-15 Atsushi Enomoto <atsushi@ximian.com>
22 * XslTransformProcessor.cs : in PushNodeset() avoid Clone(). It saves
23 extra cost, and might avoid possible bug in for-each and current()
26 2006-02-22 Atsushi Enomoto <atsushi@ximian.com>
28 * ScriptCompilerInfo.cs : mbas unlike vbc references System.dll
29 etc. by default, so don't add them as references.
30 Set only local file name for #ExternalSource. Fixed bug #75789.
32 2006-01-13 Atsushi Enomoto <atsushi@ximian.com>
34 * GenericOutputter.cs : When writing string, use WriteWhitespace()
35 instead of WhiteString() when its state is not Content. This fixes
36 BVTs_bvt066 case (broken after implementing strict state check in
39 2005-12-24 Gert Driesen <drieseng@users.sourceforge.net>
41 * XslOutput.cs: Do not report error for unknown value for "standalone"
42 and "omit-xml-declaration" attributes, and extranous attributes if
43 stylesheet version is not "1.0".
45 2005-12-24 Atsushi Enomoto <atsushi@ximian.com>
47 * Compiler.cs : pass stylesheet version to XslOutput to determine
48 "indent" value validity.
49 * XslOutput.cs, HtmlEmitter.cs, GenericOutputter.cs : Reverted
50 buggy changes on "indent" attribute handling.
51 http://www.w3.org/TR/xslt#section-HTML-Output-Method
53 2005-12-23 Gert Driesen <drieseng@users.sourceforge.net>
55 * XslOutput.cs: Reduced indentation of cases in switch statement.
57 2005-12-23 Gert Driesen <drieseng@users.sourceforge.net>
59 * ScriptCompilerInfo.cs: Fixed line endings.
60 * XslStylesheet.cs: Beautify error messages.
61 * Debug.cs: Fixed line endings.
62 * XslOutput.cs: Indent is now bool instead of string, use
63 MoveToAttribute to navigate through attributes instead of using
64 GetAttribute, as we also need to distinguish attributes with
65 zero-length value from attributes that are not specified for
66 correct implementation of DOCTYPE. Implemented validation for
67 value of "omit-xml-declaration", "standalone" and "indent".
68 We now throw a XsltCompileException for unknown attribute.
69 * XmlWriterEmitter.cs: only skip WriteDocType is systemId is null.
70 * HtmlEmitter.cs: XslOutput.Indent is now bool. Fixed WriteDocType
72 * XmlDecimalFormat.cs: Beautify error messages.
73 * XslTemplate.cs: Beautify error messages.
74 * GenericOutputter.cs: XslOutput.Indent is now bool.
75 * Compiler.cs: Beautify error messages.
77 2005-12-21 Atsushi Enomoto <atsushi@ximian.com>
79 * XslTemplate.cs : don't check name and mode attributes on
80 non-'xsl:template' element. This should fix bug #77051.
82 2005-12-13 Andrew Skiba <andrews@mainsoft.com>
84 * XslDecimalFormat.jvm.cs: set correct defaults for NaN and Infinity
86 2005-11-30 Atsushi Enomoto <atsushi@ximian.com>
88 * ScriptCompilerInfo.cs : (VBCompilerInfo) There was a space between
89 '#' and 'ExternalResource'. bug #75789 should be fixed.
91 2005-11-23 Vladimir Krasnov <vladimirk@mainsoft.com>
93 * XslKey.cs: fixed KeyIndexTable.Evaluate method, changed
94 XPathNavigator given to GetNodesByValue()
96 2005-11-17 Atsushi Enomoto <atsushi@ximian.com>
98 * XslCompiledContext.cs : since XsltContextInfo is struct, having
99 an array of this type and setting fields of each struct didn't
100 make sense. It thus blocked expected PreserveWhitespace behavior.
102 2005-10-24 Atsushi Enomoto <atsushi@ximian.com>
104 * Compiler.cs : (FromString(s, hashtable)) pull default namespace
105 from the table for LRE (don't consider it as ""; spec. 7.1.2)
108 2005-09-16 Atsushi Enomoto <atsushi@ximian.com>
110 * ScriptCompilerInfo.cs : Compile correct replacement result.
113 2005-09-10 Atsushi Enomoto <atsushi@ximian.com>
115 * Compiler.cs : (Compile) check children only when it is the document
116 element. Fixed bug #76046.
118 2005-08-25 Atsushi Enomoto <atsushi@ximian.com>
120 * ScriptCompilerInfo.cs : It should not be "#line" when the source is
121 not C#. It should fix bug #75789.
123 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
125 * XslKey.cs : Fixed match pattern in xsl:key to check attribute nodes.
126 To minimize attribute iteration, use Pattern.EvaluatedNodeType.
129 2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
131 * XslFunctions.cs : XslTransform recovers from errors on document
132 resolution. Fixed bug #75663.
134 2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
136 * HtmlEmitter.cs : Boolean attribute values should be omitted, but
137 only for related elements.
139 2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
141 * MSXslScriptManager.cs : it should ignore compiler warnings. This
144 2005-04-07 Andrew Skiba <andrews@mainsoft.com>
146 * XslDecimalFormat.jvm.cs : added
148 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
150 * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
151 support CodeDom). Use Guid.ToString("N").
153 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
155 * Compiler.cs : removed extraneous using_directive.
157 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
159 * XslKey.cs : the iterator does not require sorting (already sorted).
162 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
165 Variables are stored per stylesheet and added to compiler after
166 all of the contents are processed (handle import precedence).
167 Imports are now processed in prior to other contents (incorrect
168 imports are now rejected). After imports, process includes to
169 process nested imports. In-process included stylesheets are
170 temporarily stored in including stylesheet.
171 Handle keys like variables are handled.
172 Added Compile() that is splitted from .ctor().
174 Store keys in compiler and compiled stylesheet.
175 Duplicate variables in imports are now overriden as expected.
176 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
178 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
180 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
181 from each EvaluateXXX() methods.
182 * MsxslScriptManager.cs : not to leave reference to stylesheet
183 navigator, pass current node to Compile().
184 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
185 navigator cache for each pattern, to avoid Clone() and not to leave
186 reference to already-done instance navigator.
188 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
190 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
191 * XslKey.cs : Use XSLT pattern parser for match.
192 UsePattern is now "Use" (it is not a pattern).
193 Reimplemented Evaluate() to make full use of index table.
194 Added Matches() to handle shorter match evaluation. For const value
195 for key (e.g. key patterns), it could avoid Evaluate().
196 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
197 new KeyIndexTable.Matches().
198 * XslFunctions.cs : Added PatternMatches() that just delegates to new
199 XsltCompiledContext.MatchesKey().
201 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
203 * GenericOutputter.cs : commented out warned fields.
205 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
207 * XslKey.cs : removed last ListIterator.ctor() argument.
208 Reverted the last commit that changed internal key index change
209 from ArrayList to Hashtable. Avoid clone in CollectIndex().
210 Sort results in Evaluate() before passing list to ListIterator.
211 * XslFunctions.cs : removed last ListIterator.ctor() argument.
213 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
216 XsltCompiledContext.cs,
218 XslTransformProcessor.cs : Now dynamic context key index table is
219 separate from XslKey static context. Added KeyIndexTable class and
220 store it into XsltCompiledContext with hash name-table mapping.
221 Cache map from statically-named key to index table.
222 Use Hashtable for internal key cache instead of ArrayList.
224 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
226 * XslKey.cs : fixed node iteration on collecting key indices which
227 could have resulted in an infinite loop.
229 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
231 * XslDecimalFormat.cs : in some cases it does not throw format
234 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
236 * XsltCompiledContext.cs,
237 XslStylesheet.cs : Fixed significant performance loss on whitespace
240 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
242 * XslKey.cs : removed unused NeedAbsoluteMatching.
243 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
244 Added some missing ToString() overrides.
246 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
248 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
249 to work fine with xsl:*-space attributes as expected.
250 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
251 actually nothing. It should not use XsltContext.PreserveWhitespace()
252 because this method is used to control output, while the referenced
253 method is used to control source document.
255 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
257 * XslTemplate.cs : First non-element content were incorrectly ignored.
259 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
261 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
262 to reduce references to stylesheet XPathNavigator. To accomplish it,
263 IStaticXsltContext does not declare GetNsm() anymore. All xslt
264 function types now directly hold IStaticXsltContext.
265 * XslStylesheet.cs : removed "Compiler c" field.
266 Removed unused properties.
268 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
270 * GenericOutputter.cs : When WriteStartElement() requires to add
271 new namespace declaration, _currentNamespaceDecls needs to be set.
273 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
275 * GenericOutputter.cs : for duplicate attribute in an element, no need
276 to keep previous prefix.
278 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
280 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
281 namespace. Rewrite prefix only when there is non-empty namespace.
283 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
285 * XslStylesheet.cs : Now namespace aliases are collected in prior to
286 all other toplevel elements. Removed unused code.
288 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
290 * GenericOutputter.cs : compute attribute prefix only when actual
291 emission. Fixed some cases that namespace output was missing.
293 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
295 * GenericOutputter.cs : no need to use two collections to store
296 pending attributes. Just use ordered ListDictionary.
297 newNamespace.Add(int) causes extraneous boxing.
299 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
301 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
302 OutputLiteralNamespaceUriNodes() so that everyone can understand
303 what it means and when it should be invoked.
305 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
307 * Compiler.cs : added another CompileTemplateContent() which is
308 requred in xsl:for-each. Commented out unused method.
310 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
312 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
313 in stylesheet should be considered in TryElementNamespacesOutput().
314 ParseQNameListAttribute() is not properly working for filling
317 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
319 * XslStylesheet.cs : included stylesheet could be literal result
320 element as stylesheet (see the spec 2.6.1).
322 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
324 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
325 empty string when nsURI is empty.
326 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
327 unlike xml but like span, as written in the spec 16.2.
329 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
331 * XslCompiledContext.cs, XslTransformProcessor.cs :
332 According to errata E25, those namespaces 1) that has the same
333 name as current element's prefix, or an empty name when current
334 element's namespace URI is empty, are not written to output.
335 So added current element information to XPathContext and added
336 prefix parameter to PushElementState(), added xsl:copy check to
337 TryElementNamespacesOutput().
338 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
340 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
342 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
345 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
347 * XslTemplate.cs : According to the spec 5.7, it is an error for
348 xsl:template to have 'mode' without 'match'.
350 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
352 * Compiler.cs : added ns lookup with nsDecls Hashtable.
354 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
356 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
358 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
360 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
361 namespace "http://www.w3.org/XML/1998/namespace".
363 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
365 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
366 * HtmlEmitter.cs : CDATA nodes are written just as text.
367 * GenericOutputter.cs : custom format are treated just as XML output.
369 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
373 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
374 and WriteState. Writing XML declaration is done inside
375 DetermineOutputMethod().
377 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
379 * Compiler.cs : reverted previous fix, since it should be done
380 in XslTransformProcessor with root stylesheet.
381 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
382 don't output alias namespaces. And now consider null exclusions.
384 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
386 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
388 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
390 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
391 namespace nodes. Patch by Andrew Skiba with some fixes.
392 * XslTransformProcessor.cs : Patch by Andrew Skiba.
393 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
394 as to handle all namespace nodes to copy in stylesheet nodes.
395 Global parameterss are evaluated before global variables.
396 * XmlOutputter.cs : removed unused code.
400 * Actually variables and params should check reference recursion.
401 This patch incompletely fixes the problem.
402 * Those operations that considers excluded-result-prefixes must
403 also check those attributes of its ancestors.
405 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
407 * XmlWriterEmitter.cs : String.Replace() was insufficient for
408 sequential candidates for replacement. Patch by Andrew Skiba.
410 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
412 * GenericOutputter.cs : don't output extraneous xml declaration.
415 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
417 * XslStylesheet.cs : MS implementation had chosen to recover from
418 the error, in the way specified in the spec 7.7.1. Patch by Andrew
421 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
423 * XslTemplate.cs : if input is literal result element, it could result
424 in ArgumentException. Patch by Andrew Skiba.
426 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
428 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
429 NullReferenceException. Patch by Andrew Skiba.
431 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
433 * XslOutput.cs : MS.NET recovers from unknown encoding according to
434 XSLT spec 16.1. Patch by Andrew Skiba.
436 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
438 * HtmlEmitter.cs : patch by Andrew Skiba.
439 Remove extra element prefix output. simplify attribute prefix output.
440 Attribute output might have resulted in invalid element stack peek.
441 Output specified media type if any.
443 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
445 * Compiler.cs : Patch by Andrew Skiba.
446 wrap internal exception with XsltCompileException.
447 Raise an error for not-found document URI.
448 QName might contain sequential whitespaces and thus could be empty.
450 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
452 * XslAttributeSet.cs : just ignore other kind of nodes than element
453 in its content. Fix by Andrew Skiba.
455 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
457 * XslOutput.cs : for html and text output mode, just set internal
458 omitXmlDeclaration status true. Patch by Andrew Skiba.
460 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
462 * XslFunctions.cs : fixed line ending mixture.
464 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
466 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
469 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
472 Compiler.cs : XmlResolver.ResolveUri() may return null.
474 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
476 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
479 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
481 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
483 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
485 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
488 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
490 * XslStylesheet.cs : removed unused fields.
491 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
494 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
496 * Compiler.cs, XslTransformProcessor.cs :
497 when creating XmlTextReader, reuse XmlNameTable.
499 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
501 * Compiler.cs : Changes that reflects CompiledExpression changes.
503 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
505 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
506 This fixes bug #67390.
508 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
510 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
512 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
514 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
515 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
516 : Globalization. Removed unused code.
518 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
520 * XslKey.cs : Key-value search in absolute path search was
523 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
525 * HtmlEmitter.cs : Correct URL escape implementation.
527 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
529 * XslTransformProcessor.cs : On document() function, close the
530 XmlTextReader opened from uri string.
532 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
535 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
536 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
537 should override another overload.
539 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
541 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
542 assembly should not include the .dll extension.
544 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
547 - CompilePattern() now throws XsltCompileException for invalid
548 pattern, and add error location support.
549 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
550 Now it returns MSXslNodeSet instance (for msxsl:node-set).
551 * Debug.cs : don't throw System.Exception.
552 * XslFunctions.cs : Added MSXslNodeSet class.
553 * XslTemplate.cs : reflected CompilePattern() change.
554 * XslTransformProcessor.cs : don't throw System.Exception.
555 * XsltCompiledContext.cs : don't throw System.Exception.
557 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
561 XslStylesheet.cs : made classes/enums internal.
563 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
565 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
566 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
567 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
568 XslTransformProcessor.cs : Make extra classes internal.
570 * XslKey.cs : It should require sorting.
571 * Debug.cs : Just avoid debug output. Only who want to output should
574 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
576 * GenericOutputter.cs : Culture-independency fix.
577 Replaced StringCollection to ArrayList.
578 * XslOutput.cs : Culture-independency fix.
580 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
582 * Compiler.cs : When BaseURI is an empty string, it should not try to
583 create Uri instance. This will fix bug #56832, but not sure.
584 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
585 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
586 should be the TextReader's NewLine).
587 * MSXslScriptManager.cs : Should raise an error when the prefix which
588 was specified by "implements-prefix" was not found.
590 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
592 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
593 when BaseURI for msxsl:script node is not available. This fixes
595 Don't output line number in the error message, when it is 0.
597 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
599 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
601 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
606 XslTransformProcessor.cs :
607 Throw specific types of exceptions instead of Exception.
608 * XslFunctions.cs, XsltCompiledContext.cs :
609 added node argument for XsltExtensionFunction ctor() etc.
611 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
613 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
614 CodeDom. Compilation error should be caught. This fixes bug #55875.
616 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
618 * XslStylesheet.cs : "version" attribute is also required for embedded
621 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
624 XslStylesheet.cs : Reject xsl element other than stylesheet and
625 transform. Check mandatory version attribute (only for existence).
627 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
629 * MSXslScriptManager.cs : if extension namespace was not found in
630 the script, just return null. Patch by Joshua Tauberer.
632 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
634 * XslLiteralElement.cs : quick fix for ArgumentNullException which
635 was because of the combination of non-namespaced instances and
636 exclude-result-prefixes.
638 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
640 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
641 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
642 * XslFunctions.cs : hereby Added.
643 * Compiler.cs : Removed deleted usingdecl.
645 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
647 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
648 * XslKey.cs : Added ExprKeyContainer expression type, which is
649 designed to be matched at any level.
650 * Compiler.cs : support for ExprKeyContainer.
652 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
654 * XslKey.cs : Now it collects key and matching nodes at the first
655 evaluation time. After that, we can just get them from the table.
656 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
657 prohibited key() usage in "match" and "use" attributes in xsl:key.
658 Modified accessibility of some classes.
659 * GenericOutputter.cs,
663 XmlWriterEmitter.cs : made classes internal.
664 * XslOutput.cs : support line info for exception.
665 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
667 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
669 * XsltCompiledContext.cs : fixed the length of context info array.
671 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
673 * XsltCompiledContext.cs :
674 replaced EnumeratorIterator with ListIterator
676 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
678 * GenericOutputter.cs,
681 XslTemplate.cs : tiny foreach elimination.
683 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
685 * XslOutput.cs : Reverted. default encoding should be utf-8.
687 2004-01-14 Jackson Harper <jackson@ximian.com>
689 * GenericOutputter.cs: Add constructors that do not take an
690 encoding to fix build.
692 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
694 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
695 write XML declaration. It means that output supports non document
696 entity. This fixes bug #52729.
697 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
698 modified WriteStartDocument() signature to receive Encoding.
699 * GenericOutputter.cs :
700 - Added .ctor() which receives Encoding. (It is used for TextWriter
701 output to get actual encoding.)
702 - Added .ctor() to take an boolean argument which indicates it is
703 variable content or not. (When variable, it does not call
704 WriteStartDocument().)
706 XsltCompiledContext.cs : comment out WriteLine().
707 * XslOutput.cs : set default encoding utf-16.
709 2004-01-08 Nick Drochak <ndrochak@ieee.org>
711 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
713 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
715 * XslDecimalFormat.cs : implemented format-number() other than number
717 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
718 catch ArgumentException which will be thrown by formatting process.
720 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
722 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
724 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
726 * XsltCompiledContext.cs: Remove workaround now that monodoc
729 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
731 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
732 aliases at compilation time, so evaluate at the first run-time.
734 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
736 * GenericOutputter.cs : support for runtime-determined output type.
737 * HtmlEmitter.cs : Fixed invalid doctype output.
738 Fixed incorrect double attribute output on non-HTML elements.
739 Improved indentation. Fixed "selected" attribute output.
740 Don't have to convert "'" to "'".
741 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
742 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
743 * XslStylesheet.cs, XsltCompiledContext.cs :
744 space resolution consideration for import and wildcard.
746 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
748 * Compiler.cs, XslTransformProcessor.cs :
749 Use XmlValidatingReader to support id() for external stylesheets.
750 * XslKey.cs, XsltCompiledContext.cs :
751 to evaluate MatchPattern and UsePattern, SetContext() is required.
752 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
754 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
756 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
757 Added WriteWhitespace().
758 * GenericOutputter.cs, XslTemplate.cs : Call above.
759 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
760 CurrentNode in for-each context have to be pulled at evaluation.
762 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
764 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
765 function for bugzilla #52144. It should be reverted soon.
767 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
769 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
771 * MSMslScriptManager.cs : modified generated assembly class to be unique
772 through running AppDomain.
773 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
774 arguments to actual argument types. Bugzilla #51450 should be fixed.
776 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
778 * HtmlEmitter.cs : Fixed incorrect character entity output.
780 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
782 * Added ScriptCompilerInfo.cs.
783 * MSXslScriptManager.cs : Fixed *true* author's name.
784 Implemented basic msxsl:script support.
785 * Compiler.cs : Added Evidence member.
787 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
789 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
790 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
791 Added WriteWhitespace() to assure not writing whitespaces as cdata.
792 * XslAttributeSet.cs : Error check if attribute-set contains other than
793 xsl:attribute. Error should be XsltException.
794 * XslDecimalFormat.cs : Complete equality check. Allow just one
795 character value for some attributes.
796 * XslStylesheet.cs : Made whitespace control setting overridable.
797 Added Version property (for the future compatibility mode).
798 Check unrecongnized top level element.
799 * XslTemplate.cs : Check priority as a number.
800 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
801 for xsl:preserve-space and xsl:strip-space support.
802 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
803 incomplete), PushScope and Pop
805 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
807 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
809 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
811 * Compiler.cs : In FromListString(), it should use default ns,
813 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
814 precedence. Doctype should be written even if SYSTEM id is absent.
815 Fixed possible multiple xmlns output.
817 - Encoding output using META element.
818 - Doctype name is fixed (html).
819 - Double quotation on PUBLIC and SYSTEM missing.
820 - Fixed incorrect tag name check for IMG.
821 - '>' should not be escaped.
822 * XmlWriterEmitter.cs :
823 Added newline before doctype. In WriteComment(), "--" and tail
824 '-' are not allowed (it escapes, while XmlWriter simply rejects).
825 * XslTransformProcessor.cs : cdata-section-elements should enclose
826 direct child tests only. Added PreserveWhitespace() (incomplete).
827 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
829 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
831 * IdPattern.cs : This should work against multiple ids.
833 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
836 * MSXslScriptManager.cs
838 * XslTransformProcessor.cs
839 * XsltCompiledContext.cs: Some work on msxsl script.
841 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
843 (in general: cdata-section-elements support, correct document()
844 base uri handling, and so on)
845 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
846 And move to document element. Added XslNameUtil.FromListString().
847 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
848 Added WriteCDataSection().
849 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
850 Added InsideCDataSection.
851 * GenericOutputter.cs :
852 In .ctor(), WriteState should be succeeded from output XmlWriter.
853 WriteNamespaceDecl() now drops declaration identical to existing one.
854 Removed obsolete htmlEmulation.
855 * XslOutput.cs : Added CDataSectionElements support.
856 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
857 * XslTransformProcessor.cs :
858 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
859 now considers xsl:exclude-element-prefixes on literal element.
860 Added PushCDataState() and PopCDataState().
861 * XsltCompiledContext.cs : When base uri of document() target is empty,
862 then it should use stylesheet's BaseURI, not that of current document.
864 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
866 * Compiler.cs : Modified decimal-format comparison code.
869 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
870 be called only when required.
871 * HtmlEmitter.cs : Improved indentation stuff.
872 * XslDecimalFormat.cs : Added incomplete implementation of
873 CheckSameAs() and FormatNumber().
875 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
876 from StringDictionary to ArrayList of QName (to keep order).
878 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
880 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
881 node type (i.e. attribute and namespace). Removed extraneous Clone().
882 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
884 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
886 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
887 XslStylesheet.cs : Added Keys support here.
888 * XslTransformProcessor.cs : Should call SetContext() to expressions
889 before evaluating current nodes.
890 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
891 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
892 for KeyPattern. It now uses CompiledStyle.FindKeys().
894 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
896 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
897 to Xalan tests and MS.NET implementation (only for test convenience).
898 * XslOutput.cs : Indent holds string rathen than bool. Its default value
899 varies in the context. When method="html", then default is "yes".
900 * XslTransformProcessor.cs : Extension element prefixes should not
901 be written as stylesheet namespaces.
902 * XsltCompiledContext.cs : Return type of generate-id() is string.
903 Implemented unparsed-entity-uri().
905 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
907 * Compiler.cs : More complete attribute set gathering.
908 GetNamespacesToCopy() should only return Local namespaces.
909 * GenericOutputter.cs : Added support for indentation.
910 Added easy hack for html output.
911 More correct Prefix handling (considers already defined ones).
912 Namespace emmission is moved to CheckState().
913 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
914 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
915 * GenericOutputter.cs, Outputter.cs :
916 Added CanProcessAttributes property for
917 use-attribute-sets of xsl:copy.
918 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
919 Added support for exclude-result-prefixes.
920 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
922 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
924 * Compiler.cs : It is not important, but attribute order became closer
925 to MS.NET and Xalan (assuming from OASIS tests).
927 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
929 * GenericOutputter.cs : Attribute wasn't overwritten its properties
930 because Attribute is struct it was let to another local variable.
932 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
934 * GenericOutputter.cs: make html output a warning, because doing
935 xml will be right most of the time.
937 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
939 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
940 here for a long time and it hurts thread safty and memory
943 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
945 * Compiler.cs: save the parser (will reduce memory allocation when
946 Jackson's jay patch is committed).
948 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
950 * Attribute.cs: Change to struct. Remove QName class.
951 * GenericOutputter.cs: use an Attribute [] rather than an
952 ArrayList. Allows us not to allocate Attributes, which is great
953 for speed. Roll our own allocation.
955 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
957 * Compiler.cs: add GetNsm to main class as well.
959 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
961 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
962 internal version so we get null if the attr doesnt exist.
964 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
966 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
967 where curVarScope == null
969 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
972 - Better handling of empty attributes (vs not being specified)
973 - Bug in handling #default
975 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
977 * Compiler.cs: Off by one when parsing localname of QName
978 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
979 children (so that they get overriden)
981 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
983 * GenericOutputter.cs: Output attributes in order recieved; not
984 required by spec, but useful for running test cases.
986 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
988 * GenericOutputter.cs - fix bug with outputting state.
989 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
990 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
992 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
994 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
995 exprs on use, pass to nav.
997 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
999 * Compiler.cs: pass satic context to Pattern ctor.
1001 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
1004 GenericOutputter.cs - generic Outputter implementation,
1005 Attribute.cs - represents outputted attribute,
1006 Emitter.cs - abstract output emitter,
1007 TextEmitter.cs - text emitter,
1008 XmlWriterEmitter.cs - emitter to XmlWriter.
1009 * Checking of duplicating attributes is done in GenericOutputter.
1010 * Namespace outputting logic is implemented in GenericOutputter.
1011 * Outputter.cs: Writing namespace declarations is delegated to
1012 derived classes (GenericOutputter).
1013 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
1015 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
1017 * XslTransformProcessor.cs: evaluate variables at beginning
1018 when / is current node.
1020 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
1022 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
1023 Fix up namespace handeling
1025 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
1027 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
1029 * XslDecimalFormat.cs: Stub for decimal-format.
1031 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
1033 * TextOutputter.cs: Add option to ignore element content (Oleg).
1035 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1037 * Compiler.cs: Really give null for blank avt's
1039 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1041 * Compiler.cs: Fixed lre/lre04.
1043 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1045 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
1046 won't have default namespace. See http://www.w3.org/TR/xslt#qname
1048 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1050 * XslTransformProcessor.cs: add support for resolving documents.
1051 * XsltCompiledContext: add support for document () function.
1053 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1055 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
1056 of the abstract methods in Outputter, making them call other
1057 functions with default values, remove impl's in derived classes.
1059 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1061 * Outputter.cs: s/Close/Done
1062 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
1063 * XslTransformProcessor.cs: Flush output when popping, pop at end.
1065 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1067 * Outputter.cs: Add support for namespaces.
1069 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1071 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
1072 XslTransformProcessor.cs: move output logic from XslStylesheet to
1075 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1077 * XslOutput.cs: add support for encoding.
1079 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1081 * *.cs: Support for xsl:output. (Oleg)
1083 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1085 * Compiler.cs: handle extension and excluded namespaces.
1087 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1089 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
1090 from the stylesheet for correct namespace resolution.
1092 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1094 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
1095 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
1097 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
1099 * XslTransformProcessor.cs: Add a table to detect when an object
1101 * XslAttributeSet.cs: Use the above table. Dont throw nullref
1102 exception when no use-attribute-sets are specified.
1104 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1106 * Compiler.cs: Add support for boolean attributes (yes/no).
1108 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1110 * Compiler.cs: Add method LocalNameOf, to get the local name of a
1112 * XslTransformProcessor.cs: Support for setting the XmlResolver.
1114 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1116 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
1118 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1120 * XslTransformProcessor.cs: Add EvaluateNumber method.
1122 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1124 * XsltCompiledContext.cs: Implement more functions.
1126 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1128 * Compiler.cs: Add support for key, utility function to parse
1129 QName's from the XsltContext. Store keys in the CompiledStyle, not
1131 * XslKey.cs: Real implementation
1132 * XslStylesheet.cs: Move the keys to CompiledStyle.
1133 * XsltCompiledContext.cs: Implement the key function
1135 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1137 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1138 the functions ;-). Also wrote current ().
1140 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1142 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1143 done in XPath. Add stubs for XSLT functions.
1145 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1147 * Compiler.cs: To resolve a variable you now need to pass the
1148 processor, so that it can be passed to IsEvaluated. A local will
1149 only be resolved if it has already been evaluated.
1150 * XsltCompiledContext.cs: Pass along the processor.
1152 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1154 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1155 variable values in the XslTransformProcessor.
1156 * XsltCompiledContext.cs: If the scope is null, don't look there!
1157 * Debug.cs: New method Assert
1159 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1161 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1162 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1163 internal methods in XPathNavigator. Remove verbose debugging messages.
1165 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>