1 2006-02-22 Atsushi Enomoto <atsushi@ximian.com>
3 * ScriptCompilerInfo.cs : mbas unlike vbc references System.dll
4 etc. by default, so don't add them as references.
5 Set only local file name for #ExternalSource. Fixed bug #75789.
7 2006-01-13 Atsushi Enomoto <atsushi@ximian.com>
9 * GenericOutputter.cs : When writing string, use WriteWhitespace()
10 instead of WhiteString() when its state is not Content. This fixes
11 BVTs_bvt066 case (broken after implementing strict state check in
14 2005-12-24 Gert Driesen <drieseng@users.sourceforge.net>
16 * XslOutput.cs: Do not report error for unknown value for "standalone"
17 and "omit-xml-declaration" attributes, and extranous attributes if
18 stylesheet version is not "1.0".
20 2005-12-24 Atsushi Enomoto <atsushi@ximian.com>
22 * Compiler.cs : pass stylesheet version to XslOutput to determine
23 "indent" value validity.
24 * XslOutput.cs, HtmlEmitter.cs, GenericOutputter.cs : Reverted
25 buggy changes on "indent" attribute handling.
26 http://www.w3.org/TR/xslt#section-HTML-Output-Method
28 2005-12-23 Gert Driesen <drieseng@users.sourceforge.net>
30 * XslOutput.cs: Reduced indentation of cases in switch statement.
32 2005-12-23 Gert Driesen <drieseng@users.sourceforge.net>
34 * ScriptCompilerInfo.cs: Fixed line endings.
35 * XslStylesheet.cs: Beautify error messages.
36 * Debug.cs: Fixed line endings.
37 * XslOutput.cs: Indent is now bool instead of string, use
38 MoveToAttribute to navigate through attributes instead of using
39 GetAttribute, as we also need to distinguish attributes with
40 zero-length value from attributes that are not specified for
41 correct implementation of DOCTYPE. Implemented validation for
42 value of "omit-xml-declaration", "standalone" and "indent".
43 We now throw a XsltCompileException for unknown attribute.
44 * XmlWriterEmitter.cs: only skip WriteDocType is systemId is null.
45 * HtmlEmitter.cs: XslOutput.Indent is now bool. Fixed WriteDocType
47 * XmlDecimalFormat.cs: Beautify error messages.
48 * XslTemplate.cs: Beautify error messages.
49 * GenericOutputter.cs: XslOutput.Indent is now bool.
50 * Compiler.cs: Beautify error messages.
52 2005-12-21 Atsushi Enomoto <atsushi@ximian.com>
54 * XslTemplate.cs : don't check name and mode attributes on
55 non-'xsl:template' element. This should fix bug #77051.
57 2005-12-13 Andrew Skiba <andrews@mainsoft.com>
59 * XslDecimalFormat.jvm.cs: set correct defaults for NaN and Infinity
61 2005-11-30 Atsushi Enomoto <atsushi@ximian.com>
63 * ScriptCompilerInfo.cs : (VBCompilerInfo) There was a space between
64 '#' and 'ExternalResource'. bug #75789 should be fixed.
66 2005-11-23 Vladimir Krasnov <vladimirk@mainsoft.com>
68 * XslKey.cs: fixed KeyIndexTable.Evaluate method, changed
69 XPathNavigator given to GetNodesByValue()
71 2005-11-17 Atsushi Enomoto <atsushi@ximian.com>
73 * XslCompiledContext.cs : since XsltContextInfo is struct, having
74 an array of this type and setting fields of each struct didn't
75 make sense. It thus blocked expected PreserveWhitespace behavior.
77 2005-10-24 Atsushi Enomoto <atsushi@ximian.com>
79 * Compiler.cs : (FromString(s, hashtable)) pull default namespace
80 from the table for LRE (don't consider it as ""; spec. 7.1.2)
83 2005-09-16 Atsushi Enomoto <atsushi@ximian.com>
85 * ScriptCompilerInfo.cs : Compile correct replacement result.
88 2005-09-10 Atsushi Enomoto <atsushi@ximian.com>
90 * Compiler.cs : (Compile) check children only when it is the document
91 element. Fixed bug #76046.
93 2005-08-25 Atsushi Enomoto <atsushi@ximian.com>
95 * ScriptCompilerInfo.cs : It should not be "#line" when the source is
96 not C#. It should fix bug #75789.
98 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
100 * XslKey.cs : Fixed match pattern in xsl:key to check attribute nodes.
101 To minimize attribute iteration, use Pattern.EvaluatedNodeType.
104 2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
106 * XslFunctions.cs : XslTransform recovers from errors on document
107 resolution. Fixed bug #75663.
109 2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
111 * HtmlEmitter.cs : Boolean attribute values should be omitted, but
112 only for related elements.
114 2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
116 * MSXslScriptManager.cs : it should ignore compiler warnings. This
119 2005-04-07 Andrew Skiba <andrews@mainsoft.com>
121 * XslDecimalFormat.jvm.cs : added
123 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
125 * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
126 support CodeDom). Use Guid.ToString("N").
128 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
130 * Compiler.cs : removed extraneous using_directive.
132 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
134 * XslKey.cs : the iterator does not require sorting (already sorted).
137 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
140 Variables are stored per stylesheet and added to compiler after
141 all of the contents are processed (handle import precedence).
142 Imports are now processed in prior to other contents (incorrect
143 imports are now rejected). After imports, process includes to
144 process nested imports. In-process included stylesheets are
145 temporarily stored in including stylesheet.
146 Handle keys like variables are handled.
147 Added Compile() that is splitted from .ctor().
149 Store keys in compiler and compiled stylesheet.
150 Duplicate variables in imports are now overriden as expected.
151 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
153 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
155 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
156 from each EvaluateXXX() methods.
157 * MsxslScriptManager.cs : not to leave reference to stylesheet
158 navigator, pass current node to Compile().
159 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
160 navigator cache for each pattern, to avoid Clone() and not to leave
161 reference to already-done instance navigator.
163 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
165 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
166 * XslKey.cs : Use XSLT pattern parser for match.
167 UsePattern is now "Use" (it is not a pattern).
168 Reimplemented Evaluate() to make full use of index table.
169 Added Matches() to handle shorter match evaluation. For const value
170 for key (e.g. key patterns), it could avoid Evaluate().
171 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
172 new KeyIndexTable.Matches().
173 * XslFunctions.cs : Added PatternMatches() that just delegates to new
174 XsltCompiledContext.MatchesKey().
176 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
178 * GenericOutputter.cs : commented out warned fields.
180 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
182 * XslKey.cs : removed last ListIterator.ctor() argument.
183 Reverted the last commit that changed internal key index change
184 from ArrayList to Hashtable. Avoid clone in CollectIndex().
185 Sort results in Evaluate() before passing list to ListIterator.
186 * XslFunctions.cs : removed last ListIterator.ctor() argument.
188 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
191 XsltCompiledContext.cs,
193 XslTransformProcessor.cs : Now dynamic context key index table is
194 separate from XslKey static context. Added KeyIndexTable class and
195 store it into XsltCompiledContext with hash name-table mapping.
196 Cache map from statically-named key to index table.
197 Use Hashtable for internal key cache instead of ArrayList.
199 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
201 * XslKey.cs : fixed node iteration on collecting key indices which
202 could have resulted in an infinite loop.
204 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
206 * XslDecimalFormat.cs : in some cases it does not throw format
209 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
211 * XsltCompiledContext.cs,
212 XslStylesheet.cs : Fixed significant performance loss on whitespace
215 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
217 * XslKey.cs : removed unused NeedAbsoluteMatching.
218 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
219 Added some missing ToString() overrides.
221 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
223 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
224 to work fine with xsl:*-space attributes as expected.
225 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
226 actually nothing. It should not use XsltContext.PreserveWhitespace()
227 because this method is used to control output, while the referenced
228 method is used to control source document.
230 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
232 * XslTemplate.cs : First non-element content were incorrectly ignored.
234 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
236 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
237 to reduce references to stylesheet XPathNavigator. To accomplish it,
238 IStaticXsltContext does not declare GetNsm() anymore. All xslt
239 function types now directly hold IStaticXsltContext.
240 * XslStylesheet.cs : removed "Compiler c" field.
241 Removed unused properties.
243 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
245 * GenericOutputter.cs : When WriteStartElement() requires to add
246 new namespace declaration, _currentNamespaceDecls needs to be set.
248 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
250 * GenericOutputter.cs : for duplicate attribute in an element, no need
251 to keep previous prefix.
253 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
255 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
256 namespace. Rewrite prefix only when there is non-empty namespace.
258 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
260 * XslStylesheet.cs : Now namespace aliases are collected in prior to
261 all other toplevel elements. Removed unused code.
263 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
265 * GenericOutputter.cs : compute attribute prefix only when actual
266 emission. Fixed some cases that namespace output was missing.
268 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
270 * GenericOutputter.cs : no need to use two collections to store
271 pending attributes. Just use ordered ListDictionary.
272 newNamespace.Add(int) causes extraneous boxing.
274 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
276 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
277 OutputLiteralNamespaceUriNodes() so that everyone can understand
278 what it means and when it should be invoked.
280 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
282 * Compiler.cs : added another CompileTemplateContent() which is
283 requred in xsl:for-each. Commented out unused method.
285 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
287 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
288 in stylesheet should be considered in TryElementNamespacesOutput().
289 ParseQNameListAttribute() is not properly working for filling
292 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
294 * XslStylesheet.cs : included stylesheet could be literal result
295 element as stylesheet (see the spec 2.6.1).
297 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
299 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
300 empty string when nsURI is empty.
301 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
302 unlike xml but like span, as written in the spec 16.2.
304 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
306 * XslCompiledContext.cs, XslTransformProcessor.cs :
307 According to errata E25, those namespaces 1) that has the same
308 name as current element's prefix, or an empty name when current
309 element's namespace URI is empty, are not written to output.
310 So added current element information to XPathContext and added
311 prefix parameter to PushElementState(), added xsl:copy check to
312 TryElementNamespacesOutput().
313 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
315 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
317 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
320 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
322 * XslTemplate.cs : According to the spec 5.7, it is an error for
323 xsl:template to have 'mode' without 'match'.
325 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
327 * Compiler.cs : added ns lookup with nsDecls Hashtable.
329 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
331 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
333 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
335 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
336 namespace "http://www.w3.org/XML/1998/namespace".
338 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
340 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
341 * HtmlEmitter.cs : CDATA nodes are written just as text.
342 * GenericOutputter.cs : custom format are treated just as XML output.
344 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
348 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
349 and WriteState. Writing XML declaration is done inside
350 DetermineOutputMethod().
352 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
354 * Compiler.cs : reverted previous fix, since it should be done
355 in XslTransformProcessor with root stylesheet.
356 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
357 don't output alias namespaces. And now consider null exclusions.
359 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
361 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
363 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
365 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
366 namespace nodes. Patch by Andrew Skiba with some fixes.
367 * XslTransformProcessor.cs : Patch by Andrew Skiba.
368 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
369 as to handle all namespace nodes to copy in stylesheet nodes.
370 Global parameterss are evaluated before global variables.
371 * XmlOutputter.cs : removed unused code.
375 * Actually variables and params should check reference recursion.
376 This patch incompletely fixes the problem.
377 * Those operations that considers excluded-result-prefixes must
378 also check those attributes of its ancestors.
380 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
382 * XmlWriterEmitter.cs : String.Replace() was insufficient for
383 sequential candidates for replacement. Patch by Andrew Skiba.
385 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
387 * GenericOutputter.cs : don't output extraneous xml declaration.
390 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
392 * XslStylesheet.cs : MS implementation had chosen to recover from
393 the error, in the way specified in the spec 7.7.1. Patch by Andrew
396 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
398 * XslTemplate.cs : if input is literal result element, it could result
399 in ArgumentException. Patch by Andrew Skiba.
401 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
403 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
404 NullReferenceException. Patch by Andrew Skiba.
406 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
408 * XslOutput.cs : MS.NET recovers from unknown encoding according to
409 XSLT spec 16.1. Patch by Andrew Skiba.
411 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
413 * HtmlEmitter.cs : patch by Andrew Skiba.
414 Remove extra element prefix output. simplify attribute prefix output.
415 Attribute output might have resulted in invalid element stack peek.
416 Output specified media type if any.
418 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
420 * Compiler.cs : Patch by Andrew Skiba.
421 wrap internal exception with XsltCompileException.
422 Raise an error for not-found document URI.
423 QName might contain sequential whitespaces and thus could be empty.
425 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
427 * XslAttributeSet.cs : just ignore other kind of nodes than element
428 in its content. Fix by Andrew Skiba.
430 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
432 * XslOutput.cs : for html and text output mode, just set internal
433 omitXmlDeclaration status true. Patch by Andrew Skiba.
435 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
437 * XslFunctions.cs : fixed line ending mixture.
439 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
441 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
444 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
447 Compiler.cs : XmlResolver.ResolveUri() may return null.
449 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
451 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
454 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
456 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
458 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
460 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
463 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
465 * XslStylesheet.cs : removed unused fields.
466 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
469 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
471 * Compiler.cs, XslTransformProcessor.cs :
472 when creating XmlTextReader, reuse XmlNameTable.
474 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
476 * Compiler.cs : Changes that reflects CompiledExpression changes.
478 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
480 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
481 This fixes bug #67390.
483 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
485 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
487 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
489 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
490 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
491 : Globalization. Removed unused code.
493 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
495 * XslKey.cs : Key-value search in absolute path search was
498 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
500 * HtmlEmitter.cs : Correct URL escape implementation.
502 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
504 * XslTransformProcessor.cs : On document() function, close the
505 XmlTextReader opened from uri string.
507 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
510 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
511 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
512 should override another overload.
514 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
516 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
517 assembly should not include the .dll extension.
519 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
522 - CompilePattern() now throws XsltCompileException for invalid
523 pattern, and add error location support.
524 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
525 Now it returns MSXslNodeSet instance (for msxsl:node-set).
526 * Debug.cs : don't throw System.Exception.
527 * XslFunctions.cs : Added MSXslNodeSet class.
528 * XslTemplate.cs : reflected CompilePattern() change.
529 * XslTransformProcessor.cs : don't throw System.Exception.
530 * XsltCompiledContext.cs : don't throw System.Exception.
532 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
536 XslStylesheet.cs : made classes/enums internal.
538 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
540 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
541 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
542 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
543 XslTransformProcessor.cs : Make extra classes internal.
545 * XslKey.cs : It should require sorting.
546 * Debug.cs : Just avoid debug output. Only who want to output should
549 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
551 * GenericOutputter.cs : Culture-independency fix.
552 Replaced StringCollection to ArrayList.
553 * XslOutput.cs : Culture-independency fix.
555 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
557 * Compiler.cs : When BaseURI is an empty string, it should not try to
558 create Uri instance. This will fix bug #56832, but not sure.
559 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
560 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
561 should be the TextReader's NewLine).
562 * MSXslScriptManager.cs : Should raise an error when the prefix which
563 was specified by "implements-prefix" was not found.
565 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
567 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
568 when BaseURI for msxsl:script node is not available. This fixes
570 Don't output line number in the error message, when it is 0.
572 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
574 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
576 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
581 XslTransformProcessor.cs :
582 Throw specific types of exceptions instead of Exception.
583 * XslFunctions.cs, XsltCompiledContext.cs :
584 added node argument for XsltExtensionFunction ctor() etc.
586 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
588 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
589 CodeDom. Compilation error should be caught. This fixes bug #55875.
591 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
593 * XslStylesheet.cs : "version" attribute is also required for embedded
596 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
599 XslStylesheet.cs : Reject xsl element other than stylesheet and
600 transform. Check mandatory version attribute (only for existence).
602 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
604 * MSXslScriptManager.cs : if extension namespace was not found in
605 the script, just return null. Patch by Joshua Tauberer.
607 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
609 * XslLiteralElement.cs : quick fix for ArgumentNullException which
610 was because of the combination of non-namespaced instances and
611 exclude-result-prefixes.
613 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
615 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
616 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
617 * XslFunctions.cs : hereby Added.
618 * Compiler.cs : Removed deleted usingdecl.
620 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
622 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
623 * XslKey.cs : Added ExprKeyContainer expression type, which is
624 designed to be matched at any level.
625 * Compiler.cs : support for ExprKeyContainer.
627 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
629 * XslKey.cs : Now it collects key and matching nodes at the first
630 evaluation time. After that, we can just get them from the table.
631 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
632 prohibited key() usage in "match" and "use" attributes in xsl:key.
633 Modified accessibility of some classes.
634 * GenericOutputter.cs,
638 XmlWriterEmitter.cs : made classes internal.
639 * XslOutput.cs : support line info for exception.
640 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
642 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
644 * XsltCompiledContext.cs : fixed the length of context info array.
646 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
648 * XsltCompiledContext.cs :
649 replaced EnumeratorIterator with ListIterator
651 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
653 * GenericOutputter.cs,
656 XslTemplate.cs : tiny foreach elimination.
658 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
660 * XslOutput.cs : Reverted. default encoding should be utf-8.
662 2004-01-14 Jackson Harper <jackson@ximian.com>
664 * GenericOutputter.cs: Add constructors that do not take an
665 encoding to fix build.
667 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
669 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
670 write XML declaration. It means that output supports non document
671 entity. This fixes bug #52729.
672 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
673 modified WriteStartDocument() signature to receive Encoding.
674 * GenericOutputter.cs :
675 - Added .ctor() which receives Encoding. (It is used for TextWriter
676 output to get actual encoding.)
677 - Added .ctor() to take an boolean argument which indicates it is
678 variable content or not. (When variable, it does not call
679 WriteStartDocument().)
681 XsltCompiledContext.cs : comment out WriteLine().
682 * XslOutput.cs : set default encoding utf-16.
684 2004-01-08 Nick Drochak <ndrochak@ieee.org>
686 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
688 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
690 * XslDecimalFormat.cs : implemented format-number() other than number
692 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
693 catch ArgumentException which will be thrown by formatting process.
695 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
697 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
699 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
701 * XsltCompiledContext.cs: Remove workaround now that monodoc
704 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
706 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
707 aliases at compilation time, so evaluate at the first run-time.
709 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
711 * GenericOutputter.cs : support for runtime-determined output type.
712 * HtmlEmitter.cs : Fixed invalid doctype output.
713 Fixed incorrect double attribute output on non-HTML elements.
714 Improved indentation. Fixed "selected" attribute output.
715 Don't have to convert "'" to "'".
716 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
717 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
718 * XslStylesheet.cs, XsltCompiledContext.cs :
719 space resolution consideration for import and wildcard.
721 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
723 * Compiler.cs, XslTransformProcessor.cs :
724 Use XmlValidatingReader to support id() for external stylesheets.
725 * XslKey.cs, XsltCompiledContext.cs :
726 to evaluate MatchPattern and UsePattern, SetContext() is required.
727 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
729 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
731 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
732 Added WriteWhitespace().
733 * GenericOutputter.cs, XslTemplate.cs : Call above.
734 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
735 CurrentNode in for-each context have to be pulled at evaluation.
737 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
739 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
740 function for bugzilla #52144. It should be reverted soon.
742 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
744 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
746 * MSMslScriptManager.cs : modified generated assembly class to be unique
747 through running AppDomain.
748 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
749 arguments to actual argument types. Bugzilla #51450 should be fixed.
751 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
753 * HtmlEmitter.cs : Fixed incorrect character entity output.
755 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
757 * Added ScriptCompilerInfo.cs.
758 * MSXslScriptManager.cs : Fixed *true* author's name.
759 Implemented basic msxsl:script support.
760 * Compiler.cs : Added Evidence member.
762 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
764 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
765 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
766 Added WriteWhitespace() to assure not writing whitespaces as cdata.
767 * XslAttributeSet.cs : Error check if attribute-set contains other than
768 xsl:attribute. Error should be XsltException.
769 * XslDecimalFormat.cs : Complete equality check. Allow just one
770 character value for some attributes.
771 * XslStylesheet.cs : Made whitespace control setting overridable.
772 Added Version property (for the future compatibility mode).
773 Check unrecongnized top level element.
774 * XslTemplate.cs : Check priority as a number.
775 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
776 for xsl:preserve-space and xsl:strip-space support.
777 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
778 incomplete), PushScope and Pop
780 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
782 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
784 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
786 * Compiler.cs : In FromListString(), it should use default ns,
788 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
789 precedence. Doctype should be written even if SYSTEM id is absent.
790 Fixed possible multiple xmlns output.
792 - Encoding output using META element.
793 - Doctype name is fixed (html).
794 - Double quotation on PUBLIC and SYSTEM missing.
795 - Fixed incorrect tag name check for IMG.
796 - '>' should not be escaped.
797 * XmlWriterEmitter.cs :
798 Added newline before doctype. In WriteComment(), "--" and tail
799 '-' are not allowed (it escapes, while XmlWriter simply rejects).
800 * XslTransformProcessor.cs : cdata-section-elements should enclose
801 direct child tests only. Added PreserveWhitespace() (incomplete).
802 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
804 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
806 * IdPattern.cs : This should work against multiple ids.
808 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
811 * MSXslScriptManager.cs
813 * XslTransformProcessor.cs
814 * XsltCompiledContext.cs: Some work on msxsl script.
816 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
818 (in general: cdata-section-elements support, correct document()
819 base uri handling, and so on)
820 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
821 And move to document element. Added XslNameUtil.FromListString().
822 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
823 Added WriteCDataSection().
824 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
825 Added InsideCDataSection.
826 * GenericOutputter.cs :
827 In .ctor(), WriteState should be succeeded from output XmlWriter.
828 WriteNamespaceDecl() now drops declaration identical to existing one.
829 Removed obsolete htmlEmulation.
830 * XslOutput.cs : Added CDataSectionElements support.
831 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
832 * XslTransformProcessor.cs :
833 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
834 now considers xsl:exclude-element-prefixes on literal element.
835 Added PushCDataState() and PopCDataState().
836 * XsltCompiledContext.cs : When base uri of document() target is empty,
837 then it should use stylesheet's BaseURI, not that of current document.
839 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
841 * Compiler.cs : Modified decimal-format comparison code.
844 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
845 be called only when required.
846 * HtmlEmitter.cs : Improved indentation stuff.
847 * XslDecimalFormat.cs : Added incomplete implementation of
848 CheckSameAs() and FormatNumber().
850 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
851 from StringDictionary to ArrayList of QName (to keep order).
853 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
855 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
856 node type (i.e. attribute and namespace). Removed extraneous Clone().
857 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
859 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
861 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
862 XslStylesheet.cs : Added Keys support here.
863 * XslTransformProcessor.cs : Should call SetContext() to expressions
864 before evaluating current nodes.
865 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
866 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
867 for KeyPattern. It now uses CompiledStyle.FindKeys().
869 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
871 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
872 to Xalan tests and MS.NET implementation (only for test convenience).
873 * XslOutput.cs : Indent holds string rathen than bool. Its default value
874 varies in the context. When method="html", then default is "yes".
875 * XslTransformProcessor.cs : Extension element prefixes should not
876 be written as stylesheet namespaces.
877 * XsltCompiledContext.cs : Return type of generate-id() is string.
878 Implemented unparsed-entity-uri().
880 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
882 * Compiler.cs : More complete attribute set gathering.
883 GetNamespacesToCopy() should only return Local namespaces.
884 * GenericOutputter.cs : Added support for indentation.
885 Added easy hack for html output.
886 More correct Prefix handling (considers already defined ones).
887 Namespace emmission is moved to CheckState().
888 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
889 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
890 * GenericOutputter.cs, Outputter.cs :
891 Added CanProcessAttributes property for
892 use-attribute-sets of xsl:copy.
893 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
894 Added support for exclude-result-prefixes.
895 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
897 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
899 * Compiler.cs : It is not important, but attribute order became closer
900 to MS.NET and Xalan (assuming from OASIS tests).
902 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
904 * GenericOutputter.cs : Attribute wasn't overwritten its properties
905 because Attribute is struct it was let to another local variable.
907 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
909 * GenericOutputter.cs: make html output a warning, because doing
910 xml will be right most of the time.
912 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
914 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
915 here for a long time and it hurts thread safty and memory
918 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
920 * Compiler.cs: save the parser (will reduce memory allocation when
921 Jackson's jay patch is committed).
923 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
925 * Attribute.cs: Change to struct. Remove QName class.
926 * GenericOutputter.cs: use an Attribute [] rather than an
927 ArrayList. Allows us not to allocate Attributes, which is great
928 for speed. Roll our own allocation.
930 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
932 * Compiler.cs: add GetNsm to main class as well.
934 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
936 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
937 internal version so we get null if the attr doesnt exist.
939 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
941 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
942 where curVarScope == null
944 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
947 - Better handling of empty attributes (vs not being specified)
948 - Bug in handling #default
950 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
952 * Compiler.cs: Off by one when parsing localname of QName
953 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
954 children (so that they get overriden)
956 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
958 * GenericOutputter.cs: Output attributes in order recieved; not
959 required by spec, but useful for running test cases.
961 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
963 * GenericOutputter.cs - fix bug with outputting state.
964 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
965 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
967 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
969 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
970 exprs on use, pass to nav.
972 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
974 * Compiler.cs: pass satic context to Pattern ctor.
976 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
979 GenericOutputter.cs - generic Outputter implementation,
980 Attribute.cs - represents outputted attribute,
981 Emitter.cs - abstract output emitter,
982 TextEmitter.cs - text emitter,
983 XmlWriterEmitter.cs - emitter to XmlWriter.
984 * Checking of duplicating attributes is done in GenericOutputter.
985 * Namespace outputting logic is implemented in GenericOutputter.
986 * Outputter.cs: Writing namespace declarations is delegated to
987 derived classes (GenericOutputter).
988 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
990 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
992 * XslTransformProcessor.cs: evaluate variables at beginning
993 when / is current node.
995 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
997 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
998 Fix up namespace handeling
1000 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
1002 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
1004 * XslDecimalFormat.cs: Stub for decimal-format.
1006 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
1008 * TextOutputter.cs: Add option to ignore element content (Oleg).
1010 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1012 * Compiler.cs: Really give null for blank avt's
1014 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1016 * Compiler.cs: Fixed lre/lre04.
1018 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1020 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
1021 won't have default namespace. See http://www.w3.org/TR/xslt#qname
1023 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1025 * XslTransformProcessor.cs: add support for resolving documents.
1026 * XsltCompiledContext: add support for document () function.
1028 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1030 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
1031 of the abstract methods in Outputter, making them call other
1032 functions with default values, remove impl's in derived classes.
1034 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1036 * Outputter.cs: s/Close/Done
1037 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
1038 * XslTransformProcessor.cs: Flush output when popping, pop at end.
1040 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1042 * Outputter.cs: Add support for namespaces.
1044 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1046 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
1047 XslTransformProcessor.cs: move output logic from XslStylesheet to
1050 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1052 * XslOutput.cs: add support for encoding.
1054 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1056 * *.cs: Support for xsl:output. (Oleg)
1058 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1060 * Compiler.cs: handle extension and excluded namespaces.
1062 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1064 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
1065 from the stylesheet for correct namespace resolution.
1067 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1069 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
1070 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
1072 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
1074 * XslTransformProcessor.cs: Add a table to detect when an object
1076 * XslAttributeSet.cs: Use the above table. Dont throw nullref
1077 exception when no use-attribute-sets are specified.
1079 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1081 * Compiler.cs: Add support for boolean attributes (yes/no).
1083 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1085 * Compiler.cs: Add method LocalNameOf, to get the local name of a
1087 * XslTransformProcessor.cs: Support for setting the XmlResolver.
1089 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1091 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
1093 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1095 * XslTransformProcessor.cs: Add EvaluateNumber method.
1097 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1099 * XsltCompiledContext.cs: Implement more functions.
1101 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1103 * Compiler.cs: Add support for key, utility function to parse
1104 QName's from the XsltContext. Store keys in the CompiledStyle, not
1106 * XslKey.cs: Real implementation
1107 * XslStylesheet.cs: Move the keys to CompiledStyle.
1108 * XsltCompiledContext.cs: Implement the key function
1110 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1112 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1113 the functions ;-). Also wrote current ().
1115 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1117 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1118 done in XPath. Add stubs for XSLT functions.
1120 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1122 * Compiler.cs: To resolve a variable you now need to pass the
1123 processor, so that it can be passed to IsEvaluated. A local will
1124 only be resolved if it has already been evaluated.
1125 * XsltCompiledContext.cs: Pass along the processor.
1127 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1129 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1130 variable values in the XslTransformProcessor.
1131 * XsltCompiledContext.cs: If the scope is null, don't look there!
1132 * Debug.cs: New method Assert
1134 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1136 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1137 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1138 internal methods in XPathNavigator. Remove verbose debugging messages.
1140 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>