1 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
3 * Compiler.cs : Now it holds XPath parser and XSLT pattern parser.
4 * XslKey.cs : Use XSLT pattern parser for match.
5 UsePattern is now "Use" (it is not a pattern).
6 Reimplemented Evaluate() to make full use of index table.
7 Added Matches() to handle shorter match evaluation. For const value
8 for key (e.g. key patterns), it could avoid Evaluate().
9 * XsltCompiledContext.cs : Added MatchesKey() that just delegates to
10 new KeyIndexTable.Matches().
11 * XslFunctions.cs : Added PatternMatches() that just delegates to new
12 XsltCompiledContext.MatchesKey().
14 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
16 * GenericOutputter.cs : commented out warned fields.
18 2005-03-15 Atsushi Enomoto <atsushi@ximian.com>
20 * XslKey.cs : removed last ListIterator.ctor() argument.
21 Reverted the last commit that changed internal key index change
22 from ArrayList to Hashtable. Avoid clone in CollectIndex().
23 Sort results in Evaluate() before passing list to ListIterator.
24 * XslFunctions.cs : removed last ListIterator.ctor() argument.
26 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
29 XsltCompiledContext.cs,
31 XslTransformProcessor.cs : Now dynamic context key index table is
32 separate from XslKey static context. Added KeyIndexTable class and
33 store it into XsltCompiledContext with hash name-table mapping.
34 Cache map from statically-named key to index table.
35 Use Hashtable for internal key cache instead of ArrayList.
37 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
39 * XslKey.cs : fixed node iteration on collecting key indices which
40 could have resulted in an infinite loop.
42 2005-03-14 Atsushi Enomoto <atsushi@ximian.com>
44 * XslDecimalFormat.cs : in some cases it does not throw format
47 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
49 * XsltCompiledContext.cs,
50 XslStylesheet.cs : Fixed significant performance loss on whitespace
53 2005-03-11 Atsushi Enomoto <atsushi@ximian.com>
55 * XslKey.cs : removed unused NeedAbsoluteMatching.
56 * XslFunctions.cs : Added Peer (for peer & subtree optimization).
57 Added some missing ToString() overrides.
59 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
61 * XslStylesheet.cs, XslCompiledContext.cs : Fixed PreserveWhitespace()
62 to work fine with xsl:*-space attributes as expected.
63 * XslTransformProcessor.cs : PreserveWhitespace() in this file is
64 actually nothing. It should not use XsltContext.PreserveWhitespace()
65 because this method is used to control output, while the referenced
66 method is used to control source document.
68 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
70 * XslTemplate.cs : First non-element content were incorrectly ignored.
72 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
74 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
75 to reduce references to stylesheet XPathNavigator. To accomplish it,
76 IStaticXsltContext does not declare GetNsm() anymore. All xslt
77 function types now directly hold IStaticXsltContext.
78 * XslStylesheet.cs : removed "Compiler c" field.
79 Removed unused properties.
81 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
83 * GenericOutputter.cs : When WriteStartElement() requires to add
84 new namespace declaration, _currentNamespaceDecls needs to be set.
86 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
88 * GenericOutputter.cs : for duplicate attribute in an element, no need
89 to keep previous prefix.
91 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
93 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
94 namespace. Rewrite prefix only when there is non-empty namespace.
96 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
98 * XslStylesheet.cs : Now namespace aliases are collected in prior to
99 all other toplevel elements. Removed unused code.
101 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
103 * GenericOutputter.cs : compute attribute prefix only when actual
104 emission. Fixed some cases that namespace output was missing.
106 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
108 * GenericOutputter.cs : no need to use two collections to store
109 pending attributes. Just use ordered ListDictionary.
110 newNamespace.Add(int) causes extraneous boxing.
112 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
114 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
115 OutputLiteralNamespaceUriNodes() so that everyone can understand
116 what it means and when it should be invoked.
118 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
120 * Compiler.cs : added another CompileTemplateContent() which is
121 requred in xsl:for-each. Commented out unused method.
123 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
125 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
126 in stylesheet should be considered in TryElementNamespacesOutput().
127 ParseQNameListAttribute() is not properly working for filling
130 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
132 * XslStylesheet.cs : included stylesheet could be literal result
133 element as stylesheet (see the spec 2.6.1).
135 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
137 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
138 empty string when nsURI is empty.
139 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
140 unlike xml but like span, as written in the spec 16.2.
142 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
144 * XslCompiledContext.cs, XslTransformProcessor.cs :
145 According to errata E25, those namespaces 1) that has the same
146 name as current element's prefix, or an empty name when current
147 element's namespace URI is empty, are not written to output.
148 So added current element information to XPathContext and added
149 prefix parameter to PushElementState(), added xsl:copy check to
150 TryElementNamespacesOutput().
151 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
153 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
155 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
158 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
160 * XslTemplate.cs : According to the spec 5.7, it is an error for
161 xsl:template to have 'mode' without 'match'.
163 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
165 * Compiler.cs : added ns lookup with nsDecls Hashtable.
167 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
169 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
171 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
173 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
174 namespace "http://www.w3.org/XML/1998/namespace".
176 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
178 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
179 * HtmlEmitter.cs : CDATA nodes are written just as text.
180 * GenericOutputter.cs : custom format are treated just as XML output.
182 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
186 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
187 and WriteState. Writing XML declaration is done inside
188 DetermineOutputMethod().
190 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
192 * Compiler.cs : reverted previous fix, since it should be done
193 in XslTransformProcessor with root stylesheet.
194 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
195 don't output alias namespaces. And now consider null exclusions.
197 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
199 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
201 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
203 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
204 namespace nodes. Patch by Andrew Skiba with some fixes.
205 * XslTransformProcessor.cs : Patch by Andrew Skiba.
206 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
207 as to handle all namespace nodes to copy in stylesheet nodes.
208 Global parameterss are evaluated before global variables.
209 * XmlOutputter.cs : removed unused code.
213 * Actually variables and params should check reference recursion.
214 This patch incompletely fixes the problem.
215 * Those operations that considers excluded-result-prefixes must
216 also check those attributes of its ancestors.
218 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
220 * XmlWriterEmitter.cs : String.Replace() was insufficient for
221 sequential candidates for replacement. Patch by Andrew Skiba.
223 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
225 * GenericOutputter.cs : don't output extraneous xml declaration.
228 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
230 * XslStylesheet.cs : MS implementation had chosen to recover from
231 the error, in the way specified in the spec 7.7.1. Patch by Andrew
234 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
236 * XslTemplate.cs : if input is literal result element, it could result
237 in ArgumentException. Patch by Andrew Skiba.
239 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
241 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
242 NullReferenceException. Patch by Andrew Skiba.
244 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
246 * XslOutput.cs : MS.NET recovers from unknown encoding according to
247 XSLT spec 16.1. Patch by Andrew Skiba.
249 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
251 * HtmlEmitter.cs : patch by Andrew Skiba.
252 Remove extra element prefix output. simplify attribute prefix output.
253 Attribute output might have resulted in invalid element stack peek.
254 Output specified media type if any.
256 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
258 * Compiler.cs : Patch by Andrew Skiba.
259 wrap internal exception with XsltCompileException.
260 Raise an error for not-found document URI.
261 QName might contain sequential whitespaces and thus could be empty.
263 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
265 * XslAttributeSet.cs : just ignore other kind of nodes than element
266 in its content. Fix by Andrew Skiba.
268 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
270 * XslOutput.cs : for html and text output mode, just set internal
271 omitXmlDeclaration status true. Patch by Andrew Skiba.
273 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
275 * XslFunctions.cs : fixed line ending mixture.
277 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
279 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
282 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
285 Compiler.cs : XmlResolver.ResolveUri() may return null.
287 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
289 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
292 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
294 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
296 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
298 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
301 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
303 * XslStylesheet.cs : removed unused fields.
304 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
307 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
309 * Compiler.cs, XslTransformProcessor.cs :
310 when creating XmlTextReader, reuse XmlNameTable.
312 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
314 * Compiler.cs : Changes that reflects CompiledExpression changes.
316 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
318 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
319 This fixes bug #67390.
321 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
323 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
325 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
327 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
328 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
329 : Globalization. Removed unused code.
331 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
333 * XslKey.cs : Key-value search in absolute path search was
336 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
338 * HtmlEmitter.cs : Correct URL escape implementation.
340 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
342 * XslTransformProcessor.cs : On document() function, close the
343 XmlTextReader opened from uri string.
345 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
348 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
349 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
350 should override another overload.
352 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
354 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
355 assembly should not include the .dll extension.
357 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
360 - CompilePattern() now throws XsltCompileException for invalid
361 pattern, and add error location support.
362 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
363 Now it returns MSXslNodeSet instance (for msxsl:node-set).
364 * Debug.cs : don't throw System.Exception.
365 * XslFunctions.cs : Added MSXslNodeSet class.
366 * XslTemplate.cs : reflected CompilePattern() change.
367 * XslTransformProcessor.cs : don't throw System.Exception.
368 * XsltCompiledContext.cs : don't throw System.Exception.
370 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
374 XslStylesheet.cs : made classes/enums internal.
376 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
378 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
379 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
380 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
381 XslTransformProcessor.cs : Make extra classes internal.
383 * XslKey.cs : It should require sorting.
384 * Debug.cs : Just avoid debug output. Only who want to output should
387 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
389 * GenericOutputter.cs : Culture-independency fix.
390 Replaced StringCollection to ArrayList.
391 * XslOutput.cs : Culture-independency fix.
393 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
395 * Compiler.cs : When BaseURI is an empty string, it should not try to
396 create Uri instance. This will fix bug #56832, but not sure.
397 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
398 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
399 should be the TextReader's NewLine).
400 * MSXslScriptManager.cs : Should raise an error when the prefix which
401 was specified by "implements-prefix" was not found.
403 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
405 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
406 when BaseURI for msxsl:script node is not available. This fixes
408 Don't output line number in the error message, when it is 0.
410 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
412 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
414 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
419 XslTransformProcessor.cs :
420 Throw specific types of exceptions instead of Exception.
421 * XslFunctions.cs, XsltCompiledContext.cs :
422 added node argument for XsltExtensionFunction ctor() etc.
424 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
426 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
427 CodeDom. Compilation error should be caught. This fixes bug #55875.
429 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
431 * XslStylesheet.cs : "version" attribute is also required for embedded
434 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
437 XslStylesheet.cs : Reject xsl element other than stylesheet and
438 transform. Check mandatory version attribute (only for existence).
440 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
442 * MSXslScriptManager.cs : if extension namespace was not found in
443 the script, just return null. Patch by Joshua Tauberer.
445 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
447 * XslLiteralElement.cs : quick fix for ArgumentNullException which
448 was because of the combination of non-namespaced instances and
449 exclude-result-prefixes.
451 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
453 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
454 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
455 * XslFunctions.cs : hereby Added.
456 * Compiler.cs : Removed deleted usingdecl.
458 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
460 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
461 * XslKey.cs : Added ExprKeyContainer expression type, which is
462 designed to be matched at any level.
463 * Compiler.cs : support for ExprKeyContainer.
465 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
467 * XslKey.cs : Now it collects key and matching nodes at the first
468 evaluation time. After that, we can just get them from the table.
469 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
470 prohibited key() usage in "match" and "use" attributes in xsl:key.
471 Modified accessibility of some classes.
472 * GenericOutputter.cs,
476 XmlWriterEmitter.cs : made classes internal.
477 * XslOutput.cs : support line info for exception.
478 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
480 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
482 * XsltCompiledContext.cs : fixed the length of context info array.
484 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
486 * XsltCompiledContext.cs :
487 replaced EnumeratorIterator with ListIterator
489 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
491 * GenericOutputter.cs,
494 XslTemplate.cs : tiny foreach elimination.
496 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
498 * XslOutput.cs : Reverted. default encoding should be utf-8.
500 2004-01-14 Jackson Harper <jackson@ximian.com>
502 * GenericOutputter.cs: Add constructors that do not take an
503 encoding to fix build.
505 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
507 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
508 write XML declaration. It means that output supports non document
509 entity. This fixes bug #52729.
510 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
511 modified WriteStartDocument() signature to receive Encoding.
512 * GenericOutputter.cs :
513 - Added .ctor() which receives Encoding. (It is used for TextWriter
514 output to get actual encoding.)
515 - Added .ctor() to take an boolean argument which indicates it is
516 variable content or not. (When variable, it does not call
517 WriteStartDocument().)
519 XsltCompiledContext.cs : comment out WriteLine().
520 * XslOutput.cs : set default encoding utf-16.
522 2004-01-08 Nick Drochak <ndrochak@ieee.org>
524 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
526 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
528 * XslDecimalFormat.cs : implemented format-number() other than number
530 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
531 catch ArgumentException which will be thrown by formatting process.
533 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
535 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
537 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
539 * XsltCompiledContext.cs: Remove workaround now that monodoc
542 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
544 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
545 aliases at compilation time, so evaluate at the first run-time.
547 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
549 * GenericOutputter.cs : support for runtime-determined output type.
550 * HtmlEmitter.cs : Fixed invalid doctype output.
551 Fixed incorrect double attribute output on non-HTML elements.
552 Improved indentation. Fixed "selected" attribute output.
553 Don't have to convert "'" to "'".
554 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
555 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
556 * XslStylesheet.cs, XsltCompiledContext.cs :
557 space resolution consideration for import and wildcard.
559 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
561 * Compiler.cs, XslTransformProcessor.cs :
562 Use XmlValidatingReader to support id() for external stylesheets.
563 * XslKey.cs, XsltCompiledContext.cs :
564 to evaluate MatchPattern and UsePattern, SetContext() is required.
565 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
567 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
569 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
570 Added WriteWhitespace().
571 * GenericOutputter.cs, XslTemplate.cs : Call above.
572 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
573 CurrentNode in for-each context have to be pulled at evaluation.
575 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
577 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
578 function for bugzilla #52144. It should be reverted soon.
580 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
582 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
584 * MSMslScriptManager.cs : modified generated assembly class to be unique
585 through running AppDomain.
586 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
587 arguments to actual argument types. Bugzilla #51450 should be fixed.
589 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
591 * HtmlEmitter.cs : Fixed incorrect character entity output.
593 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
595 * Added ScriptCompilerInfo.cs.
596 * MSXslScriptManager.cs : Fixed *true* author's name.
597 Implemented basic msxsl:script support.
598 * Compiler.cs : Added Evidence member.
600 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
602 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
603 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
604 Added WriteWhitespace() to assure not writing whitespaces as cdata.
605 * XslAttributeSet.cs : Error check if attribute-set contains other than
606 xsl:attribute. Error should be XsltException.
607 * XslDecimalFormat.cs : Complete equality check. Allow just one
608 character value for some attributes.
609 * XslStylesheet.cs : Made whitespace control setting overridable.
610 Added Version property (for the future compatibility mode).
611 Check unrecongnized top level element.
612 * XslTemplate.cs : Check priority as a number.
613 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
614 for xsl:preserve-space and xsl:strip-space support.
615 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
616 incomplete), PushScope and Pop
618 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
620 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
622 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
624 * Compiler.cs : In FromListString(), it should use default ns,
626 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
627 precedence. Doctype should be written even if SYSTEM id is absent.
628 Fixed possible multiple xmlns output.
630 - Encoding output using META element.
631 - Doctype name is fixed (html).
632 - Double quotation on PUBLIC and SYSTEM missing.
633 - Fixed incorrect tag name check for IMG.
634 - '>' should not be escaped.
635 * XmlWriterEmitter.cs :
636 Added newline before doctype. In WriteComment(), "--" and tail
637 '-' are not allowed (it escapes, while XmlWriter simply rejects).
638 * XslTransformProcessor.cs : cdata-section-elements should enclose
639 direct child tests only. Added PreserveWhitespace() (incomplete).
640 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
642 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
644 * IdPattern.cs : This should work against multiple ids.
646 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
649 * MSXslScriptManager.cs
651 * XslTransformProcessor.cs
652 * XsltCompiledContext.cs: Some work on msxsl script.
654 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
656 (in general: cdata-section-elements support, correct document()
657 base uri handling, and so on)
658 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
659 And move to document element. Added XslNameUtil.FromListString().
660 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
661 Added WriteCDataSection().
662 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
663 Added InsideCDataSection.
664 * GenericOutputter.cs :
665 In .ctor(), WriteState should be succeeded from output XmlWriter.
666 WriteNamespaceDecl() now drops declaration identical to existing one.
667 Removed obsolete htmlEmulation.
668 * XslOutput.cs : Added CDataSectionElements support.
669 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
670 * XslTransformProcessor.cs :
671 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
672 now considers xsl:exclude-element-prefixes on literal element.
673 Added PushCDataState() and PopCDataState().
674 * XsltCompiledContext.cs : When base uri of document() target is empty,
675 then it should use stylesheet's BaseURI, not that of current document.
677 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
679 * Compiler.cs : Modified decimal-format comparison code.
682 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
683 be called only when required.
684 * HtmlEmitter.cs : Improved indentation stuff.
685 * XslDecimalFormat.cs : Added incomplete implementation of
686 CheckSameAs() and FormatNumber().
688 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
689 from StringDictionary to ArrayList of QName (to keep order).
691 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
693 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
694 node type (i.e. attribute and namespace). Removed extraneous Clone().
695 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
697 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
699 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
700 XslStylesheet.cs : Added Keys support here.
701 * XslTransformProcessor.cs : Should call SetContext() to expressions
702 before evaluating current nodes.
703 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
704 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
705 for KeyPattern. It now uses CompiledStyle.FindKeys().
707 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
709 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
710 to Xalan tests and MS.NET implementation (only for test convenience).
711 * XslOutput.cs : Indent holds string rathen than bool. Its default value
712 varies in the context. When method="html", then default is "yes".
713 * XslTransformProcessor.cs : Extension element prefixes should not
714 be written as stylesheet namespaces.
715 * XsltCompiledContext.cs : Return type of generate-id() is string.
716 Implemented unparsed-entity-uri().
718 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
720 * Compiler.cs : More complete attribute set gathering.
721 GetNamespacesToCopy() should only return Local namespaces.
722 * GenericOutputter.cs : Added support for indentation.
723 Added easy hack for html output.
724 More correct Prefix handling (considers already defined ones).
725 Namespace emmission is moved to CheckState().
726 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
727 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
728 * GenericOutputter.cs, Outputter.cs :
729 Added CanProcessAttributes property for
730 use-attribute-sets of xsl:copy.
731 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
732 Added support for exclude-result-prefixes.
733 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
735 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
737 * Compiler.cs : It is not important, but attribute order became closer
738 to MS.NET and Xalan (assuming from OASIS tests).
740 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
742 * GenericOutputter.cs : Attribute wasn't overwritten its properties
743 because Attribute is struct it was let to another local variable.
745 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
747 * GenericOutputter.cs: make html output a warning, because doing
748 xml will be right most of the time.
750 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
752 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
753 here for a long time and it hurts thread safty and memory
756 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
758 * Compiler.cs: save the parser (will reduce memory allocation when
759 Jackson's jay patch is committed).
761 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
763 * Attribute.cs: Change to struct. Remove QName class.
764 * GenericOutputter.cs: use an Attribute [] rather than an
765 ArrayList. Allows us not to allocate Attributes, which is great
766 for speed. Roll our own allocation.
768 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
770 * Compiler.cs: add GetNsm to main class as well.
772 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
774 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
775 internal version so we get null if the attr doesnt exist.
777 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
779 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
780 where curVarScope == null
782 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
785 - Better handling of empty attributes (vs not being specified)
786 - Bug in handling #default
788 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
790 * Compiler.cs: Off by one when parsing localname of QName
791 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
792 children (so that they get overriden)
794 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
796 * GenericOutputter.cs: Output attributes in order recieved; not
797 required by spec, but useful for running test cases.
799 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
801 * GenericOutputter.cs - fix bug with outputting state.
802 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
803 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
805 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
807 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
808 exprs on use, pass to nav.
810 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
812 * Compiler.cs: pass satic context to Pattern ctor.
814 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
817 GenericOutputter.cs - generic Outputter implementation,
818 Attribute.cs - represents outputted attribute,
819 Emitter.cs - abstract output emitter,
820 TextEmitter.cs - text emitter,
821 XmlWriterEmitter.cs - emitter to XmlWriter.
822 * Checking of duplicating attributes is done in GenericOutputter.
823 * Namespace outputting logic is implemented in GenericOutputter.
824 * Outputter.cs: Writing namespace declarations is delegated to
825 derived classes (GenericOutputter).
826 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
828 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
830 * XslTransformProcessor.cs: evaluate variables at beginning
831 when / is current node.
833 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
835 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
836 Fix up namespace handeling
838 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
840 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
842 * XslDecimalFormat.cs: Stub for decimal-format.
844 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
846 * TextOutputter.cs: Add option to ignore element content (Oleg).
848 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
850 * Compiler.cs: Really give null for blank avt's
852 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
854 * Compiler.cs: Fixed lre/lre04.
856 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
858 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
859 won't have default namespace. See http://www.w3.org/TR/xslt#qname
861 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
863 * XslTransformProcessor.cs: add support for resolving documents.
864 * XsltCompiledContext: add support for document () function.
866 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
868 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
869 of the abstract methods in Outputter, making them call other
870 functions with default values, remove impl's in derived classes.
872 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
874 * Outputter.cs: s/Close/Done
875 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
876 * XslTransformProcessor.cs: Flush output when popping, pop at end.
878 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
880 * Outputter.cs: Add support for namespaces.
882 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
884 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
885 XslTransformProcessor.cs: move output logic from XslStylesheet to
888 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
890 * XslOutput.cs: add support for encoding.
892 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
894 * *.cs: Support for xsl:output. (Oleg)
896 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
898 * Compiler.cs: handle extension and excluded namespaces.
900 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
902 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
903 from the stylesheet for correct namespace resolution.
905 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
907 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
908 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
910 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
912 * XslTransformProcessor.cs: Add a table to detect when an object
914 * XslAttributeSet.cs: Use the above table. Dont throw nullref
915 exception when no use-attribute-sets are specified.
917 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
919 * Compiler.cs: Add support for boolean attributes (yes/no).
921 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
923 * Compiler.cs: Add method LocalNameOf, to get the local name of a
925 * XslTransformProcessor.cs: Support for setting the XmlResolver.
927 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
929 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
931 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
933 * XslTransformProcessor.cs: Add EvaluateNumber method.
935 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
937 * XsltCompiledContext.cs: Implement more functions.
939 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
941 * Compiler.cs: Add support for key, utility function to parse
942 QName's from the XsltContext. Store keys in the CompiledStyle, not
944 * XslKey.cs: Real implementation
945 * XslStylesheet.cs: Move the keys to CompiledStyle.
946 * XsltCompiledContext.cs: Implement the key function
948 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
950 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
951 the functions ;-). Also wrote current ().
953 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
955 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
956 done in XPath. Add stubs for XSLT functions.
958 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
960 * Compiler.cs: To resolve a variable you now need to pass the
961 processor, so that it can be passed to IsEvaluated. A local will
962 only be resolved if it has already been evaluated.
963 * XsltCompiledContext.cs: Pass along the processor.
965 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
967 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
968 variable values in the XslTransformProcessor.
969 * XsltCompiledContext.cs: If the scope is null, don't look there!
970 * Debug.cs: New method Assert
972 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
974 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
975 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
976 internal methods in XPathNavigator. Remove verbose debugging messages.
978 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>