1 2005-12-24 Gert Driesen <drieseng@users.sourceforge.net>
3 * XslOutput.cs: Do not report error for unknown value for "standalone"
4 and "omit-xml-declaration" attributes, and extranous attributes if
5 stylesheet version is not "1.0".
7 2005-12-24 Atsushi Enomoto <atsushi@ximian.com>
9 * Compiler.cs : pass stylesheet version to XslOutput to determine
10 "indent" value validity.
11 * XslOutput.cs, HtmlEmitter.cs, GenericOutputter.cs : Reverted
12 buggy changes on "indent" attribute handling.
13 http://www.w3.org/TR/xslt#section-HTML-Output-Method
15 2005-12-23 Gert Driesen <drieseng@users.sourceforge.net>
17 * XslOutput.cs: Reduced indentation of cases in switch statement.
19 2005-12-23 Gert Driesen <drieseng@users.sourceforge.net>
21 * ScriptCompilerInfo.cs: Fixed line endings.
22 * XslStylesheet.cs: Beautify error messages.
23 * Debug.cs: Fixed line endings.
24 * XslOutput.cs: Indent is now bool instead of string, use
25 MoveToAttribute to navigate through attributes instead of using
26 GetAttribute, as we also need to distinguish attributes with
27 zero-length value from attributes that are not specified for
28 correct implementation of DOCTYPE. Implemented validation for
29 value of "omit-xml-declaration", "standalone" and "indent".
30 We now throw a XsltCompileException for unknown attribute.
31 * XmlWriterEmitter.cs: only skip WriteDocType is systemId is null.
32 * HtmlEmitter.cs: XslOutput.Indent is now bool. Fixed WriteDocType
34 * XmlDecimalFormat.cs: Beautify error messages.
35 * XslTemplate.cs: Beautify error messages.
36 * GenericOutputter.cs: XslOutput.Indent is now bool.
37 * Compiler.cs: Beautify error messages.
39 2005-12-21 Atsushi Enomoto <atsushi@ximian.com>
41 * XslTemplate.cs : don't check name and mode attributes on
42 non-'xsl:template' element. This should fix bug #77051.
44 2005-12-13 Andrew Skiba <andrews@mainsoft.com>
46 * XslDecimalFormat.jvm.cs: set correct defaults for NaN and Infinity
48 2005-11-30 Atsushi Enomoto <atsushi@ximian.com>
50 * ScriptCompilerInfo.cs : (VBCompilerInfo) There was a space between
51 '#' and 'ExternalResource'. bug #75789 should be fixed.
53 2005-11-23 Vladimir Krasnov <vladimirk@mainsoft.com>
55 * XslKey.cs: fixed KeyIndexTable.Evaluate method, changed
56 XPathNavigator given to GetNodesByValue()
58 2005-11-17 Atsushi Enomoto <atsushi@ximian.com>
60 * XslCompiledContext.cs : since XsltContextInfo is struct, having
61 an array of this type and setting fields of each struct didn't
62 make sense. It thus blocked expected PreserveWhitespace behavior.
64 2005-10-24 Atsushi Enomoto <atsushi@ximian.com>
66 * Compiler.cs : (FromString(s, hashtable)) pull default namespace
67 from the table for LRE (don't consider it as ""; spec. 7.1.2)
70 2005-09-16 Atsushi Enomoto <atsushi@ximian.com>
72 * ScriptCompilerInfo.cs : Compile correct replacement result.
75 2005-09-10 Atsushi Enomoto <atsushi@ximian.com>
77 * Compiler.cs : (Compile) check children only when it is the document
78 element. Fixed bug #76046.
80 2005-08-25 Atsushi Enomoto <atsushi@ximian.com>
82 * ScriptCompilerInfo.cs : It should not be "#line" when the source is
83 not C#. It should fix bug #75789.
85 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
87 * XslKey.cs : Fixed match pattern in xsl:key to check attribute nodes.
88 To minimize attribute iteration, use Pattern.EvaluatedNodeType.
91 2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
93 * XslFunctions.cs : XslTransform recovers from errors on document
94 resolution. Fixed bug #75663.
96 2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
98 * HtmlEmitter.cs : Boolean attribute values should be omitted, but
99 only for related elements.
101 2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
103 * MSXslScriptManager.cs : it should ignore compiler warnings. This
106 2005-04-07 Andrew Skiba <andrews@mainsoft.com>
108 * XslDecimalFormat.jvm.cs : added
110 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
112 * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
113 support CodeDom). Use Guid.ToString("N").
115 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
117 * Compiler.cs : removed extraneous using_directive.
119 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
121 * XslKey.cs : the iterator does not require sorting (already sorted).
124 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
127 Variables are stored per stylesheet and added to compiler after
128 all of the contents are processed (handle import precedence).
129 Imports are now processed in prior to other contents (incorrect
130 imports are now rejected). After imports, process includes to
131 process nested imports. In-process included stylesheets are
132 temporarily stored in including stylesheet.
133 Handle keys like variables are handled.
134 Added Compile() that is splitted from .ctor().
136 Store keys in compiler and compiled stylesheet.
137 Duplicate variables in imports are now overriden as expected.
138 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
140 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
142 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
143 from each EvaluateXXX() methods.
144 * MsxslScriptManager.cs : not to leave reference to stylesheet
145 navigator, pass current node to Compile().
146 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
147 navigator cache for each pattern, to avoid Clone() and not to leave
148 reference to already-done instance navigator.
150 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
152 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
153 * XslKey.cs : Use XSLT pattern parser for match.
154 UsePattern is now "Use" (it is not a pattern).
155 Reimplemented Evaluate() to make full use of index table.
156 Added Matches() to handle shorter match evaluation. For const value
157 for key (e.g. key patterns), it could avoid Evaluate().
158 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
159 new KeyIndexTable.Matches().
160 * XslFunctions.cs : Added PatternMatches() that just delegates to new
161 XsltCompiledContext.MatchesKey().
163 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
165 * GenericOutputter.cs : commented out warned fields.
167 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
169 * XslKey.cs : removed last ListIterator.ctor() argument.
170 Reverted the last commit that changed internal key index change
171 from ArrayList to Hashtable. Avoid clone in CollectIndex().
172 Sort results in Evaluate() before passing list to ListIterator.
173 * XslFunctions.cs : removed last ListIterator.ctor() argument.
175 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
178 XsltCompiledContext.cs,
180 XslTransformProcessor.cs : Now dynamic context key index table is
181 separate from XslKey static context. Added KeyIndexTable class and
182 store it into XsltCompiledContext with hash name-table mapping.
183 Cache map from statically-named key to index table.
184 Use Hashtable for internal key cache instead of ArrayList.
186 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
188 * XslKey.cs : fixed node iteration on collecting key indices which
189 could have resulted in an infinite loop.
191 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
193 * XslDecimalFormat.cs : in some cases it does not throw format
196 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
198 * XsltCompiledContext.cs,
199 XslStylesheet.cs : Fixed significant performance loss on whitespace
202 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
204 * XslKey.cs : removed unused NeedAbsoluteMatching.
205 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
206 Added some missing ToString() overrides.
208 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
210 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
211 to work fine with xsl:*-space attributes as expected.
212 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
213 actually nothing. It should not use XsltContext.PreserveWhitespace()
214 because this method is used to control output, while the referenced
215 method is used to control source document.
217 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
219 * XslTemplate.cs : First non-element content were incorrectly ignored.
221 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
223 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
224 to reduce references to stylesheet XPathNavigator. To accomplish it,
225 IStaticXsltContext does not declare GetNsm() anymore. All xslt
226 function types now directly hold IStaticXsltContext.
227 * XslStylesheet.cs : removed "Compiler c" field.
228 Removed unused properties.
230 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
232 * GenericOutputter.cs : When WriteStartElement() requires to add
233 new namespace declaration, _currentNamespaceDecls needs to be set.
235 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
237 * GenericOutputter.cs : for duplicate attribute in an element, no need
238 to keep previous prefix.
240 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
242 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
243 namespace. Rewrite prefix only when there is non-empty namespace.
245 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
247 * XslStylesheet.cs : Now namespace aliases are collected in prior to
248 all other toplevel elements. Removed unused code.
250 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
252 * GenericOutputter.cs : compute attribute prefix only when actual
253 emission. Fixed some cases that namespace output was missing.
255 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
257 * GenericOutputter.cs : no need to use two collections to store
258 pending attributes. Just use ordered ListDictionary.
259 newNamespace.Add(int) causes extraneous boxing.
261 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
263 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
264 OutputLiteralNamespaceUriNodes() so that everyone can understand
265 what it means and when it should be invoked.
267 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
269 * Compiler.cs : added another CompileTemplateContent() which is
270 requred in xsl:for-each. Commented out unused method.
272 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
274 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
275 in stylesheet should be considered in TryElementNamespacesOutput().
276 ParseQNameListAttribute() is not properly working for filling
279 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
281 * XslStylesheet.cs : included stylesheet could be literal result
282 element as stylesheet (see the spec 2.6.1).
284 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
286 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
287 empty string when nsURI is empty.
288 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
289 unlike xml but like span, as written in the spec 16.2.
291 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
293 * XslCompiledContext.cs, XslTransformProcessor.cs :
294 According to errata E25, those namespaces 1) that has the same
295 name as current element's prefix, or an empty name when current
296 element's namespace URI is empty, are not written to output.
297 So added current element information to XPathContext and added
298 prefix parameter to PushElementState(), added xsl:copy check to
299 TryElementNamespacesOutput().
300 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
302 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
304 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
307 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
309 * XslTemplate.cs : According to the spec 5.7, it is an error for
310 xsl:template to have 'mode' without 'match'.
312 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
314 * Compiler.cs : added ns lookup with nsDecls Hashtable.
316 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
318 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
320 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
322 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
323 namespace "http://www.w3.org/XML/1998/namespace".
325 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
327 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
328 * HtmlEmitter.cs : CDATA nodes are written just as text.
329 * GenericOutputter.cs : custom format are treated just as XML output.
331 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
335 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
336 and WriteState. Writing XML declaration is done inside
337 DetermineOutputMethod().
339 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
341 * Compiler.cs : reverted previous fix, since it should be done
342 in XslTransformProcessor with root stylesheet.
343 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
344 don't output alias namespaces. And now consider null exclusions.
346 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
348 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
350 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
352 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
353 namespace nodes. Patch by Andrew Skiba with some fixes.
354 * XslTransformProcessor.cs : Patch by Andrew Skiba.
355 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
356 as to handle all namespace nodes to copy in stylesheet nodes.
357 Global parameterss are evaluated before global variables.
358 * XmlOutputter.cs : removed unused code.
362 * Actually variables and params should check reference recursion.
363 This patch incompletely fixes the problem.
364 * Those operations that considers excluded-result-prefixes must
365 also check those attributes of its ancestors.
367 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
369 * XmlWriterEmitter.cs : String.Replace() was insufficient for
370 sequential candidates for replacement. Patch by Andrew Skiba.
372 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
374 * GenericOutputter.cs : don't output extraneous xml declaration.
377 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
379 * XslStylesheet.cs : MS implementation had chosen to recover from
380 the error, in the way specified in the spec 7.7.1. Patch by Andrew
383 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
385 * XslTemplate.cs : if input is literal result element, it could result
386 in ArgumentException. Patch by Andrew Skiba.
388 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
390 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
391 NullReferenceException. Patch by Andrew Skiba.
393 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
395 * XslOutput.cs : MS.NET recovers from unknown encoding according to
396 XSLT spec 16.1. Patch by Andrew Skiba.
398 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
400 * HtmlEmitter.cs : patch by Andrew Skiba.
401 Remove extra element prefix output. simplify attribute prefix output.
402 Attribute output might have resulted in invalid element stack peek.
403 Output specified media type if any.
405 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
407 * Compiler.cs : Patch by Andrew Skiba.
408 wrap internal exception with XsltCompileException.
409 Raise an error for not-found document URI.
410 QName might contain sequential whitespaces and thus could be empty.
412 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
414 * XslAttributeSet.cs : just ignore other kind of nodes than element
415 in its content. Fix by Andrew Skiba.
417 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
419 * XslOutput.cs : for html and text output mode, just set internal
420 omitXmlDeclaration status true. Patch by Andrew Skiba.
422 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
424 * XslFunctions.cs : fixed line ending mixture.
426 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
428 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
431 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
434 Compiler.cs : XmlResolver.ResolveUri() may return null.
436 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
438 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
441 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
443 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
445 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
447 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
450 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
452 * XslStylesheet.cs : removed unused fields.
453 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
456 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
458 * Compiler.cs, XslTransformProcessor.cs :
459 when creating XmlTextReader, reuse XmlNameTable.
461 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
463 * Compiler.cs : Changes that reflects CompiledExpression changes.
465 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
467 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
468 This fixes bug #67390.
470 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
472 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
474 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
476 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
477 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
478 : Globalization. Removed unused code.
480 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
482 * XslKey.cs : Key-value search in absolute path search was
485 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
487 * HtmlEmitter.cs : Correct URL escape implementation.
489 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
491 * XslTransformProcessor.cs : On document() function, close the
492 XmlTextReader opened from uri string.
494 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
497 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
498 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
499 should override another overload.
501 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
503 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
504 assembly should not include the .dll extension.
506 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
509 - CompilePattern() now throws XsltCompileException for invalid
510 pattern, and add error location support.
511 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
512 Now it returns MSXslNodeSet instance (for msxsl:node-set).
513 * Debug.cs : don't throw System.Exception.
514 * XslFunctions.cs : Added MSXslNodeSet class.
515 * XslTemplate.cs : reflected CompilePattern() change.
516 * XslTransformProcessor.cs : don't throw System.Exception.
517 * XsltCompiledContext.cs : don't throw System.Exception.
519 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
523 XslStylesheet.cs : made classes/enums internal.
525 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
527 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
528 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
529 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
530 XslTransformProcessor.cs : Make extra classes internal.
532 * XslKey.cs : It should require sorting.
533 * Debug.cs : Just avoid debug output. Only who want to output should
536 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
538 * GenericOutputter.cs : Culture-independency fix.
539 Replaced StringCollection to ArrayList.
540 * XslOutput.cs : Culture-independency fix.
542 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
544 * Compiler.cs : When BaseURI is an empty string, it should not try to
545 create Uri instance. This will fix bug #56832, but not sure.
546 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
547 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
548 should be the TextReader's NewLine).
549 * MSXslScriptManager.cs : Should raise an error when the prefix which
550 was specified by "implements-prefix" was not found.
552 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
554 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
555 when BaseURI for msxsl:script node is not available. This fixes
557 Don't output line number in the error message, when it is 0.
559 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
561 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
563 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
568 XslTransformProcessor.cs :
569 Throw specific types of exceptions instead of Exception.
570 * XslFunctions.cs, XsltCompiledContext.cs :
571 added node argument for XsltExtensionFunction ctor() etc.
573 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
575 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
576 CodeDom. Compilation error should be caught. This fixes bug #55875.
578 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
580 * XslStylesheet.cs : "version" attribute is also required for embedded
583 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
586 XslStylesheet.cs : Reject xsl element other than stylesheet and
587 transform. Check mandatory version attribute (only for existence).
589 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
591 * MSXslScriptManager.cs : if extension namespace was not found in
592 the script, just return null. Patch by Joshua Tauberer.
594 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
596 * XslLiteralElement.cs : quick fix for ArgumentNullException which
597 was because of the combination of non-namespaced instances and
598 exclude-result-prefixes.
600 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
602 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
603 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
604 * XslFunctions.cs : hereby Added.
605 * Compiler.cs : Removed deleted usingdecl.
607 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
609 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
610 * XslKey.cs : Added ExprKeyContainer expression type, which is
611 designed to be matched at any level.
612 * Compiler.cs : support for ExprKeyContainer.
614 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
616 * XslKey.cs : Now it collects key and matching nodes at the first
617 evaluation time. After that, we can just get them from the table.
618 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
619 prohibited key() usage in "match" and "use" attributes in xsl:key.
620 Modified accessibility of some classes.
621 * GenericOutputter.cs,
625 XmlWriterEmitter.cs : made classes internal.
626 * XslOutput.cs : support line info for exception.
627 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
629 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
631 * XsltCompiledContext.cs : fixed the length of context info array.
633 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
635 * XsltCompiledContext.cs :
636 replaced EnumeratorIterator with ListIterator
638 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
640 * GenericOutputter.cs,
643 XslTemplate.cs : tiny foreach elimination.
645 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
647 * XslOutput.cs : Reverted. default encoding should be utf-8.
649 2004-01-14 Jackson Harper <jackson@ximian.com>
651 * GenericOutputter.cs: Add constructors that do not take an
652 encoding to fix build.
654 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
656 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
657 write XML declaration. It means that output supports non document
658 entity. This fixes bug #52729.
659 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
660 modified WriteStartDocument() signature to receive Encoding.
661 * GenericOutputter.cs :
662 - Added .ctor() which receives Encoding. (It is used for TextWriter
663 output to get actual encoding.)
664 - Added .ctor() to take an boolean argument which indicates it is
665 variable content or not. (When variable, it does not call
666 WriteStartDocument().)
668 XsltCompiledContext.cs : comment out WriteLine().
669 * XslOutput.cs : set default encoding utf-16.
671 2004-01-08 Nick Drochak <ndrochak@ieee.org>
673 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
675 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
677 * XslDecimalFormat.cs : implemented format-number() other than number
679 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
680 catch ArgumentException which will be thrown by formatting process.
682 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
684 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
686 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
688 * XsltCompiledContext.cs: Remove workaround now that monodoc
691 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
693 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
694 aliases at compilation time, so evaluate at the first run-time.
696 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
698 * GenericOutputter.cs : support for runtime-determined output type.
699 * HtmlEmitter.cs : Fixed invalid doctype output.
700 Fixed incorrect double attribute output on non-HTML elements.
701 Improved indentation. Fixed "selected" attribute output.
702 Don't have to convert "'" to "'".
703 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
704 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
705 * XslStylesheet.cs, XsltCompiledContext.cs :
706 space resolution consideration for import and wildcard.
708 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
710 * Compiler.cs, XslTransformProcessor.cs :
711 Use XmlValidatingReader to support id() for external stylesheets.
712 * XslKey.cs, XsltCompiledContext.cs :
713 to evaluate MatchPattern and UsePattern, SetContext() is required.
714 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
716 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
718 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
719 Added WriteWhitespace().
720 * GenericOutputter.cs, XslTemplate.cs : Call above.
721 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
722 CurrentNode in for-each context have to be pulled at evaluation.
724 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
726 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
727 function for bugzilla #52144. It should be reverted soon.
729 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
731 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
733 * MSMslScriptManager.cs : modified generated assembly class to be unique
734 through running AppDomain.
735 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
736 arguments to actual argument types. Bugzilla #51450 should be fixed.
738 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
740 * HtmlEmitter.cs : Fixed incorrect character entity output.
742 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
744 * Added ScriptCompilerInfo.cs.
745 * MSXslScriptManager.cs : Fixed *true* author's name.
746 Implemented basic msxsl:script support.
747 * Compiler.cs : Added Evidence member.
749 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
751 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
752 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
753 Added WriteWhitespace() to assure not writing whitespaces as cdata.
754 * XslAttributeSet.cs : Error check if attribute-set contains other than
755 xsl:attribute. Error should be XsltException.
756 * XslDecimalFormat.cs : Complete equality check. Allow just one
757 character value for some attributes.
758 * XslStylesheet.cs : Made whitespace control setting overridable.
759 Added Version property (for the future compatibility mode).
760 Check unrecongnized top level element.
761 * XslTemplate.cs : Check priority as a number.
762 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
763 for xsl:preserve-space and xsl:strip-space support.
764 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
765 incomplete), PushScope and Pop
767 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
769 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
771 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
773 * Compiler.cs : In FromListString(), it should use default ns,
775 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
776 precedence. Doctype should be written even if SYSTEM id is absent.
777 Fixed possible multiple xmlns output.
779 - Encoding output using META element.
780 - Doctype name is fixed (html).
781 - Double quotation on PUBLIC and SYSTEM missing.
782 - Fixed incorrect tag name check for IMG.
783 - '>' should not be escaped.
784 * XmlWriterEmitter.cs :
785 Added newline before doctype. In WriteComment(), "--" and tail
786 '-' are not allowed (it escapes, while XmlWriter simply rejects).
787 * XslTransformProcessor.cs : cdata-section-elements should enclose
788 direct child tests only. Added PreserveWhitespace() (incomplete).
789 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
791 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
793 * IdPattern.cs : This should work against multiple ids.
795 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
798 * MSXslScriptManager.cs
800 * XslTransformProcessor.cs
801 * XsltCompiledContext.cs: Some work on msxsl script.
803 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
805 (in general: cdata-section-elements support, correct document()
806 base uri handling, and so on)
807 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
808 And move to document element. Added XslNameUtil.FromListString().
809 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
810 Added WriteCDataSection().
811 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
812 Added InsideCDataSection.
813 * GenericOutputter.cs :
814 In .ctor(), WriteState should be succeeded from output XmlWriter.
815 WriteNamespaceDecl() now drops declaration identical to existing one.
816 Removed obsolete htmlEmulation.
817 * XslOutput.cs : Added CDataSectionElements support.
818 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
819 * XslTransformProcessor.cs :
820 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
821 now considers xsl:exclude-element-prefixes on literal element.
822 Added PushCDataState() and PopCDataState().
823 * XsltCompiledContext.cs : When base uri of document() target is empty,
824 then it should use stylesheet's BaseURI, not that of current document.
826 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
828 * Compiler.cs : Modified decimal-format comparison code.
831 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
832 be called only when required.
833 * HtmlEmitter.cs : Improved indentation stuff.
834 * XslDecimalFormat.cs : Added incomplete implementation of
835 CheckSameAs() and FormatNumber().
837 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
838 from StringDictionary to ArrayList of QName (to keep order).
840 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
842 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
843 node type (i.e. attribute and namespace). Removed extraneous Clone().
844 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
846 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
848 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
849 XslStylesheet.cs : Added Keys support here.
850 * XslTransformProcessor.cs : Should call SetContext() to expressions
851 before evaluating current nodes.
852 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
853 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
854 for KeyPattern. It now uses CompiledStyle.FindKeys().
856 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
858 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
859 to Xalan tests and MS.NET implementation (only for test convenience).
860 * XslOutput.cs : Indent holds string rathen than bool. Its default value
861 varies in the context. When method="html", then default is "yes".
862 * XslTransformProcessor.cs : Extension element prefixes should not
863 be written as stylesheet namespaces.
864 * XsltCompiledContext.cs : Return type of generate-id() is string.
865 Implemented unparsed-entity-uri().
867 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
869 * Compiler.cs : More complete attribute set gathering.
870 GetNamespacesToCopy() should only return Local namespaces.
871 * GenericOutputter.cs : Added support for indentation.
872 Added easy hack for html output.
873 More correct Prefix handling (considers already defined ones).
874 Namespace emmission is moved to CheckState().
875 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
876 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
877 * GenericOutputter.cs, Outputter.cs :
878 Added CanProcessAttributes property for
879 use-attribute-sets of xsl:copy.
880 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
881 Added support for exclude-result-prefixes.
882 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
884 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
886 * Compiler.cs : It is not important, but attribute order became closer
887 to MS.NET and Xalan (assuming from OASIS tests).
889 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
891 * GenericOutputter.cs : Attribute wasn't overwritten its properties
892 because Attribute is struct it was let to another local variable.
894 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
896 * GenericOutputter.cs: make html output a warning, because doing
897 xml will be right most of the time.
899 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
901 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
902 here for a long time and it hurts thread safty and memory
905 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
907 * Compiler.cs: save the parser (will reduce memory allocation when
908 Jackson's jay patch is committed).
910 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
912 * Attribute.cs: Change to struct. Remove QName class.
913 * GenericOutputter.cs: use an Attribute [] rather than an
914 ArrayList. Allows us not to allocate Attributes, which is great
915 for speed. Roll our own allocation.
917 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
919 * Compiler.cs: add GetNsm to main class as well.
921 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
923 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
924 internal version so we get null if the attr doesnt exist.
926 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
928 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
929 where curVarScope == null
931 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
934 - Better handling of empty attributes (vs not being specified)
935 - Bug in handling #default
937 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
939 * Compiler.cs: Off by one when parsing localname of QName
940 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
941 children (so that they get overriden)
943 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
945 * GenericOutputter.cs: Output attributes in order recieved; not
946 required by spec, but useful for running test cases.
948 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
950 * GenericOutputter.cs - fix bug with outputting state.
951 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
952 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
954 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
956 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
957 exprs on use, pass to nav.
959 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
961 * Compiler.cs: pass satic context to Pattern ctor.
963 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
966 GenericOutputter.cs - generic Outputter implementation,
967 Attribute.cs - represents outputted attribute,
968 Emitter.cs - abstract output emitter,
969 TextEmitter.cs - text emitter,
970 XmlWriterEmitter.cs - emitter to XmlWriter.
971 * Checking of duplicating attributes is done in GenericOutputter.
972 * Namespace outputting logic is implemented in GenericOutputter.
973 * Outputter.cs: Writing namespace declarations is delegated to
974 derived classes (GenericOutputter).
975 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
977 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
979 * XslTransformProcessor.cs: evaluate variables at beginning
980 when / is current node.
982 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
984 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
985 Fix up namespace handeling
987 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
989 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
991 * XslDecimalFormat.cs: Stub for decimal-format.
993 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
995 * TextOutputter.cs: Add option to ignore element content (Oleg).
997 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
999 * Compiler.cs: Really give null for blank avt's
1001 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1003 * Compiler.cs: Fixed lre/lre04.
1005 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1007 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
1008 won't have default namespace. See http://www.w3.org/TR/xslt#qname
1010 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1012 * XslTransformProcessor.cs: add support for resolving documents.
1013 * XsltCompiledContext: add support for document () function.
1015 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1017 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
1018 of the abstract methods in Outputter, making them call other
1019 functions with default values, remove impl's in derived classes.
1021 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1023 * Outputter.cs: s/Close/Done
1024 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
1025 * XslTransformProcessor.cs: Flush output when popping, pop at end.
1027 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1029 * Outputter.cs: Add support for namespaces.
1031 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1033 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
1034 XslTransformProcessor.cs: move output logic from XslStylesheet to
1037 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1039 * XslOutput.cs: add support for encoding.
1041 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1043 * *.cs: Support for xsl:output. (Oleg)
1045 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1047 * Compiler.cs: handle extension and excluded namespaces.
1049 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1051 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
1052 from the stylesheet for correct namespace resolution.
1054 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1056 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
1057 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
1059 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
1061 * XslTransformProcessor.cs: Add a table to detect when an object
1063 * XslAttributeSet.cs: Use the above table. Dont throw nullref
1064 exception when no use-attribute-sets are specified.
1066 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1068 * Compiler.cs: Add support for boolean attributes (yes/no).
1070 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1072 * Compiler.cs: Add method LocalNameOf, to get the local name of a
1074 * XslTransformProcessor.cs: Support for setting the XmlResolver.
1076 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1078 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
1080 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1082 * XslTransformProcessor.cs: Add EvaluateNumber method.
1084 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1086 * XsltCompiledContext.cs: Implement more functions.
1088 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1090 * Compiler.cs: Add support for key, utility function to parse
1091 QName's from the XsltContext. Store keys in the CompiledStyle, not
1093 * XslKey.cs: Real implementation
1094 * XslStylesheet.cs: Move the keys to CompiledStyle.
1095 * XsltCompiledContext.cs: Implement the key function
1097 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1099 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1100 the functions ;-). Also wrote current ().
1102 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1104 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1105 done in XPath. Add stubs for XSLT functions.
1107 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1109 * Compiler.cs: To resolve a variable you now need to pass the
1110 processor, so that it can be passed to IsEvaluated. A local will
1111 only be resolved if it has already been evaluated.
1112 * XsltCompiledContext.cs: Pass along the processor.
1114 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1116 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1117 variable values in the XslTransformProcessor.
1118 * XsltCompiledContext.cs: If the scope is null, don't look there!
1119 * Debug.cs: New method Assert
1121 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1123 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1124 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1125 internal methods in XPathNavigator. Remove verbose debugging messages.
1127 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>