1 2005-11-30 Atsushi Enomoto <atsushi@ximian.com>
3 * ScriptCompilerInfo.cs : (VBCompilerInfo) There was a space between
4 '#' and 'ExternalResource'. bug #75789 should be fixed.
6 2005-11-23 Vladimir Krasnov <vladimirk@mainsoft.com>
8 * XslKey.cs: fixed KeyIndexTable.Evaluate method, changed
9 XPathNavigator given to GetNodesByValue()
11 2005-11-17 Atsushi Enomoto <atsushi@ximian.com>
13 * XslCompiledContext.cs : since XsltContextInfo is struct, having
14 an array of this type and setting fields of each struct didn't
15 make sense. It thus blocked expected PreserveWhitespace behavior.
17 2005-10-24 Atsushi Enomoto <atsushi@ximian.com>
19 * Compiler.cs : (FromString(s, hashtable)) pull default namespace
20 from the table for LRE (don't consider it as ""; spec. 7.1.2)
23 2005-09-16 Atsushi Enomoto <atsushi@ximian.com>
25 * ScriptCompilerInfo.cs : Compile correct replacement result.
28 2005-09-10 Atsushi Enomoto <atsushi@ximian.com>
30 * Compiler.cs : (Compile) check children only when it is the document
31 element. Fixed bug #76046.
33 2005-08-25 Atsushi Enomoto <atsushi@ximian.com>
35 * ScriptCompilerInfo.cs : It should not be "#line" when the source is
36 not C#. It should fix bug #75789.
38 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
40 * XslKey.cs : Fixed match pattern in xsl:key to check attribute nodes.
41 To minimize attribute iteration, use Pattern.EvaluatedNodeType.
44 2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
46 * XslFunctions.cs : XslTransform recovers from errors on document
47 resolution. Fixed bug #75663.
49 2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
51 * HtmlEmitter.cs : Boolean attribute values should be omitted, but
52 only for related elements.
54 2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
56 * MSXslScriptManager.cs : it should ignore compiler warnings. This
59 2005-04-07 Andrew Skiba <andrews@mainsoft.com>
61 * XslDecimalFormat.jvm.cs : added
63 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
65 * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
66 support CodeDom). Use Guid.ToString("N").
68 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
70 * Compiler.cs : removed extraneous using_directive.
72 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
74 * XslKey.cs : the iterator does not require sorting (already sorted).
77 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
80 Variables are stored per stylesheet and added to compiler after
81 all of the contents are processed (handle import precedence).
82 Imports are now processed in prior to other contents (incorrect
83 imports are now rejected). After imports, process includes to
84 process nested imports. In-process included stylesheets are
85 temporarily stored in including stylesheet.
86 Handle keys like variables are handled.
87 Added Compile() that is splitted from .ctor().
89 Store keys in compiler and compiled stylesheet.
90 Duplicate variables in imports are now overriden as expected.
91 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
93 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
95 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
96 from each EvaluateXXX() methods.
97 * MsxslScriptManager.cs : not to leave reference to stylesheet
98 navigator, pass current node to Compile().
99 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
100 navigator cache for each pattern, to avoid Clone() and not to leave
101 reference to already-done instance navigator.
103 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
105 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
106 * XslKey.cs : Use XSLT pattern parser for match.
107 UsePattern is now "Use" (it is not a pattern).
108 Reimplemented Evaluate() to make full use of index table.
109 Added Matches() to handle shorter match evaluation. For const value
110 for key (e.g. key patterns), it could avoid Evaluate().
111 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
112 new KeyIndexTable.Matches().
113 * XslFunctions.cs : Added PatternMatches() that just delegates to new
114 XsltCompiledContext.MatchesKey().
116 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
118 * GenericOutputter.cs : commented out warned fields.
120 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
122 * XslKey.cs : removed last ListIterator.ctor() argument.
123 Reverted the last commit that changed internal key index change
124 from ArrayList to Hashtable. Avoid clone in CollectIndex().
125 Sort results in Evaluate() before passing list to ListIterator.
126 * XslFunctions.cs : removed last ListIterator.ctor() argument.
128 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
131 XsltCompiledContext.cs,
133 XslTransformProcessor.cs : Now dynamic context key index table is
134 separate from XslKey static context. Added KeyIndexTable class and
135 store it into XsltCompiledContext with hash name-table mapping.
136 Cache map from statically-named key to index table.
137 Use Hashtable for internal key cache instead of ArrayList.
139 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
141 * XslKey.cs : fixed node iteration on collecting key indices which
142 could have resulted in an infinite loop.
144 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
146 * XslDecimalFormat.cs : in some cases it does not throw format
149 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
151 * XsltCompiledContext.cs,
152 XslStylesheet.cs : Fixed significant performance loss on whitespace
155 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
157 * XslKey.cs : removed unused NeedAbsoluteMatching.
158 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
159 Added some missing ToString() overrides.
161 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
163 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
164 to work fine with xsl:*-space attributes as expected.
165 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
166 actually nothing. It should not use XsltContext.PreserveWhitespace()
167 because this method is used to control output, while the referenced
168 method is used to control source document.
170 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
172 * XslTemplate.cs : First non-element content were incorrectly ignored.
174 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
176 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
177 to reduce references to stylesheet XPathNavigator. To accomplish it,
178 IStaticXsltContext does not declare GetNsm() anymore. All xslt
179 function types now directly hold IStaticXsltContext.
180 * XslStylesheet.cs : removed "Compiler c" field.
181 Removed unused properties.
183 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
185 * GenericOutputter.cs : When WriteStartElement() requires to add
186 new namespace declaration, _currentNamespaceDecls needs to be set.
188 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
190 * GenericOutputter.cs : for duplicate attribute in an element, no need
191 to keep previous prefix.
193 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
195 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
196 namespace. Rewrite prefix only when there is non-empty namespace.
198 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
200 * XslStylesheet.cs : Now namespace aliases are collected in prior to
201 all other toplevel elements. Removed unused code.
203 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
205 * GenericOutputter.cs : compute attribute prefix only when actual
206 emission. Fixed some cases that namespace output was missing.
208 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
210 * GenericOutputter.cs : no need to use two collections to store
211 pending attributes. Just use ordered ListDictionary.
212 newNamespace.Add(int) causes extraneous boxing.
214 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
216 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
217 OutputLiteralNamespaceUriNodes() so that everyone can understand
218 what it means and when it should be invoked.
220 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
222 * Compiler.cs : added another CompileTemplateContent() which is
223 requred in xsl:for-each. Commented out unused method.
225 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
227 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
228 in stylesheet should be considered in TryElementNamespacesOutput().
229 ParseQNameListAttribute() is not properly working for filling
232 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
234 * XslStylesheet.cs : included stylesheet could be literal result
235 element as stylesheet (see the spec 2.6.1).
237 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
239 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
240 empty string when nsURI is empty.
241 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
242 unlike xml but like span, as written in the spec 16.2.
244 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
246 * XslCompiledContext.cs, XslTransformProcessor.cs :
247 According to errata E25, those namespaces 1) that has the same
248 name as current element's prefix, or an empty name when current
249 element's namespace URI is empty, are not written to output.
250 So added current element information to XPathContext and added
251 prefix parameter to PushElementState(), added xsl:copy check to
252 TryElementNamespacesOutput().
253 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
255 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
257 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
260 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
262 * XslTemplate.cs : According to the spec 5.7, it is an error for
263 xsl:template to have 'mode' without 'match'.
265 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
267 * Compiler.cs : added ns lookup with nsDecls Hashtable.
269 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
271 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
273 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
275 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
276 namespace "http://www.w3.org/XML/1998/namespace".
278 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
280 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
281 * HtmlEmitter.cs : CDATA nodes are written just as text.
282 * GenericOutputter.cs : custom format are treated just as XML output.
284 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
288 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
289 and WriteState. Writing XML declaration is done inside
290 DetermineOutputMethod().
292 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
294 * Compiler.cs : reverted previous fix, since it should be done
295 in XslTransformProcessor with root stylesheet.
296 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
297 don't output alias namespaces. And now consider null exclusions.
299 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
301 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
303 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
305 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
306 namespace nodes. Patch by Andrew Skiba with some fixes.
307 * XslTransformProcessor.cs : Patch by Andrew Skiba.
308 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
309 as to handle all namespace nodes to copy in stylesheet nodes.
310 Global parameterss are evaluated before global variables.
311 * XmlOutputter.cs : removed unused code.
315 * Actually variables and params should check reference recursion.
316 This patch incompletely fixes the problem.
317 * Those operations that considers excluded-result-prefixes must
318 also check those attributes of its ancestors.
320 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
322 * XmlWriterEmitter.cs : String.Replace() was insufficient for
323 sequential candidates for replacement. Patch by Andrew Skiba.
325 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
327 * GenericOutputter.cs : don't output extraneous xml declaration.
330 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
332 * XslStylesheet.cs : MS implementation had chosen to recover from
333 the error, in the way specified in the spec 7.7.1. Patch by Andrew
336 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
338 * XslTemplate.cs : if input is literal result element, it could result
339 in ArgumentException. Patch by Andrew Skiba.
341 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
343 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
344 NullReferenceException. Patch by Andrew Skiba.
346 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
348 * XslOutput.cs : MS.NET recovers from unknown encoding according to
349 XSLT spec 16.1. Patch by Andrew Skiba.
351 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
353 * HtmlEmitter.cs : patch by Andrew Skiba.
354 Remove extra element prefix output. simplify attribute prefix output.
355 Attribute output might have resulted in invalid element stack peek.
356 Output specified media type if any.
358 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
360 * Compiler.cs : Patch by Andrew Skiba.
361 wrap internal exception with XsltCompileException.
362 Raise an error for not-found document URI.
363 QName might contain sequential whitespaces and thus could be empty.
365 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
367 * XslAttributeSet.cs : just ignore other kind of nodes than element
368 in its content. Fix by Andrew Skiba.
370 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
372 * XslOutput.cs : for html and text output mode, just set internal
373 omitXmlDeclaration status true. Patch by Andrew Skiba.
375 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
377 * XslFunctions.cs : fixed line ending mixture.
379 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
381 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
384 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
387 Compiler.cs : XmlResolver.ResolveUri() may return null.
389 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
391 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
394 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
396 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
398 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
400 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
403 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
405 * XslStylesheet.cs : removed unused fields.
406 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
409 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
411 * Compiler.cs, XslTransformProcessor.cs :
412 when creating XmlTextReader, reuse XmlNameTable.
414 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
416 * Compiler.cs : Changes that reflects CompiledExpression changes.
418 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
420 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
421 This fixes bug #67390.
423 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
425 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
427 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
429 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
430 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
431 : Globalization. Removed unused code.
433 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
435 * XslKey.cs : Key-value search in absolute path search was
438 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
440 * HtmlEmitter.cs : Correct URL escape implementation.
442 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
444 * XslTransformProcessor.cs : On document() function, close the
445 XmlTextReader opened from uri string.
447 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
450 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
451 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
452 should override another overload.
454 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
456 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
457 assembly should not include the .dll extension.
459 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
462 - CompilePattern() now throws XsltCompileException for invalid
463 pattern, and add error location support.
464 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
465 Now it returns MSXslNodeSet instance (for msxsl:node-set).
466 * Debug.cs : don't throw System.Exception.
467 * XslFunctions.cs : Added MSXslNodeSet class.
468 * XslTemplate.cs : reflected CompilePattern() change.
469 * XslTransformProcessor.cs : don't throw System.Exception.
470 * XsltCompiledContext.cs : don't throw System.Exception.
472 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
476 XslStylesheet.cs : made classes/enums internal.
478 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
480 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
481 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
482 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
483 XslTransformProcessor.cs : Make extra classes internal.
485 * XslKey.cs : It should require sorting.
486 * Debug.cs : Just avoid debug output. Only who want to output should
489 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
491 * GenericOutputter.cs : Culture-independency fix.
492 Replaced StringCollection to ArrayList.
493 * XslOutput.cs : Culture-independency fix.
495 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
497 * Compiler.cs : When BaseURI is an empty string, it should not try to
498 create Uri instance. This will fix bug #56832, but not sure.
499 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
500 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
501 should be the TextReader's NewLine).
502 * MSXslScriptManager.cs : Should raise an error when the prefix which
503 was specified by "implements-prefix" was not found.
505 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
507 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
508 when BaseURI for msxsl:script node is not available. This fixes
510 Don't output line number in the error message, when it is 0.
512 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
514 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
516 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
521 XslTransformProcessor.cs :
522 Throw specific types of exceptions instead of Exception.
523 * XslFunctions.cs, XsltCompiledContext.cs :
524 added node argument for XsltExtensionFunction ctor() etc.
526 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
528 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
529 CodeDom. Compilation error should be caught. This fixes bug #55875.
531 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
533 * XslStylesheet.cs : "version" attribute is also required for embedded
536 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
539 XslStylesheet.cs : Reject xsl element other than stylesheet and
540 transform. Check mandatory version attribute (only for existence).
542 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
544 * MSXslScriptManager.cs : if extension namespace was not found in
545 the script, just return null. Patch by Joshua Tauberer.
547 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
549 * XslLiteralElement.cs : quick fix for ArgumentNullException which
550 was because of the combination of non-namespaced instances and
551 exclude-result-prefixes.
553 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
555 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
556 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
557 * XslFunctions.cs : hereby Added.
558 * Compiler.cs : Removed deleted usingdecl.
560 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
562 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
563 * XslKey.cs : Added ExprKeyContainer expression type, which is
564 designed to be matched at any level.
565 * Compiler.cs : support for ExprKeyContainer.
567 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
569 * XslKey.cs : Now it collects key and matching nodes at the first
570 evaluation time. After that, we can just get them from the table.
571 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
572 prohibited key() usage in "match" and "use" attributes in xsl:key.
573 Modified accessibility of some classes.
574 * GenericOutputter.cs,
578 XmlWriterEmitter.cs : made classes internal.
579 * XslOutput.cs : support line info for exception.
580 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
582 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
584 * XsltCompiledContext.cs : fixed the length of context info array.
586 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
588 * XsltCompiledContext.cs :
589 replaced EnumeratorIterator with ListIterator
591 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
593 * GenericOutputter.cs,
596 XslTemplate.cs : tiny foreach elimination.
598 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
600 * XslOutput.cs : Reverted. default encoding should be utf-8.
602 2004-01-14 Jackson Harper <jackson@ximian.com>
604 * GenericOutputter.cs: Add constructors that do not take an
605 encoding to fix build.
607 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
609 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
610 write XML declaration. It means that output supports non document
611 entity. This fixes bug #52729.
612 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
613 modified WriteStartDocument() signature to receive Encoding.
614 * GenericOutputter.cs :
615 - Added .ctor() which receives Encoding. (It is used for TextWriter
616 output to get actual encoding.)
617 - Added .ctor() to take an boolean argument which indicates it is
618 variable content or not. (When variable, it does not call
619 WriteStartDocument().)
621 XsltCompiledContext.cs : comment out WriteLine().
622 * XslOutput.cs : set default encoding utf-16.
624 2004-01-08 Nick Drochak <ndrochak@ieee.org>
626 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
628 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
630 * XslDecimalFormat.cs : implemented format-number() other than number
632 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
633 catch ArgumentException which will be thrown by formatting process.
635 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
637 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
639 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
641 * XsltCompiledContext.cs: Remove workaround now that monodoc
644 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
646 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
647 aliases at compilation time, so evaluate at the first run-time.
649 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
651 * GenericOutputter.cs : support for runtime-determined output type.
652 * HtmlEmitter.cs : Fixed invalid doctype output.
653 Fixed incorrect double attribute output on non-HTML elements.
654 Improved indentation. Fixed "selected" attribute output.
655 Don't have to convert "'" to "'".
656 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
657 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
658 * XslStylesheet.cs, XsltCompiledContext.cs :
659 space resolution consideration for import and wildcard.
661 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
663 * Compiler.cs, XslTransformProcessor.cs :
664 Use XmlValidatingReader to support id() for external stylesheets.
665 * XslKey.cs, XsltCompiledContext.cs :
666 to evaluate MatchPattern and UsePattern, SetContext() is required.
667 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
669 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
671 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
672 Added WriteWhitespace().
673 * GenericOutputter.cs, XslTemplate.cs : Call above.
674 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
675 CurrentNode in for-each context have to be pulled at evaluation.
677 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
679 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
680 function for bugzilla #52144. It should be reverted soon.
682 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
684 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
686 * MSMslScriptManager.cs : modified generated assembly class to be unique
687 through running AppDomain.
688 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
689 arguments to actual argument types. Bugzilla #51450 should be fixed.
691 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
693 * HtmlEmitter.cs : Fixed incorrect character entity output.
695 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
697 * Added ScriptCompilerInfo.cs.
698 * MSXslScriptManager.cs : Fixed *true* author's name.
699 Implemented basic msxsl:script support.
700 * Compiler.cs : Added Evidence member.
702 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
704 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
705 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
706 Added WriteWhitespace() to assure not writing whitespaces as cdata.
707 * XslAttributeSet.cs : Error check if attribute-set contains other than
708 xsl:attribute. Error should be XsltException.
709 * XslDecimalFormat.cs : Complete equality check. Allow just one
710 character value for some attributes.
711 * XslStylesheet.cs : Made whitespace control setting overridable.
712 Added Version property (for the future compatibility mode).
713 Check unrecongnized top level element.
714 * XslTemplate.cs : Check priority as a number.
715 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
716 for xsl:preserve-space and xsl:strip-space support.
717 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
718 incomplete), PushScope and Pop
720 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
722 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
724 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
726 * Compiler.cs : In FromListString(), it should use default ns,
728 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
729 precedence. Doctype should be written even if SYSTEM id is absent.
730 Fixed possible multiple xmlns output.
732 - Encoding output using META element.
733 - Doctype name is fixed (html).
734 - Double quotation on PUBLIC and SYSTEM missing.
735 - Fixed incorrect tag name check for IMG.
736 - '>' should not be escaped.
737 * XmlWriterEmitter.cs :
738 Added newline before doctype. In WriteComment(), "--" and tail
739 '-' are not allowed (it escapes, while XmlWriter simply rejects).
740 * XslTransformProcessor.cs : cdata-section-elements should enclose
741 direct child tests only. Added PreserveWhitespace() (incomplete).
742 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
744 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
746 * IdPattern.cs : This should work against multiple ids.
748 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
751 * MSXslScriptManager.cs
753 * XslTransformProcessor.cs
754 * XsltCompiledContext.cs: Some work on msxsl script.
756 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
758 (in general: cdata-section-elements support, correct document()
759 base uri handling, and so on)
760 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
761 And move to document element. Added XslNameUtil.FromListString().
762 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
763 Added WriteCDataSection().
764 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
765 Added InsideCDataSection.
766 * GenericOutputter.cs :
767 In .ctor(), WriteState should be succeeded from output XmlWriter.
768 WriteNamespaceDecl() now drops declaration identical to existing one.
769 Removed obsolete htmlEmulation.
770 * XslOutput.cs : Added CDataSectionElements support.
771 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
772 * XslTransformProcessor.cs :
773 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
774 now considers xsl:exclude-element-prefixes on literal element.
775 Added PushCDataState() and PopCDataState().
776 * XsltCompiledContext.cs : When base uri of document() target is empty,
777 then it should use stylesheet's BaseURI, not that of current document.
779 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
781 * Compiler.cs : Modified decimal-format comparison code.
784 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
785 be called only when required.
786 * HtmlEmitter.cs : Improved indentation stuff.
787 * XslDecimalFormat.cs : Added incomplete implementation of
788 CheckSameAs() and FormatNumber().
790 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
791 from StringDictionary to ArrayList of QName (to keep order).
793 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
795 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
796 node type (i.e. attribute and namespace). Removed extraneous Clone().
797 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
799 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
801 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
802 XslStylesheet.cs : Added Keys support here.
803 * XslTransformProcessor.cs : Should call SetContext() to expressions
804 before evaluating current nodes.
805 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
806 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
807 for KeyPattern. It now uses CompiledStyle.FindKeys().
809 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
811 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
812 to Xalan tests and MS.NET implementation (only for test convenience).
813 * XslOutput.cs : Indent holds string rathen than bool. Its default value
814 varies in the context. When method="html", then default is "yes".
815 * XslTransformProcessor.cs : Extension element prefixes should not
816 be written as stylesheet namespaces.
817 * XsltCompiledContext.cs : Return type of generate-id() is string.
818 Implemented unparsed-entity-uri().
820 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
822 * Compiler.cs : More complete attribute set gathering.
823 GetNamespacesToCopy() should only return Local namespaces.
824 * GenericOutputter.cs : Added support for indentation.
825 Added easy hack for html output.
826 More correct Prefix handling (considers already defined ones).
827 Namespace emmission is moved to CheckState().
828 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
829 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
830 * GenericOutputter.cs, Outputter.cs :
831 Added CanProcessAttributes property for
832 use-attribute-sets of xsl:copy.
833 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
834 Added support for exclude-result-prefixes.
835 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
837 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
839 * Compiler.cs : It is not important, but attribute order became closer
840 to MS.NET and Xalan (assuming from OASIS tests).
842 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
844 * GenericOutputter.cs : Attribute wasn't overwritten its properties
845 because Attribute is struct it was let to another local variable.
847 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
849 * GenericOutputter.cs: make html output a warning, because doing
850 xml will be right most of the time.
852 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
854 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
855 here for a long time and it hurts thread safty and memory
858 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
860 * Compiler.cs: save the parser (will reduce memory allocation when
861 Jackson's jay patch is committed).
863 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
865 * Attribute.cs: Change to struct. Remove QName class.
866 * GenericOutputter.cs: use an Attribute [] rather than an
867 ArrayList. Allows us not to allocate Attributes, which is great
868 for speed. Roll our own allocation.
870 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
872 * Compiler.cs: add GetNsm to main class as well.
874 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
876 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
877 internal version so we get null if the attr doesnt exist.
879 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
881 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
882 where curVarScope == null
884 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
887 - Better handling of empty attributes (vs not being specified)
888 - Bug in handling #default
890 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
892 * Compiler.cs: Off by one when parsing localname of QName
893 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
894 children (so that they get overriden)
896 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
898 * GenericOutputter.cs: Output attributes in order recieved; not
899 required by spec, but useful for running test cases.
901 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
903 * GenericOutputter.cs - fix bug with outputting state.
904 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
905 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
907 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
909 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
910 exprs on use, pass to nav.
912 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
914 * Compiler.cs: pass satic context to Pattern ctor.
916 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
919 GenericOutputter.cs - generic Outputter implementation,
920 Attribute.cs - represents outputted attribute,
921 Emitter.cs - abstract output emitter,
922 TextEmitter.cs - text emitter,
923 XmlWriterEmitter.cs - emitter to XmlWriter.
924 * Checking of duplicating attributes is done in GenericOutputter.
925 * Namespace outputting logic is implemented in GenericOutputter.
926 * Outputter.cs: Writing namespace declarations is delegated to
927 derived classes (GenericOutputter).
928 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
930 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
932 * XslTransformProcessor.cs: evaluate variables at beginning
933 when / is current node.
935 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
937 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
938 Fix up namespace handeling
940 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
942 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
944 * XslDecimalFormat.cs: Stub for decimal-format.
946 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
948 * TextOutputter.cs: Add option to ignore element content (Oleg).
950 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
952 * Compiler.cs: Really give null for blank avt's
954 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
956 * Compiler.cs: Fixed lre/lre04.
958 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
960 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
961 won't have default namespace. See http://www.w3.org/TR/xslt#qname
963 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
965 * XslTransformProcessor.cs: add support for resolving documents.
966 * XsltCompiledContext: add support for document () function.
968 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
970 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
971 of the abstract methods in Outputter, making them call other
972 functions with default values, remove impl's in derived classes.
974 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
976 * Outputter.cs: s/Close/Done
977 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
978 * XslTransformProcessor.cs: Flush output when popping, pop at end.
980 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
982 * Outputter.cs: Add support for namespaces.
984 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
986 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
987 XslTransformProcessor.cs: move output logic from XslStylesheet to
990 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
992 * XslOutput.cs: add support for encoding.
994 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
996 * *.cs: Support for xsl:output. (Oleg)
998 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1000 * Compiler.cs: handle extension and excluded namespaces.
1002 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1004 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
1005 from the stylesheet for correct namespace resolution.
1007 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1009 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
1010 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
1012 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
1014 * XslTransformProcessor.cs: Add a table to detect when an object
1016 * XslAttributeSet.cs: Use the above table. Dont throw nullref
1017 exception when no use-attribute-sets are specified.
1019 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1021 * Compiler.cs: Add support for boolean attributes (yes/no).
1023 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1025 * Compiler.cs: Add method LocalNameOf, to get the local name of a
1027 * XslTransformProcessor.cs: Support for setting the XmlResolver.
1029 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1031 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
1033 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1035 * XslTransformProcessor.cs: Add EvaluateNumber method.
1037 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1039 * XsltCompiledContext.cs: Implement more functions.
1041 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1043 * Compiler.cs: Add support for key, utility function to parse
1044 QName's from the XsltContext. Store keys in the CompiledStyle, not
1046 * XslKey.cs: Real implementation
1047 * XslStylesheet.cs: Move the keys to CompiledStyle.
1048 * XsltCompiledContext.cs: Implement the key function
1050 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1052 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1053 the functions ;-). Also wrote current ().
1055 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1057 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1058 done in XPath. Add stubs for XSLT functions.
1060 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1062 * Compiler.cs: To resolve a variable you now need to pass the
1063 processor, so that it can be passed to IsEvaluated. A local will
1064 only be resolved if it has already been evaluated.
1065 * XsltCompiledContext.cs: Pass along the processor.
1067 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1069 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1070 variable values in the XslTransformProcessor.
1071 * XsltCompiledContext.cs: If the scope is null, don't look there!
1072 * Debug.cs: New method Assert
1074 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1076 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1077 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1078 internal methods in XPathNavigator. Remove verbose debugging messages.
1080 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>