1 2005-12-23 Gert Driesen <drieseng@users.sourceforge.net>
3 * ScriptCompilerInfo.cs: Fixed line endings.
4 * XslStylesheet.cs: Beautify error messages.
5 * Debug.cs: Fixed line endings.
6 * XslOutput.cs: Indent is now bool instead of string, use
7 MoveToAttribute to navigate through attributes instead of using
8 GetAttribute, as we also need to distinguish attributes with
9 zero-length value from attributes that are not specified for
10 correct implementation of DOCTYPE. Implemented validation for
11 value of "omit-xml-declaration", "standalone" and "indent".
12 We now throw a XsltCompileException for unknown attribute.
13 * XmlWriterEmitter.cs: only skip WriteDocType is systemId is null.
14 * HtmlEmitter.cs: XslOutput.Indent is now bool. Fixed WriteDocType
16 * XmlDecimalFormat.cs: Beautify error messages.
17 * XslTemplate.cs: Beautify error messages.
18 * GenericOutputter.cs: XslOutput.Indent is now bool.
19 * Compiler.cs: Beautify error messages.
21 2005-12-21 Atsushi Enomoto <atsushi@ximian.com>
23 * XslTemplate.cs : don't check name and mode attributes on
24 non-'xsl:template' element. This should fix bug #77051.
26 2005-12-13 Andrew Skiba <andrews@mainsoft.com>
28 * XslDecimalFormat.jvm.cs: set correct defaults for NaN and Infinity
30 2005-11-30 Atsushi Enomoto <atsushi@ximian.com>
32 * ScriptCompilerInfo.cs : (VBCompilerInfo) There was a space between
33 '#' and 'ExternalResource'. bug #75789 should be fixed.
35 2005-11-23 Vladimir Krasnov <vladimirk@mainsoft.com>
37 * XslKey.cs: fixed KeyIndexTable.Evaluate method, changed
38 XPathNavigator given to GetNodesByValue()
40 2005-11-17 Atsushi Enomoto <atsushi@ximian.com>
42 * XslCompiledContext.cs : since XsltContextInfo is struct, having
43 an array of this type and setting fields of each struct didn't
44 make sense. It thus blocked expected PreserveWhitespace behavior.
46 2005-10-24 Atsushi Enomoto <atsushi@ximian.com>
48 * Compiler.cs : (FromString(s, hashtable)) pull default namespace
49 from the table for LRE (don't consider it as ""; spec. 7.1.2)
52 2005-09-16 Atsushi Enomoto <atsushi@ximian.com>
54 * ScriptCompilerInfo.cs : Compile correct replacement result.
57 2005-09-10 Atsushi Enomoto <atsushi@ximian.com>
59 * Compiler.cs : (Compile) check children only when it is the document
60 element. Fixed bug #76046.
62 2005-08-25 Atsushi Enomoto <atsushi@ximian.com>
64 * ScriptCompilerInfo.cs : It should not be "#line" when the source is
65 not C#. It should fix bug #75789.
67 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
69 * XslKey.cs : Fixed match pattern in xsl:key to check attribute nodes.
70 To minimize attribute iteration, use Pattern.EvaluatedNodeType.
73 2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
75 * XslFunctions.cs : XslTransform recovers from errors on document
76 resolution. Fixed bug #75663.
78 2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
80 * HtmlEmitter.cs : Boolean attribute values should be omitted, but
81 only for related elements.
83 2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
85 * MSXslScriptManager.cs : it should ignore compiler warnings. This
88 2005-04-07 Andrew Skiba <andrews@mainsoft.com>
90 * XslDecimalFormat.jvm.cs : added
92 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
94 * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
95 support CodeDom). Use Guid.ToString("N").
97 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
99 * Compiler.cs : removed extraneous using_directive.
101 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
103 * XslKey.cs : the iterator does not require sorting (already sorted).
106 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
109 Variables are stored per stylesheet and added to compiler after
110 all of the contents are processed (handle import precedence).
111 Imports are now processed in prior to other contents (incorrect
112 imports are now rejected). After imports, process includes to
113 process nested imports. In-process included stylesheets are
114 temporarily stored in including stylesheet.
115 Handle keys like variables are handled.
116 Added Compile() that is splitted from .ctor().
118 Store keys in compiler and compiled stylesheet.
119 Duplicate variables in imports are now overriden as expected.
120 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
122 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
124 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
125 from each EvaluateXXX() methods.
126 * MsxslScriptManager.cs : not to leave reference to stylesheet
127 navigator, pass current node to Compile().
128 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
129 navigator cache for each pattern, to avoid Clone() and not to leave
130 reference to already-done instance navigator.
132 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
134 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
135 * XslKey.cs : Use XSLT pattern parser for match.
136 UsePattern is now "Use" (it is not a pattern).
137 Reimplemented Evaluate() to make full use of index table.
138 Added Matches() to handle shorter match evaluation. For const value
139 for key (e.g. key patterns), it could avoid Evaluate().
140 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
141 new KeyIndexTable.Matches().
142 * XslFunctions.cs : Added PatternMatches() that just delegates to new
143 XsltCompiledContext.MatchesKey().
145 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
147 * GenericOutputter.cs : commented out warned fields.
149 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
151 * XslKey.cs : removed last ListIterator.ctor() argument.
152 Reverted the last commit that changed internal key index change
153 from ArrayList to Hashtable. Avoid clone in CollectIndex().
154 Sort results in Evaluate() before passing list to ListIterator.
155 * XslFunctions.cs : removed last ListIterator.ctor() argument.
157 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
160 XsltCompiledContext.cs,
162 XslTransformProcessor.cs : Now dynamic context key index table is
163 separate from XslKey static context. Added KeyIndexTable class and
164 store it into XsltCompiledContext with hash name-table mapping.
165 Cache map from statically-named key to index table.
166 Use Hashtable for internal key cache instead of ArrayList.
168 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
170 * XslKey.cs : fixed node iteration on collecting key indices which
171 could have resulted in an infinite loop.
173 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
175 * XslDecimalFormat.cs : in some cases it does not throw format
178 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
180 * XsltCompiledContext.cs,
181 XslStylesheet.cs : Fixed significant performance loss on whitespace
184 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
186 * XslKey.cs : removed unused NeedAbsoluteMatching.
187 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
188 Added some missing ToString() overrides.
190 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
192 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
193 to work fine with xsl:*-space attributes as expected.
194 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
195 actually nothing. It should not use XsltContext.PreserveWhitespace()
196 because this method is used to control output, while the referenced
197 method is used to control source document.
199 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
201 * XslTemplate.cs : First non-element content were incorrectly ignored.
203 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
205 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
206 to reduce references to stylesheet XPathNavigator. To accomplish it,
207 IStaticXsltContext does not declare GetNsm() anymore. All xslt
208 function types now directly hold IStaticXsltContext.
209 * XslStylesheet.cs : removed "Compiler c" field.
210 Removed unused properties.
212 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
214 * GenericOutputter.cs : When WriteStartElement() requires to add
215 new namespace declaration, _currentNamespaceDecls needs to be set.
217 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
219 * GenericOutputter.cs : for duplicate attribute in an element, no need
220 to keep previous prefix.
222 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
224 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
225 namespace. Rewrite prefix only when there is non-empty namespace.
227 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
229 * XslStylesheet.cs : Now namespace aliases are collected in prior to
230 all other toplevel elements. Removed unused code.
232 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
234 * GenericOutputter.cs : compute attribute prefix only when actual
235 emission. Fixed some cases that namespace output was missing.
237 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
239 * GenericOutputter.cs : no need to use two collections to store
240 pending attributes. Just use ordered ListDictionary.
241 newNamespace.Add(int) causes extraneous boxing.
243 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
245 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
246 OutputLiteralNamespaceUriNodes() so that everyone can understand
247 what it means and when it should be invoked.
249 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
251 * Compiler.cs : added another CompileTemplateContent() which is
252 requred in xsl:for-each. Commented out unused method.
254 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
256 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
257 in stylesheet should be considered in TryElementNamespacesOutput().
258 ParseQNameListAttribute() is not properly working for filling
261 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
263 * XslStylesheet.cs : included stylesheet could be literal result
264 element as stylesheet (see the spec 2.6.1).
266 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
268 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
269 empty string when nsURI is empty.
270 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
271 unlike xml but like span, as written in the spec 16.2.
273 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
275 * XslCompiledContext.cs, XslTransformProcessor.cs :
276 According to errata E25, those namespaces 1) that has the same
277 name as current element's prefix, or an empty name when current
278 element's namespace URI is empty, are not written to output.
279 So added current element information to XPathContext and added
280 prefix parameter to PushElementState(), added xsl:copy check to
281 TryElementNamespacesOutput().
282 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
284 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
286 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
289 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
291 * XslTemplate.cs : According to the spec 5.7, it is an error for
292 xsl:template to have 'mode' without 'match'.
294 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
296 * Compiler.cs : added ns lookup with nsDecls Hashtable.
298 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
300 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
302 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
304 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
305 namespace "http://www.w3.org/XML/1998/namespace".
307 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
309 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
310 * HtmlEmitter.cs : CDATA nodes are written just as text.
311 * GenericOutputter.cs : custom format are treated just as XML output.
313 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
317 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
318 and WriteState. Writing XML declaration is done inside
319 DetermineOutputMethod().
321 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
323 * Compiler.cs : reverted previous fix, since it should be done
324 in XslTransformProcessor with root stylesheet.
325 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
326 don't output alias namespaces. And now consider null exclusions.
328 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
330 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
332 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
334 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
335 namespace nodes. Patch by Andrew Skiba with some fixes.
336 * XslTransformProcessor.cs : Patch by Andrew Skiba.
337 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
338 as to handle all namespace nodes to copy in stylesheet nodes.
339 Global parameterss are evaluated before global variables.
340 * XmlOutputter.cs : removed unused code.
344 * Actually variables and params should check reference recursion.
345 This patch incompletely fixes the problem.
346 * Those operations that considers excluded-result-prefixes must
347 also check those attributes of its ancestors.
349 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
351 * XmlWriterEmitter.cs : String.Replace() was insufficient for
352 sequential candidates for replacement. Patch by Andrew Skiba.
354 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
356 * GenericOutputter.cs : don't output extraneous xml declaration.
359 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
361 * XslStylesheet.cs : MS implementation had chosen to recover from
362 the error, in the way specified in the spec 7.7.1. Patch by Andrew
365 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
367 * XslTemplate.cs : if input is literal result element, it could result
368 in ArgumentException. Patch by Andrew Skiba.
370 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
372 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
373 NullReferenceException. Patch by Andrew Skiba.
375 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
377 * XslOutput.cs : MS.NET recovers from unknown encoding according to
378 XSLT spec 16.1. Patch by Andrew Skiba.
380 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
382 * HtmlEmitter.cs : patch by Andrew Skiba.
383 Remove extra element prefix output. simplify attribute prefix output.
384 Attribute output might have resulted in invalid element stack peek.
385 Output specified media type if any.
387 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
389 * Compiler.cs : Patch by Andrew Skiba.
390 wrap internal exception with XsltCompileException.
391 Raise an error for not-found document URI.
392 QName might contain sequential whitespaces and thus could be empty.
394 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
396 * XslAttributeSet.cs : just ignore other kind of nodes than element
397 in its content. Fix by Andrew Skiba.
399 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
401 * XslOutput.cs : for html and text output mode, just set internal
402 omitXmlDeclaration status true. Patch by Andrew Skiba.
404 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
406 * XslFunctions.cs : fixed line ending mixture.
408 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
410 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
413 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
416 Compiler.cs : XmlResolver.ResolveUri() may return null.
418 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
420 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
423 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
425 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
427 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
429 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
432 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
434 * XslStylesheet.cs : removed unused fields.
435 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
438 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
440 * Compiler.cs, XslTransformProcessor.cs :
441 when creating XmlTextReader, reuse XmlNameTable.
443 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
445 * Compiler.cs : Changes that reflects CompiledExpression changes.
447 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
449 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
450 This fixes bug #67390.
452 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
454 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
456 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
458 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
459 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
460 : Globalization. Removed unused code.
462 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
464 * XslKey.cs : Key-value search in absolute path search was
467 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
469 * HtmlEmitter.cs : Correct URL escape implementation.
471 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
473 * XslTransformProcessor.cs : On document() function, close the
474 XmlTextReader opened from uri string.
476 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
479 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
480 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
481 should override another overload.
483 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
485 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
486 assembly should not include the .dll extension.
488 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
491 - CompilePattern() now throws XsltCompileException for invalid
492 pattern, and add error location support.
493 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
494 Now it returns MSXslNodeSet instance (for msxsl:node-set).
495 * Debug.cs : don't throw System.Exception.
496 * XslFunctions.cs : Added MSXslNodeSet class.
497 * XslTemplate.cs : reflected CompilePattern() change.
498 * XslTransformProcessor.cs : don't throw System.Exception.
499 * XsltCompiledContext.cs : don't throw System.Exception.
501 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
505 XslStylesheet.cs : made classes/enums internal.
507 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
509 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
510 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
511 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
512 XslTransformProcessor.cs : Make extra classes internal.
514 * XslKey.cs : It should require sorting.
515 * Debug.cs : Just avoid debug output. Only who want to output should
518 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
520 * GenericOutputter.cs : Culture-independency fix.
521 Replaced StringCollection to ArrayList.
522 * XslOutput.cs : Culture-independency fix.
524 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
526 * Compiler.cs : When BaseURI is an empty string, it should not try to
527 create Uri instance. This will fix bug #56832, but not sure.
528 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
529 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
530 should be the TextReader's NewLine).
531 * MSXslScriptManager.cs : Should raise an error when the prefix which
532 was specified by "implements-prefix" was not found.
534 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
536 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
537 when BaseURI for msxsl:script node is not available. This fixes
539 Don't output line number in the error message, when it is 0.
541 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
543 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
545 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
550 XslTransformProcessor.cs :
551 Throw specific types of exceptions instead of Exception.
552 * XslFunctions.cs, XsltCompiledContext.cs :
553 added node argument for XsltExtensionFunction ctor() etc.
555 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
557 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
558 CodeDom. Compilation error should be caught. This fixes bug #55875.
560 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
562 * XslStylesheet.cs : "version" attribute is also required for embedded
565 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
568 XslStylesheet.cs : Reject xsl element other than stylesheet and
569 transform. Check mandatory version attribute (only for existence).
571 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
573 * MSXslScriptManager.cs : if extension namespace was not found in
574 the script, just return null. Patch by Joshua Tauberer.
576 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
578 * XslLiteralElement.cs : quick fix for ArgumentNullException which
579 was because of the combination of non-namespaced instances and
580 exclude-result-prefixes.
582 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
584 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
585 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
586 * XslFunctions.cs : hereby Added.
587 * Compiler.cs : Removed deleted usingdecl.
589 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
591 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
592 * XslKey.cs : Added ExprKeyContainer expression type, which is
593 designed to be matched at any level.
594 * Compiler.cs : support for ExprKeyContainer.
596 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
598 * XslKey.cs : Now it collects key and matching nodes at the first
599 evaluation time. After that, we can just get them from the table.
600 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
601 prohibited key() usage in "match" and "use" attributes in xsl:key.
602 Modified accessibility of some classes.
603 * GenericOutputter.cs,
607 XmlWriterEmitter.cs : made classes internal.
608 * XslOutput.cs : support line info for exception.
609 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
611 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
613 * XsltCompiledContext.cs : fixed the length of context info array.
615 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
617 * XsltCompiledContext.cs :
618 replaced EnumeratorIterator with ListIterator
620 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
622 * GenericOutputter.cs,
625 XslTemplate.cs : tiny foreach elimination.
627 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
629 * XslOutput.cs : Reverted. default encoding should be utf-8.
631 2004-01-14 Jackson Harper <jackson@ximian.com>
633 * GenericOutputter.cs: Add constructors that do not take an
634 encoding to fix build.
636 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
638 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
639 write XML declaration. It means that output supports non document
640 entity. This fixes bug #52729.
641 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
642 modified WriteStartDocument() signature to receive Encoding.
643 * GenericOutputter.cs :
644 - Added .ctor() which receives Encoding. (It is used for TextWriter
645 output to get actual encoding.)
646 - Added .ctor() to take an boolean argument which indicates it is
647 variable content or not. (When variable, it does not call
648 WriteStartDocument().)
650 XsltCompiledContext.cs : comment out WriteLine().
651 * XslOutput.cs : set default encoding utf-16.
653 2004-01-08 Nick Drochak <ndrochak@ieee.org>
655 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
657 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
659 * XslDecimalFormat.cs : implemented format-number() other than number
661 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
662 catch ArgumentException which will be thrown by formatting process.
664 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
666 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
668 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
670 * XsltCompiledContext.cs: Remove workaround now that monodoc
673 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
675 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
676 aliases at compilation time, so evaluate at the first run-time.
678 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
680 * GenericOutputter.cs : support for runtime-determined output type.
681 * HtmlEmitter.cs : Fixed invalid doctype output.
682 Fixed incorrect double attribute output on non-HTML elements.
683 Improved indentation. Fixed "selected" attribute output.
684 Don't have to convert "'" to "'".
685 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
686 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
687 * XslStylesheet.cs, XsltCompiledContext.cs :
688 space resolution consideration for import and wildcard.
690 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
692 * Compiler.cs, XslTransformProcessor.cs :
693 Use XmlValidatingReader to support id() for external stylesheets.
694 * XslKey.cs, XsltCompiledContext.cs :
695 to evaluate MatchPattern and UsePattern, SetContext() is required.
696 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
698 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
700 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
701 Added WriteWhitespace().
702 * GenericOutputter.cs, XslTemplate.cs : Call above.
703 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
704 CurrentNode in for-each context have to be pulled at evaluation.
706 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
708 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
709 function for bugzilla #52144. It should be reverted soon.
711 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
713 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
715 * MSMslScriptManager.cs : modified generated assembly class to be unique
716 through running AppDomain.
717 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
718 arguments to actual argument types. Bugzilla #51450 should be fixed.
720 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
722 * HtmlEmitter.cs : Fixed incorrect character entity output.
724 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
726 * Added ScriptCompilerInfo.cs.
727 * MSXslScriptManager.cs : Fixed *true* author's name.
728 Implemented basic msxsl:script support.
729 * Compiler.cs : Added Evidence member.
731 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
733 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
734 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
735 Added WriteWhitespace() to assure not writing whitespaces as cdata.
736 * XslAttributeSet.cs : Error check if attribute-set contains other than
737 xsl:attribute. Error should be XsltException.
738 * XslDecimalFormat.cs : Complete equality check. Allow just one
739 character value for some attributes.
740 * XslStylesheet.cs : Made whitespace control setting overridable.
741 Added Version property (for the future compatibility mode).
742 Check unrecongnized top level element.
743 * XslTemplate.cs : Check priority as a number.
744 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
745 for xsl:preserve-space and xsl:strip-space support.
746 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
747 incomplete), PushScope and Pop
749 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
751 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
753 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
755 * Compiler.cs : In FromListString(), it should use default ns,
757 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
758 precedence. Doctype should be written even if SYSTEM id is absent.
759 Fixed possible multiple xmlns output.
761 - Encoding output using META element.
762 - Doctype name is fixed (html).
763 - Double quotation on PUBLIC and SYSTEM missing.
764 - Fixed incorrect tag name check for IMG.
765 - '>' should not be escaped.
766 * XmlWriterEmitter.cs :
767 Added newline before doctype. In WriteComment(), "--" and tail
768 '-' are not allowed (it escapes, while XmlWriter simply rejects).
769 * XslTransformProcessor.cs : cdata-section-elements should enclose
770 direct child tests only. Added PreserveWhitespace() (incomplete).
771 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
773 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
775 * IdPattern.cs : This should work against multiple ids.
777 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
780 * MSXslScriptManager.cs
782 * XslTransformProcessor.cs
783 * XsltCompiledContext.cs: Some work on msxsl script.
785 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
787 (in general: cdata-section-elements support, correct document()
788 base uri handling, and so on)
789 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
790 And move to document element. Added XslNameUtil.FromListString().
791 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
792 Added WriteCDataSection().
793 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
794 Added InsideCDataSection.
795 * GenericOutputter.cs :
796 In .ctor(), WriteState should be succeeded from output XmlWriter.
797 WriteNamespaceDecl() now drops declaration identical to existing one.
798 Removed obsolete htmlEmulation.
799 * XslOutput.cs : Added CDataSectionElements support.
800 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
801 * XslTransformProcessor.cs :
802 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
803 now considers xsl:exclude-element-prefixes on literal element.
804 Added PushCDataState() and PopCDataState().
805 * XsltCompiledContext.cs : When base uri of document() target is empty,
806 then it should use stylesheet's BaseURI, not that of current document.
808 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
810 * Compiler.cs : Modified decimal-format comparison code.
813 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
814 be called only when required.
815 * HtmlEmitter.cs : Improved indentation stuff.
816 * XslDecimalFormat.cs : Added incomplete implementation of
817 CheckSameAs() and FormatNumber().
819 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
820 from StringDictionary to ArrayList of QName (to keep order).
822 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
824 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
825 node type (i.e. attribute and namespace). Removed extraneous Clone().
826 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
828 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
830 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
831 XslStylesheet.cs : Added Keys support here.
832 * XslTransformProcessor.cs : Should call SetContext() to expressions
833 before evaluating current nodes.
834 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
835 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
836 for KeyPattern. It now uses CompiledStyle.FindKeys().
838 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
840 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
841 to Xalan tests and MS.NET implementation (only for test convenience).
842 * XslOutput.cs : Indent holds string rathen than bool. Its default value
843 varies in the context. When method="html", then default is "yes".
844 * XslTransformProcessor.cs : Extension element prefixes should not
845 be written as stylesheet namespaces.
846 * XsltCompiledContext.cs : Return type of generate-id() is string.
847 Implemented unparsed-entity-uri().
849 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
851 * Compiler.cs : More complete attribute set gathering.
852 GetNamespacesToCopy() should only return Local namespaces.
853 * GenericOutputter.cs : Added support for indentation.
854 Added easy hack for html output.
855 More correct Prefix handling (considers already defined ones).
856 Namespace emmission is moved to CheckState().
857 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
858 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
859 * GenericOutputter.cs, Outputter.cs :
860 Added CanProcessAttributes property for
861 use-attribute-sets of xsl:copy.
862 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
863 Added support for exclude-result-prefixes.
864 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
866 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
868 * Compiler.cs : It is not important, but attribute order became closer
869 to MS.NET and Xalan (assuming from OASIS tests).
871 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
873 * GenericOutputter.cs : Attribute wasn't overwritten its properties
874 because Attribute is struct it was let to another local variable.
876 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
878 * GenericOutputter.cs: make html output a warning, because doing
879 xml will be right most of the time.
881 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
883 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
884 here for a long time and it hurts thread safty and memory
887 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
889 * Compiler.cs: save the parser (will reduce memory allocation when
890 Jackson's jay patch is committed).
892 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
894 * Attribute.cs: Change to struct. Remove QName class.
895 * GenericOutputter.cs: use an Attribute [] rather than an
896 ArrayList. Allows us not to allocate Attributes, which is great
897 for speed. Roll our own allocation.
899 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
901 * Compiler.cs: add GetNsm to main class as well.
903 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
905 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
906 internal version so we get null if the attr doesnt exist.
908 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
910 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
911 where curVarScope == null
913 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
916 - Better handling of empty attributes (vs not being specified)
917 - Bug in handling #default
919 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
921 * Compiler.cs: Off by one when parsing localname of QName
922 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
923 children (so that they get overriden)
925 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
927 * GenericOutputter.cs: Output attributes in order recieved; not
928 required by spec, but useful for running test cases.
930 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
932 * GenericOutputter.cs - fix bug with outputting state.
933 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
934 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
936 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
938 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
939 exprs on use, pass to nav.
941 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
943 * Compiler.cs: pass satic context to Pattern ctor.
945 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
948 GenericOutputter.cs - generic Outputter implementation,
949 Attribute.cs - represents outputted attribute,
950 Emitter.cs - abstract output emitter,
951 TextEmitter.cs - text emitter,
952 XmlWriterEmitter.cs - emitter to XmlWriter.
953 * Checking of duplicating attributes is done in GenericOutputter.
954 * Namespace outputting logic is implemented in GenericOutputter.
955 * Outputter.cs: Writing namespace declarations is delegated to
956 derived classes (GenericOutputter).
957 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
959 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
961 * XslTransformProcessor.cs: evaluate variables at beginning
962 when / is current node.
964 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
966 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
967 Fix up namespace handeling
969 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
971 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
973 * XslDecimalFormat.cs: Stub for decimal-format.
975 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
977 * TextOutputter.cs: Add option to ignore element content (Oleg).
979 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
981 * Compiler.cs: Really give null for blank avt's
983 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
985 * Compiler.cs: Fixed lre/lre04.
987 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
989 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
990 won't have default namespace. See http://www.w3.org/TR/xslt#qname
992 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
994 * XslTransformProcessor.cs: add support for resolving documents.
995 * XsltCompiledContext: add support for document () function.
997 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
999 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
1000 of the abstract methods in Outputter, making them call other
1001 functions with default values, remove impl's in derived classes.
1003 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1005 * Outputter.cs: s/Close/Done
1006 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
1007 * XslTransformProcessor.cs: Flush output when popping, pop at end.
1009 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1011 * Outputter.cs: Add support for namespaces.
1013 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
1015 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
1016 XslTransformProcessor.cs: move output logic from XslStylesheet to
1019 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1021 * XslOutput.cs: add support for encoding.
1023 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1025 * *.cs: Support for xsl:output. (Oleg)
1027 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1029 * Compiler.cs: handle extension and excluded namespaces.
1031 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1033 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
1034 from the stylesheet for correct namespace resolution.
1036 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1038 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
1039 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
1041 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
1043 * XslTransformProcessor.cs: Add a table to detect when an object
1045 * XslAttributeSet.cs: Use the above table. Dont throw nullref
1046 exception when no use-attribute-sets are specified.
1048 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1050 * Compiler.cs: Add support for boolean attributes (yes/no).
1052 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1054 * Compiler.cs: Add method LocalNameOf, to get the local name of a
1056 * XslTransformProcessor.cs: Support for setting the XmlResolver.
1058 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1060 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
1062 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1064 * XslTransformProcessor.cs: Add EvaluateNumber method.
1066 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1068 * XsltCompiledContext.cs: Implement more functions.
1070 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1072 * Compiler.cs: Add support for key, utility function to parse
1073 QName's from the XsltContext. Store keys in the CompiledStyle, not
1075 * XslKey.cs: Real implementation
1076 * XslStylesheet.cs: Move the keys to CompiledStyle.
1077 * XsltCompiledContext.cs: Implement the key function
1079 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1081 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1082 the functions ;-). Also wrote current ().
1084 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1086 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1087 done in XPath. Add stubs for XSLT functions.
1089 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1091 * Compiler.cs: To resolve a variable you now need to pass the
1092 processor, so that it can be passed to IsEvaluated. A local will
1093 only be resolved if it has already been evaluated.
1094 * XsltCompiledContext.cs: Pass along the processor.
1096 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1098 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1099 variable values in the XslTransformProcessor.
1100 * XsltCompiledContext.cs: If the scope is null, don't look there!
1101 * Debug.cs: New method Assert
1103 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1105 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1106 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1107 internal methods in XPathNavigator. Remove verbose debugging messages.
1109 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>