1 2005-12-21 Atsushi Enomoto <atsushi@ximian.com>
3 * XslTemplate.cs : don't check name and mode attributes on
4 non-'xsl:template' element. This should fix bug #77051.
6 2005-12-13 Andrew Skiba <andrews@mainsoft.com>
8 * XslDecimalFormat.jvm.cs: set correct defaults for NaN and Infinity
10 2005-11-30 Atsushi Enomoto <atsushi@ximian.com>
12 * ScriptCompilerInfo.cs : (VBCompilerInfo) There was a space between
13 '#' and 'ExternalResource'. bug #75789 should be fixed.
15 2005-11-23 Vladimir Krasnov <vladimirk@mainsoft.com>
17 * XslKey.cs: fixed KeyIndexTable.Evaluate method, changed
18 XPathNavigator given to GetNodesByValue()
20 2005-11-17 Atsushi Enomoto <atsushi@ximian.com>
22 * XslCompiledContext.cs : since XsltContextInfo is struct, having
23 an array of this type and setting fields of each struct didn't
24 make sense. It thus blocked expected PreserveWhitespace behavior.
26 2005-10-24 Atsushi Enomoto <atsushi@ximian.com>
28 * Compiler.cs : (FromString(s, hashtable)) pull default namespace
29 from the table for LRE (don't consider it as ""; spec. 7.1.2)
32 2005-09-16 Atsushi Enomoto <atsushi@ximian.com>
34 * ScriptCompilerInfo.cs : Compile correct replacement result.
37 2005-09-10 Atsushi Enomoto <atsushi@ximian.com>
39 * Compiler.cs : (Compile) check children only when it is the document
40 element. Fixed bug #76046.
42 2005-08-25 Atsushi Enomoto <atsushi@ximian.com>
44 * ScriptCompilerInfo.cs : It should not be "#line" when the source is
45 not C#. It should fix bug #75789.
47 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
49 * XslKey.cs : Fixed match pattern in xsl:key to check attribute nodes.
50 To minimize attribute iteration, use Pattern.EvaluatedNodeType.
53 2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
55 * XslFunctions.cs : XslTransform recovers from errors on document
56 resolution. Fixed bug #75663.
58 2005-06-06 Atsushi Enomoto <atsushi@ximian.com>
60 * HtmlEmitter.cs : Boolean attribute values should be omitted, but
61 only for related elements.
63 2005-05-07 Atsushi Enomoto <atsushi@ximian.com>
65 * MSXslScriptManager.cs : it should ignore compiler warnings. This
68 2005-04-07 Andrew Skiba <andrews@mainsoft.com>
70 * XslDecimalFormat.jvm.cs : added
72 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
74 * MSXslScriptManager.cs : added TARGET_JVM switch (that does not
75 support CodeDom). Use Guid.ToString("N").
77 2005-03-31 Atsushi Enomoto <atsushi@ximian.com>
79 * Compiler.cs : removed extraneous using_directive.
81 2005-03-25 Atsushi Enomoto <atsushi@ximian.com>
83 * XslKey.cs : the iterator does not require sorting (already sorted).
86 2005-03-23 Atsushi Enomoto <atsushi@ximian.com>
89 Variables are stored per stylesheet and added to compiler after
90 all of the contents are processed (handle import precedence).
91 Imports are now processed in prior to other contents (incorrect
92 imports are now rejected). After imports, process includes to
93 process nested imports. In-process included stylesheets are
94 temporarily stored in including stylesheet.
95 Handle keys like variables are handled.
96 Added Compile() that is splitted from .ctor().
98 Store keys in compiler and compiled stylesheet.
99 Duplicate variables in imports are now overriden as expected.
100 * XsltCompiledContext.cs : use CompiledStylesheet.ResolveKey().
102 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
104 * XslTransformProcessor.cs : now it looks safe to remove SetContext()
105 from each EvaluateXXX() methods.
106 * MsxslScriptManager.cs : not to leave reference to stylesheet
107 navigator, pass current node to Compile().
108 * XslCompiledContext.cs : Added GetNavCache() that returns reusable
109 navigator cache for each pattern, to avoid Clone() and not to leave
110 reference to already-done instance navigator.
112 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
114 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
115 * XslKey.cs : Use XSLT pattern parser for match.
116 UsePattern is now "Use" (it is not a pattern).
117 Reimplemented Evaluate() to make full use of index table.
118 Added Matches() to handle shorter match evaluation. For const value
119 for key (e.g. key patterns), it could avoid Evaluate().
120 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
121 new KeyIndexTable.Matches().
122 * XslFunctions.cs : Added PatternMatches() that just delegates to new
123 XsltCompiledContext.MatchesKey().
125 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
127 * GenericOutputter.cs : commented out warned fields.
129 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
131 * XslKey.cs : removed last ListIterator.ctor() argument.
132 Reverted the last commit that changed internal key index change
133 from ArrayList to Hashtable. Avoid clone in CollectIndex().
134 Sort results in Evaluate() before passing list to ListIterator.
135 * XslFunctions.cs : removed last ListIterator.ctor() argument.
137 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
140 XsltCompiledContext.cs,
142 XslTransformProcessor.cs : Now dynamic context key index table is
143 separate from XslKey static context. Added KeyIndexTable class and
144 store it into XsltCompiledContext with hash name-table mapping.
145 Cache map from statically-named key to index table.
146 Use Hashtable for internal key cache instead of ArrayList.
148 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
150 * XslKey.cs : fixed node iteration on collecting key indices which
151 could have resulted in an infinite loop.
153 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
155 * XslDecimalFormat.cs : in some cases it does not throw format
158 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
160 * XsltCompiledContext.cs,
161 XslStylesheet.cs : Fixed significant performance loss on whitespace
164 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
166 * XslKey.cs : removed unused NeedAbsoluteMatching.
167 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
168 Added some missing ToString() overrides.
170 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
172 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
173 to work fine with xsl:*-space attributes as expected.
174 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
175 actually nothing. It should not use XsltContext.PreserveWhitespace()
176 because this method is used to control output, while the referenced
177 method is used to control source document.
179 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
181 * XslTemplate.cs : First non-element content were incorrectly ignored.
183 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
185 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
186 to reduce references to stylesheet XPathNavigator. To accomplish it,
187 IStaticXsltContext does not declare GetNsm() anymore. All xslt
188 function types now directly hold IStaticXsltContext.
189 * XslStylesheet.cs : removed "Compiler c" field.
190 Removed unused properties.
192 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
194 * GenericOutputter.cs : When WriteStartElement() requires to add
195 new namespace declaration, _currentNamespaceDecls needs to be set.
197 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
199 * GenericOutputter.cs : for duplicate attribute in an element, no need
200 to keep previous prefix.
202 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
204 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
205 namespace. Rewrite prefix only when there is non-empty namespace.
207 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
209 * XslStylesheet.cs : Now namespace aliases are collected in prior to
210 all other toplevel elements. Removed unused code.
212 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
214 * GenericOutputter.cs : compute attribute prefix only when actual
215 emission. Fixed some cases that namespace output was missing.
217 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
219 * GenericOutputter.cs : no need to use two collections to store
220 pending attributes. Just use ordered ListDictionary.
221 newNamespace.Add(int) causes extraneous boxing.
223 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
225 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
226 OutputLiteralNamespaceUriNodes() so that everyone can understand
227 what it means and when it should be invoked.
229 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
231 * Compiler.cs : added another CompileTemplateContent() which is
232 requred in xsl:for-each. Commented out unused method.
234 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
236 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
237 in stylesheet should be considered in TryElementNamespacesOutput().
238 ParseQNameListAttribute() is not properly working for filling
241 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
243 * XslStylesheet.cs : included stylesheet could be literal result
244 element as stylesheet (see the spec 2.6.1).
246 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
248 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
249 empty string when nsURI is empty.
250 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
251 unlike xml but like span, as written in the spec 16.2.
253 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
255 * XslCompiledContext.cs, XslTransformProcessor.cs :
256 According to errata E25, those namespaces 1) that has the same
257 name as current element's prefix, or an empty name when current
258 element's namespace URI is empty, are not written to output.
259 So added current element information to XPathContext and added
260 prefix parameter to PushElementState(), added xsl:copy check to
261 TryElementNamespacesOutput().
262 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
264 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
266 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
269 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
271 * XslTemplate.cs : According to the spec 5.7, it is an error for
272 xsl:template to have 'mode' without 'match'.
274 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
276 * Compiler.cs : added ns lookup with nsDecls Hashtable.
278 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
280 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
282 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
284 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
285 namespace "http://www.w3.org/XML/1998/namespace".
287 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
289 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
290 * HtmlEmitter.cs : CDATA nodes are written just as text.
291 * GenericOutputter.cs : custom format are treated just as XML output.
293 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
297 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
298 and WriteState. Writing XML declaration is done inside
299 DetermineOutputMethod().
301 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
303 * Compiler.cs : reverted previous fix, since it should be done
304 in XslTransformProcessor with root stylesheet.
305 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
306 don't output alias namespaces. And now consider null exclusions.
308 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
310 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
312 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
314 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
315 namespace nodes. Patch by Andrew Skiba with some fixes.
316 * XslTransformProcessor.cs : Patch by Andrew Skiba.
317 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
318 as to handle all namespace nodes to copy in stylesheet nodes.
319 Global parameterss are evaluated before global variables.
320 * XmlOutputter.cs : removed unused code.
324 * Actually variables and params should check reference recursion.
325 This patch incompletely fixes the problem.
326 * Those operations that considers excluded-result-prefixes must
327 also check those attributes of its ancestors.
329 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
331 * XmlWriterEmitter.cs : String.Replace() was insufficient for
332 sequential candidates for replacement. Patch by Andrew Skiba.
334 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
336 * GenericOutputter.cs : don't output extraneous xml declaration.
339 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
341 * XslStylesheet.cs : MS implementation had chosen to recover from
342 the error, in the way specified in the spec 7.7.1. Patch by Andrew
345 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
347 * XslTemplate.cs : if input is literal result element, it could result
348 in ArgumentException. Patch by Andrew Skiba.
350 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
352 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
353 NullReferenceException. Patch by Andrew Skiba.
355 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
357 * XslOutput.cs : MS.NET recovers from unknown encoding according to
358 XSLT spec 16.1. Patch by Andrew Skiba.
360 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
362 * HtmlEmitter.cs : patch by Andrew Skiba.
363 Remove extra element prefix output. simplify attribute prefix output.
364 Attribute output might have resulted in invalid element stack peek.
365 Output specified media type if any.
367 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
369 * Compiler.cs : Patch by Andrew Skiba.
370 wrap internal exception with XsltCompileException.
371 Raise an error for not-found document URI.
372 QName might contain sequential whitespaces and thus could be empty.
374 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
376 * XslAttributeSet.cs : just ignore other kind of nodes than element
377 in its content. Fix by Andrew Skiba.
379 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
381 * XslOutput.cs : for html and text output mode, just set internal
382 omitXmlDeclaration status true. Patch by Andrew Skiba.
384 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
386 * XslFunctions.cs : fixed line ending mixture.
388 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
390 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
393 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
396 Compiler.cs : XmlResolver.ResolveUri() may return null.
398 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
400 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
403 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
405 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
407 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
409 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
412 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
414 * XslStylesheet.cs : removed unused fields.
415 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
418 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
420 * Compiler.cs, XslTransformProcessor.cs :
421 when creating XmlTextReader, reuse XmlNameTable.
423 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
425 * Compiler.cs : Changes that reflects CompiledExpression changes.
427 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
429 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
430 This fixes bug #67390.
432 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
434 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
436 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
438 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
439 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
440 : Globalization. Removed unused code.
442 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
444 * XslKey.cs : Key-value search in absolute path search was
447 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
449 * HtmlEmitter.cs : Correct URL escape implementation.
451 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
453 * XslTransformProcessor.cs : On document() function, close the
454 XmlTextReader opened from uri string.
456 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
459 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
460 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
461 should override another overload.
463 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
465 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
466 assembly should not include the .dll extension.
468 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
471 - CompilePattern() now throws XsltCompileException for invalid
472 pattern, and add error location support.
473 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
474 Now it returns MSXslNodeSet instance (for msxsl:node-set).
475 * Debug.cs : don't throw System.Exception.
476 * XslFunctions.cs : Added MSXslNodeSet class.
477 * XslTemplate.cs : reflected CompilePattern() change.
478 * XslTransformProcessor.cs : don't throw System.Exception.
479 * XsltCompiledContext.cs : don't throw System.Exception.
481 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
485 XslStylesheet.cs : made classes/enums internal.
487 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
489 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
490 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
491 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
492 XslTransformProcessor.cs : Make extra classes internal.
494 * XslKey.cs : It should require sorting.
495 * Debug.cs : Just avoid debug output. Only who want to output should
498 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
500 * GenericOutputter.cs : Culture-independency fix.
501 Replaced StringCollection to ArrayList.
502 * XslOutput.cs : Culture-independency fix.
504 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
506 * Compiler.cs : When BaseURI is an empty string, it should not try to
507 create Uri instance. This will fix bug #56832, but not sure.
508 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
509 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
510 should be the TextReader's NewLine).
511 * MSXslScriptManager.cs : Should raise an error when the prefix which
512 was specified by "implements-prefix" was not found.
514 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
516 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
517 when BaseURI for msxsl:script node is not available. This fixes
519 Don't output line number in the error message, when it is 0.
521 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
523 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
525 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
530 XslTransformProcessor.cs :
531 Throw specific types of exceptions instead of Exception.
532 * XslFunctions.cs, XsltCompiledContext.cs :
533 added node argument for XsltExtensionFunction ctor() etc.
535 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
537 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
538 CodeDom. Compilation error should be caught. This fixes bug #55875.
540 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
542 * XslStylesheet.cs : "version" attribute is also required for embedded
545 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
548 XslStylesheet.cs : Reject xsl element other than stylesheet and
549 transform. Check mandatory version attribute (only for existence).
551 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
553 * MSXslScriptManager.cs : if extension namespace was not found in
554 the script, just return null. Patch by Joshua Tauberer.
556 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
558 * XslLiteralElement.cs : quick fix for ArgumentNullException which
559 was because of the combination of non-namespaced instances and
560 exclude-result-prefixes.
562 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
564 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
565 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
566 * XslFunctions.cs : hereby Added.
567 * Compiler.cs : Removed deleted usingdecl.
569 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
571 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
572 * XslKey.cs : Added ExprKeyContainer expression type, which is
573 designed to be matched at any level.
574 * Compiler.cs : support for ExprKeyContainer.
576 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
578 * XslKey.cs : Now it collects key and matching nodes at the first
579 evaluation time. After that, we can just get them from the table.
580 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
581 prohibited key() usage in "match" and "use" attributes in xsl:key.
582 Modified accessibility of some classes.
583 * GenericOutputter.cs,
587 XmlWriterEmitter.cs : made classes internal.
588 * XslOutput.cs : support line info for exception.
589 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
591 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
593 * XsltCompiledContext.cs : fixed the length of context info array.
595 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
597 * XsltCompiledContext.cs :
598 replaced EnumeratorIterator with ListIterator
600 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
602 * GenericOutputter.cs,
605 XslTemplate.cs : tiny foreach elimination.
607 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
609 * XslOutput.cs : Reverted. default encoding should be utf-8.
611 2004-01-14 Jackson Harper <jackson@ximian.com>
613 * GenericOutputter.cs: Add constructors that do not take an
614 encoding to fix build.
616 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
618 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
619 write XML declaration. It means that output supports non document
620 entity. This fixes bug #52729.
621 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
622 modified WriteStartDocument() signature to receive Encoding.
623 * GenericOutputter.cs :
624 - Added .ctor() which receives Encoding. (It is used for TextWriter
625 output to get actual encoding.)
626 - Added .ctor() to take an boolean argument which indicates it is
627 variable content or not. (When variable, it does not call
628 WriteStartDocument().)
630 XsltCompiledContext.cs : comment out WriteLine().
631 * XslOutput.cs : set default encoding utf-16.
633 2004-01-08 Nick Drochak <ndrochak@ieee.org>
635 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
637 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
639 * XslDecimalFormat.cs : implemented format-number() other than number
641 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
642 catch ArgumentException which will be thrown by formatting process.
644 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
646 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
648 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
650 * XsltCompiledContext.cs: Remove workaround now that monodoc
653 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
655 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
656 aliases at compilation time, so evaluate at the first run-time.
658 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
660 * GenericOutputter.cs : support for runtime-determined output type.
661 * HtmlEmitter.cs : Fixed invalid doctype output.
662 Fixed incorrect double attribute output on non-HTML elements.
663 Improved indentation. Fixed "selected" attribute output.
664 Don't have to convert "'" to "'".
665 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
666 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
667 * XslStylesheet.cs, XsltCompiledContext.cs :
668 space resolution consideration for import and wildcard.
670 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
672 * Compiler.cs, XslTransformProcessor.cs :
673 Use XmlValidatingReader to support id() for external stylesheets.
674 * XslKey.cs, XsltCompiledContext.cs :
675 to evaluate MatchPattern and UsePattern, SetContext() is required.
676 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
678 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
680 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
681 Added WriteWhitespace().
682 * GenericOutputter.cs, XslTemplate.cs : Call above.
683 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
684 CurrentNode in for-each context have to be pulled at evaluation.
686 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
688 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
689 function for bugzilla #52144. It should be reverted soon.
691 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
693 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
695 * MSMslScriptManager.cs : modified generated assembly class to be unique
696 through running AppDomain.
697 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
698 arguments to actual argument types. Bugzilla #51450 should be fixed.
700 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
702 * HtmlEmitter.cs : Fixed incorrect character entity output.
704 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
706 * Added ScriptCompilerInfo.cs.
707 * MSXslScriptManager.cs : Fixed *true* author's name.
708 Implemented basic msxsl:script support.
709 * Compiler.cs : Added Evidence member.
711 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
713 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
714 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
715 Added WriteWhitespace() to assure not writing whitespaces as cdata.
716 * XslAttributeSet.cs : Error check if attribute-set contains other than
717 xsl:attribute. Error should be XsltException.
718 * XslDecimalFormat.cs : Complete equality check. Allow just one
719 character value for some attributes.
720 * XslStylesheet.cs : Made whitespace control setting overridable.
721 Added Version property (for the future compatibility mode).
722 Check unrecongnized top level element.
723 * XslTemplate.cs : Check priority as a number.
724 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
725 for xsl:preserve-space and xsl:strip-space support.
726 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
727 incomplete), PushScope and Pop
729 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
731 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
733 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
735 * Compiler.cs : In FromListString(), it should use default ns,
737 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
738 precedence. Doctype should be written even if SYSTEM id is absent.
739 Fixed possible multiple xmlns output.
741 - Encoding output using META element.
742 - Doctype name is fixed (html).
743 - Double quotation on PUBLIC and SYSTEM missing.
744 - Fixed incorrect tag name check for IMG.
745 - '>' should not be escaped.
746 * XmlWriterEmitter.cs :
747 Added newline before doctype. In WriteComment(), "--" and tail
748 '-' are not allowed (it escapes, while XmlWriter simply rejects).
749 * XslTransformProcessor.cs : cdata-section-elements should enclose
750 direct child tests only. Added PreserveWhitespace() (incomplete).
751 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
753 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
755 * IdPattern.cs : This should work against multiple ids.
757 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
760 * MSXslScriptManager.cs
762 * XslTransformProcessor.cs
763 * XsltCompiledContext.cs: Some work on msxsl script.
765 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
767 (in general: cdata-section-elements support, correct document()
768 base uri handling, and so on)
769 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
770 And move to document element. Added XslNameUtil.FromListString().
771 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
772 Added WriteCDataSection().
773 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
774 Added InsideCDataSection.
775 * GenericOutputter.cs :
776 In .ctor(), WriteState should be succeeded from output XmlWriter.
777 WriteNamespaceDecl() now drops declaration identical to existing one.
778 Removed obsolete htmlEmulation.
779 * XslOutput.cs : Added CDataSectionElements support.
780 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
781 * XslTransformProcessor.cs :
782 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
783 now considers xsl:exclude-element-prefixes on literal element.
784 Added PushCDataState() and PopCDataState().
785 * XsltCompiledContext.cs : When base uri of document() target is empty,
786 then it should use stylesheet's BaseURI, not that of current document.
788 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
790 * Compiler.cs : Modified decimal-format comparison code.
793 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
794 be called only when required.
795 * HtmlEmitter.cs : Improved indentation stuff.
796 * XslDecimalFormat.cs : Added incomplete implementation of
797 CheckSameAs() and FormatNumber().
799 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
800 from StringDictionary to ArrayList of QName (to keep order).
802 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
804 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
805 node type (i.e. attribute and namespace). Removed extraneous Clone().
806 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
808 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
810 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
811 XslStylesheet.cs : Added Keys support here.
812 * XslTransformProcessor.cs : Should call SetContext() to expressions
813 before evaluating current nodes.
814 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
815 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
816 for KeyPattern. It now uses CompiledStyle.FindKeys().
818 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
820 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
821 to Xalan tests and MS.NET implementation (only for test convenience).
822 * XslOutput.cs : Indent holds string rathen than bool. Its default value
823 varies in the context. When method="html", then default is "yes".
824 * XslTransformProcessor.cs : Extension element prefixes should not
825 be written as stylesheet namespaces.
826 * XsltCompiledContext.cs : Return type of generate-id() is string.
827 Implemented unparsed-entity-uri().
829 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
831 * Compiler.cs : More complete attribute set gathering.
832 GetNamespacesToCopy() should only return Local namespaces.
833 * GenericOutputter.cs : Added support for indentation.
834 Added easy hack for html output.
835 More correct Prefix handling (considers already defined ones).
836 Namespace emmission is moved to CheckState().
837 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
838 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
839 * GenericOutputter.cs, Outputter.cs :
840 Added CanProcessAttributes property for
841 use-attribute-sets of xsl:copy.
842 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
843 Added support for exclude-result-prefixes.
844 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
846 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
848 * Compiler.cs : It is not important, but attribute order became closer
849 to MS.NET and Xalan (assuming from OASIS tests).
851 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
853 * GenericOutputter.cs : Attribute wasn't overwritten its properties
854 because Attribute is struct it was let to another local variable.
856 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
858 * GenericOutputter.cs: make html output a warning, because doing
859 xml will be right most of the time.
861 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
863 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
864 here for a long time and it hurts thread safty and memory
867 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
869 * Compiler.cs: save the parser (will reduce memory allocation when
870 Jackson's jay patch is committed).
872 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
874 * Attribute.cs: Change to struct. Remove QName class.
875 * GenericOutputter.cs: use an Attribute [] rather than an
876 ArrayList. Allows us not to allocate Attributes, which is great
877 for speed. Roll our own allocation.
879 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
881 * Compiler.cs: add GetNsm to main class as well.
883 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
885 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
886 internal version so we get null if the attr doesnt exist.
888 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
890 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
891 where curVarScope == null
893 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
896 - Better handling of empty attributes (vs not being specified)
897 - Bug in handling #default
899 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
901 * Compiler.cs: Off by one when parsing localname of QName
902 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
903 children (so that they get overriden)
905 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
907 * GenericOutputter.cs: Output attributes in order recieved; not
908 required by spec, but useful for running test cases.
910 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
912 * GenericOutputter.cs - fix bug with outputting state.
913 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
914 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
916 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
918 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
919 exprs on use, pass to nav.
921 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
923 * Compiler.cs: pass satic context to Pattern ctor.
925 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
928 GenericOutputter.cs - generic Outputter implementation,
929 Attribute.cs - represents outputted attribute,
930 Emitter.cs - abstract output emitter,
931 TextEmitter.cs - text emitter,
932 XmlWriterEmitter.cs - emitter to XmlWriter.
933 * Checking of duplicating attributes is done in GenericOutputter.
934 * Namespace outputting logic is implemented in GenericOutputter.
935 * Outputter.cs: Writing namespace declarations is delegated to
936 derived classes (GenericOutputter).
937 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
939 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
941 * XslTransformProcessor.cs: evaluate variables at beginning
942 when / is current node.
944 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
946 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
947 Fix up namespace handeling
949 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
951 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
953 * XslDecimalFormat.cs: Stub for decimal-format.
955 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
957 * TextOutputter.cs: Add option to ignore element content (Oleg).
959 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
961 * Compiler.cs: Really give null for blank avt's
963 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
965 * Compiler.cs: Fixed lre/lre04.
967 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
969 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
970 won't have default namespace. See http://www.w3.org/TR/xslt#qname
972 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
974 * XslTransformProcessor.cs: add support for resolving documents.
975 * XsltCompiledContext: add support for document () function.
977 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
979 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
980 of the abstract methods in Outputter, making them call other
981 functions with default values, remove impl's in derived classes.
983 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
985 * Outputter.cs: s/Close/Done
986 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
987 * XslTransformProcessor.cs: Flush output when popping, pop at end.
989 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
991 * Outputter.cs: Add support for namespaces.
993 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
995 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
996 XslTransformProcessor.cs: move output logic from XslStylesheet to
999 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1001 * XslOutput.cs: add support for encoding.
1003 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
1005 * *.cs: Support for xsl:output. (Oleg)
1007 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1009 * Compiler.cs: handle extension and excluded namespaces.
1011 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
1013 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
1014 from the stylesheet for correct namespace resolution.
1016 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1018 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
1019 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
1021 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
1023 * XslTransformProcessor.cs: Add a table to detect when an object
1025 * XslAttributeSet.cs: Use the above table. Dont throw nullref
1026 exception when no use-attribute-sets are specified.
1028 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1030 * Compiler.cs: Add support for boolean attributes (yes/no).
1032 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
1034 * Compiler.cs: Add method LocalNameOf, to get the local name of a
1036 * XslTransformProcessor.cs: Support for setting the XmlResolver.
1038 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1040 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
1042 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
1044 * XslTransformProcessor.cs: Add EvaluateNumber method.
1046 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1048 * XsltCompiledContext.cs: Implement more functions.
1050 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1052 * Compiler.cs: Add support for key, utility function to parse
1053 QName's from the XsltContext. Store keys in the CompiledStyle, not
1055 * XslKey.cs: Real implementation
1056 * XslStylesheet.cs: Move the keys to CompiledStyle.
1057 * XsltCompiledContext.cs: Implement the key function
1059 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1061 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
1062 the functions ;-). Also wrote current ().
1064 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1066 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
1067 done in XPath. Add stubs for XSLT functions.
1069 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
1071 * Compiler.cs: To resolve a variable you now need to pass the
1072 processor, so that it can be passed to IsEvaluated. A local will
1073 only be resolved if it has already been evaluated.
1074 * XsltCompiledContext.cs: Pass along the processor.
1076 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1078 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
1079 variable values in the XslTransformProcessor.
1080 * XsltCompiledContext.cs: If the scope is null, don't look there!
1081 * Debug.cs: New method Assert
1083 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
1085 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
1086 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
1087 internal methods in XPathNavigator. Remove verbose debugging messages.
1089 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>