1 2005-03-09 Atsushi Enomoto <atsushi@ximian.com>
3 * XslFunctions.cs, Compiler.cs : Eliminated XPathNavigatorNsm class
4 to reduce references to stylesheet XPathNavigator. To accomplish it,
5 IStaticXsltContext does not declare GetNsm() anymore. All xslt
6 function types now directly hold IStaticXsltContext.
7 * XslStylesheet.cs : removed "Compiler c" field.
8 Removed unused properties.
10 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
12 * GenericOutputter.cs : When WriteStartElement() requires to add
13 new namespace declaration, _currentNamespaceDecls needs to be set.
15 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
17 * GenericOutputter.cs : for duplicate attribute in an element, no need
18 to keep previous prefix.
20 2005-03-08 Atsushi Enomoto <atsushi@ximian.com>
22 * GenericOutputter.cs : Prefix "xml" is only allowed to the fixed XML
23 namespace. Rewrite prefix only when there is non-empty namespace.
25 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
27 * XslStylesheet.cs : Now namespace aliases are collected in prior to
28 all other toplevel elements. Removed unused code.
30 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
32 * GenericOutputter.cs : compute attribute prefix only when actual
33 emission. Fixed some cases that namespace output was missing.
35 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
37 * GenericOutputter.cs : no need to use two collections to store
38 pending attributes. Just use ordered ListDictionary.
39 newNamespace.Add(int) causes extraneous boxing.
41 2005-03-07 Atsushi Enomoto <atsushi@ximian.com>
43 * XslTransformProcessor.cs : renamed TryElementNamespacesOutput() to
44 OutputLiteralNamespaceUriNodes() so that everyone can understand
45 what it means and when it should be invoked.
47 2005-03-04 Atsushi Enomoto <atsushi@ximian.com>
49 * Compiler.cs : added another CompileTemplateContent() which is
50 requred in xsl:for-each. Commented out unused method.
52 2005-03-03 Atsushi Enomoto <atsushi@ximian.com>
54 * XslStylesheet.cs, XslTransformProcessor.cs : exclude-element-prefix
55 in stylesheet should be considered in TryElementNamespacesOutput().
56 ParseQNameListAttribute() is not properly working for filling
59 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
61 * XslStylesheet.cs : included stylesheet could be literal result
62 element as stylesheet (see the spec 2.6.1).
64 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
66 * GenericOutputter.cs : On WriteStartElement(), prefix should be an
67 empty string when nsURI is empty.
68 * HtmlEmitter.cs : non-HTML elements in default namespace are treated
69 unlike xml but like span, as written in the spec 16.2.
71 2005-03-02 Atsushi Enomoto <atsushi@ximian.com>
73 * XslCompiledContext.cs, XslTransformProcessor.cs :
74 According to errata E25, those namespaces 1) that has the same
75 name as current element's prefix, or an empty name when current
76 element's namespace URI is empty, are not written to output.
77 So added current element information to XPathContext and added
78 prefix parameter to PushElementState(), added xsl:copy check to
79 TryElementNamespacesOutput().
80 http://www.w3.org/1999/11/REC-xslt-19991116-errata/
82 2005-02-26 Atsushi Enomoto <atsushi@ximian.com>
84 * XslFunctions.cs : unparsed-entity-uri() should return SYSTEM ID
87 2005-02-25 Atsushi Enomoto <atsushi@ximian.com>
89 * XslTemplate.cs : According to the spec 5.7, it is an error for
90 xsl:template to have 'mode' without 'match'.
92 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
94 * Compiler.cs : added ns lookup with nsDecls Hashtable.
96 2005-02-24 Atsushi Enomoto <atsushi@ximian.com>
98 * XslStylesheet.cs : It should consider "#default" in namespace-alias.
100 2005-02-23 Atsushi Enomoto <atsushi@ximian.com>
102 * GenericOutputter.cs : It should not attempt to write prefix "xml" and
103 namespace "http://www.w3.org/XML/1998/namespace".
105 2005-02-21 Atsushi Enomoto <atsushi@ximian.com>
107 * XmlWriterEmitter.cs : PI nodes are normalized as to not contain "?>".
108 * HtmlEmitter.cs : CDATA nodes are written just as text.
109 * GenericOutputter.cs : custom format are treated just as XML output.
111 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
115 GenericOutputter.cs : removed WriteStartDocument(), WriteEndDocument()
116 and WriteState. Writing XML declaration is done inside
117 DetermineOutputMethod().
119 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
121 * Compiler.cs : reverted previous fix, since it should be done
122 in XslTransformProcessor with root stylesheet.
123 * XslTransformProcessor.cs : In TryElementNamespacesOutput(),
124 don't output alias namespaces. And now consider null exclusions.
126 2005-02-17 Atsushi Enomoto <atsushi@ximian.com>
128 * Compiler.cs : don't return alias namespaces in GetNamespacesToCopy().
130 2005-02-16 Atsushi Enomoto <atsushi@ximian.com>
132 * Compiler.cs : GetNamespacesToCopy() should also find for non-local
133 namespace nodes. Patch by Andrew Skiba with some fixes.
134 * XslTransformProcessor.cs : Patch by Andrew Skiba.
135 TryStylesheetNamespaceOutput() is now TryElementNamespacesOutput()
136 as to handle all namespace nodes to copy in stylesheet nodes.
137 Global parameterss are evaluated before global variables.
138 * XmlOutputter.cs : removed unused code.
142 * Actually variables and params should check reference recursion.
143 This patch incompletely fixes the problem.
144 * Those operations that considers excluded-result-prefixes must
145 also check those attributes of its ancestors.
147 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
149 * XmlWriterEmitter.cs : String.Replace() was insufficient for
150 sequential candidates for replacement. Patch by Andrew Skiba.
152 2005-02-10 Atsushi Enomoto <atsushi@ximian.com>
154 * GenericOutputter.cs : don't output extraneous xml declaration.
157 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
159 * XslStylesheet.cs : MS implementation had chosen to recover from
160 the error, in the way specified in the spec 7.7.1. Patch by Andrew
163 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
165 * XslTemplate.cs : if input is literal result element, it could result
166 in ArgumentException. Patch by Andrew Skiba.
168 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
170 * XslFunctions.cs : Fixed unparsed-entity-uri() that might result in
171 NullReferenceException. Patch by Andrew Skiba.
173 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
175 * XslOutput.cs : MS.NET recovers from unknown encoding according to
176 XSLT spec 16.1. Patch by Andrew Skiba.
178 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
180 * HtmlEmitter.cs : patch by Andrew Skiba.
181 Remove extra element prefix output. simplify attribute prefix output.
182 Attribute output might have resulted in invalid element stack peek.
183 Output specified media type if any.
185 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
187 * Compiler.cs : Patch by Andrew Skiba.
188 wrap internal exception with XsltCompileException.
189 Raise an error for not-found document URI.
190 QName might contain sequential whitespaces and thus could be empty.
192 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
194 * XslAttributeSet.cs : just ignore other kind of nodes than element
195 in its content. Fix by Andrew Skiba.
197 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
199 * XslOutput.cs : for html and text output mode, just set internal
200 omitXmlDeclaration status true. Patch by Andrew Skiba.
202 2005-02-08 Atsushi Enomoto <atsushi@ximian.com>
204 * XslFunctions.cs : fixed line ending mixture.
206 2005-02-03 Atsushi Enomoto <atsushi@ximian.com>
208 * ScriptCompilerInfo.cs : XsltCompileException->XsltException, just
211 2004-12-22 Atsushi Enomoto <atsushi@ximian.com>
214 Compiler.cs : XmlResolver.ResolveUri() may return null.
216 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
218 * Compiler.cs : XPathNavigatorNsm needed more love. Clone() does not
221 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
223 * Compiler.cs : don't create XPathNavigatorNsm for every GetNsm() call.
225 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
227 * XslKey.cs, XslStylesheet.cs, MSXslScriptManager.cs :
230 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
232 * XslStylesheet.cs : removed unused fields.
233 * XslOutput.cs : removed members for XSLT 2.0 (won't be implemented in
236 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
238 * Compiler.cs, XslTransformProcessor.cs :
239 when creating XmlTextReader, reuse XmlNameTable.
241 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
243 * Compiler.cs : Changes that reflects CompiledExpression changes.
245 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
247 * HtmlEmitter.cs : TH tag is not regarded as HTML tag.
248 This fixes bug #67390.
250 Thu Sep 9 07:09:11 PDT 2004 Paolo Molaro <lupus@ximian.com>
252 * ScriptCompilerInfo.cs: avoid using a .cctor and fix precomp.
254 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
256 * Debug.cs, HtmlEmitter.cs, MSXslScriptManager.cs,
257 ScriptCompilerInfo.cs, XslFunctions.cs, XslTemplate.cs
258 : Globalization. Removed unused code.
260 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
262 * XslKey.cs : Key-value search in absolute path search was
265 2004-06-14 Atsushi Enomoto <atsushi@ximian.com>
267 * HtmlEmitter.cs : Correct URL escape implementation.
269 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
271 * XslTransformProcessor.cs : On document() function, close the
272 XmlTextReader opened from uri string.
274 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
277 GenericOutputter.cs : XmlNamespaceManager.LookupPrefix() allows only
278 atomized names. Fixed XPathNavigatorNsm.LookupNamespace() that
279 should override another overload.
281 2004-05-25 Lluis Sanchez Gual <lluis@ximian.com>
283 * ScriptCompilerInfo.cs: the name used to load the Microsoft.JScript
284 assembly should not include the .dll extension.
286 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
289 - CompilePattern() now throws XsltCompileException for invalid
290 pattern, and add error location support.
291 - In Compiler.TryGetFunction(), compare namespace URI, not prefix.
292 Now it returns MSXslNodeSet instance (for msxsl:node-set).
293 * Debug.cs : don't throw System.Exception.
294 * XslFunctions.cs : Added MSXslNodeSet class.
295 * XslTemplate.cs : reflected CompilePattern() change.
296 * XslTransformProcessor.cs : don't throw System.Exception.
297 * XsltCompiledContext.cs : don't throw System.Exception.
299 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
303 XslStylesheet.cs : made classes/enums internal.
305 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
307 * Attribute.cs, Compiler.cs, Debug.cs, Emitter.cs,
308 MSXslScriptCompiler.cs, Outputter.cs, XslAttributeSet.cs,
309 XslDecimalFormat.cs, XslKey.cs, XslStylesheet.cs, XslTemplate.cs,
310 XslTransformProcessor.cs : Make extra classes internal.
312 * XslKey.cs : It should require sorting.
313 * Debug.cs : Just avoid debug output. Only who want to output should
316 2004-04-24 Atsushi Enomoto <atsushi@ximian.com>
318 * GenericOutputter.cs : Culture-independency fix.
319 Replaced StringCollection to ArrayList.
320 * XslOutput.cs : Culture-independency fix.
322 2004-04-12 Atsushi Enomoto <atsushi@ximian.com>
324 * Compiler.cs : When BaseURI is an empty string, it should not try to
325 create Uri instance. This will fix bug #56832, but not sure.
326 * XslFunctions.cs : for XsltDocument.Resolve(), did the same.
327 * HtmlEmitter.cs : Environment.NewLine was incorrectly used (it
328 should be the TextReader's NewLine).
329 * MSXslScriptManager.cs : Should raise an error when the prefix which
330 was specified by "implements-prefix" was not found.
332 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
334 * ScriptCompilerInfo.cs : #line directive now holds dummy filename
335 when BaseURI for msxsl:script node is not available. This fixes
337 Don't output line number in the error message, when it is 0.
339 2004-03-27 Atsushi Enomoto <atsushi@ximian.com>
341 * Compiler.cs : Supply NameTable to base ctor() of XPathNavigatorNsm.
343 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
348 XslTransformProcessor.cs :
349 Throw specific types of exceptions instead of Exception.
350 * XslFunctions.cs, XsltCompiledContext.cs :
351 added node argument for XsltExtensionFunction ctor() etc.
353 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
355 * ScriptCompilerInfo.cs : Modified compilation processing. Now it uses
356 CodeDom. Compilation error should be caught. This fixes bug #55875.
358 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
360 * XslStylesheet.cs : "version" attribute is also required for embedded
363 2004-03-13 Atsushi Enomoto <atsushi@ximian.com>
366 XslStylesheet.cs : Reject xsl element other than stylesheet and
367 transform. Check mandatory version attribute (only for existence).
369 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
371 * MSXslScriptManager.cs : if extension namespace was not found in
372 the script, just return null. Patch by Joshua Tauberer.
374 2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
376 * XslLiteralElement.cs : quick fix for ArgumentNullException which
377 was because of the combination of non-namespaced instances and
378 exclude-result-prefixes.
380 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
382 * XsltCompiledContext.cs : Extracted XslFunctions and changed namespace
383 from Mono.Xml.Xsl.Functions to Mono.Xml.Xsl.
384 * XslFunctions.cs : hereby Added.
385 * Compiler.cs : Removed deleted usingdecl.
387 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
389 * XslTransformProcessor.cs : Bugfix. Stored keys should be cleared.
390 * XslKey.cs : Added ExprKeyContainer expression type, which is
391 designed to be matched at any level.
392 * Compiler.cs : support for ExprKeyContainer.
394 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
396 * XslKey.cs : Now it collects key and matching nodes at the first
397 evaluation time. After that, we can just get them from the table.
398 * Compiler.cs : Added KeyCompilationMode. It is used to prevent
399 prohibited key() usage in "match" and "use" attributes in xsl:key.
400 Modified accessibility of some classes.
401 * GenericOutputter.cs,
405 XmlWriterEmitter.cs : made classes internal.
406 * XslOutput.cs : support line info for exception.
407 * XsltCompiledContext.cs : implemented CompareDocument() - so easily.
409 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
411 * XsltCompiledContext.cs : fixed the length of context info array.
413 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
415 * XsltCompiledContext.cs :
416 replaced EnumeratorIterator with ListIterator
418 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
420 * GenericOutputter.cs,
423 XslTemplate.cs : tiny foreach elimination.
425 2004-01-16 Atsushi Enomoto <atsushi@ximian.com>
427 * XslOutput.cs : Reverted. default encoding should be utf-8.
429 2004-01-14 Jackson Harper <jackson@ximian.com>
431 * GenericOutputter.cs: Add constructors that do not take an
432 encoding to fix build.
434 2004-01-14 Atsushi Enomoto <atsushi@ximian.com>
436 * XmlWriterEmitter.cs : It now uses WriteProcessingInstruction() to
437 write XML declaration. It means that output supports non document
438 entity. This fixes bug #52729.
439 * Emitter.cs, TextEmitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
440 modified WriteStartDocument() signature to receive Encoding.
441 * GenericOutputter.cs :
442 - Added .ctor() which receives Encoding. (It is used for TextWriter
443 output to get actual encoding.)
444 - Added .ctor() to take an boolean argument which indicates it is
445 variable content or not. (When variable, it does not call
446 WriteStartDocument().)
448 XsltCompiledContext.cs : comment out WriteLine().
449 * XslOutput.cs : set default encoding utf-16.
451 2004-01-08 Nick Drochak <ndrochak@ieee.org>
453 * XsltCompiledContext.cs: Remove unused variable and unreachable code.
455 2003-12-26 Atsushi Enomoto <atsushi@ximian.com>
457 * XslDecimalFormat.cs : implemented format-number() other than number
459 * XsltCompiledContext.cs : Modified XsltFormatNumber.Evaluate() to
460 catch ArgumentException which will be thrown by formatting process.
462 2003-12-23 Atsushi Enomoto <atsushi@ximian.com>
464 * ScriptCompilerInfo.cs : Use "mjs" as JScript compiler.
466 2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
468 * XsltCompiledContext.cs: Remove workaround now that monodoc
471 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
473 * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
474 aliases at compilation time, so evaluate at the first run-time.
476 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
478 * GenericOutputter.cs : support for runtime-determined output type.
479 * HtmlEmitter.cs : Fixed invalid doctype output.
480 Fixed incorrect double attribute output on non-HTML elements.
481 Improved indentation. Fixed "selected" attribute output.
482 Don't have to convert "'" to "'".
483 * XmlWriterEmitter.cs : Now don't output incorrect doctype.
484 Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
485 * XslStylesheet.cs, XsltCompiledContext.cs :
486 space resolution consideration for import and wildcard.
488 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
490 * Compiler.cs, XslTransformProcessor.cs :
491 Use XmlValidatingReader to support id() for external stylesheets.
492 * XslKey.cs, XsltCompiledContext.cs :
493 to evaluate MatchPattern and UsePattern, SetContext() is required.
494 * XslTemplate.cs : Forgot to commit. Change is below(12/16).
496 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
498 * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
499 Added WriteWhitespace().
500 * GenericOutputter.cs, XslTemplate.cs : Call above.
501 * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
502 CurrentNode in for-each context have to be pulled at evaluation.
504 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
506 * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
507 function for bugzilla #52144. It should be reverted soon.
509 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
511 * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not
513 * MSMslScriptManager.cs : modified generated assembly class to be unique
514 through running AppDomain.
515 * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
516 arguments to actual argument types. Bugzilla #51450 should be fixed.
518 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
520 * HtmlEmitter.cs : Fixed incorrect character entity output.
522 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
524 * Added ScriptCompilerInfo.cs.
525 * MSXslScriptManager.cs : Fixed *true* author's name.
526 Implemented basic msxsl:script support.
527 * Compiler.cs : Added Evidence member.
529 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
531 * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
532 * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
533 Added WriteWhitespace() to assure not writing whitespaces as cdata.
534 * XslAttributeSet.cs : Error check if attribute-set contains other than
535 xsl:attribute. Error should be XsltException.
536 * XslDecimalFormat.cs : Complete equality check. Allow just one
537 character value for some attributes.
538 * XslStylesheet.cs : Made whitespace control setting overridable.
539 Added Version property (for the future compatibility mode).
540 Check unrecongnized top level element.
541 * XslTemplate.cs : Check priority as a number.
542 * XslTransformProcessor.cs : PushCDataState is now PushElementState,
543 for xsl:preserve-space and xsl:strip-space support.
544 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
545 incomplete), PushScope and Pop
547 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
549 * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
551 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
553 * Compiler.cs : In FromListString(), it should use default ns,
555 * GenericOutputter.cs : CheckState() - attribute's Prefix should take
556 precedence. Doctype should be written even if SYSTEM id is absent.
557 Fixed possible multiple xmlns output.
559 - Encoding output using META element.
560 - Doctype name is fixed (html).
561 - Double quotation on PUBLIC and SYSTEM missing.
562 - Fixed incorrect tag name check for IMG.
563 - '>' should not be escaped.
564 * XmlWriterEmitter.cs :
565 Added newline before doctype. In WriteComment(), "--" and tail
566 '-' are not allowed (it escapes, while XmlWriter simply rejects).
567 * XslTransformProcessor.cs : cdata-section-elements should enclose
568 direct child tests only. Added PreserveWhitespace() (incomplete).
569 * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
571 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
573 * IdPattern.cs : This should work against multiple ids.
575 2003-11-27 Ben Maurer <bmaurer@users.sourceforge.net>
578 * MSXslScriptManager.cs
580 * XslTransformProcessor.cs
581 * XsltCompiledContext.cs: Some work on msxsl script.
583 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
585 (in general: cdata-section-elements support, correct document()
586 base uri handling, and so on)
587 * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
588 And move to document element. Added XslNameUtil.FromListString().
589 * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
590 Added WriteCDataSection().
591 * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
592 Added InsideCDataSection.
593 * GenericOutputter.cs :
594 In .ctor(), WriteState should be succeeded from output XmlWriter.
595 WriteNamespaceDecl() now drops declaration identical to existing one.
596 Removed obsolete htmlEmulation.
597 * XslOutput.cs : Added CDataSectionElements support.
598 * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
599 * XslTransformProcessor.cs :
600 Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
601 now considers xsl:exclude-element-prefixes on literal element.
602 Added PushCDataState() and PopCDataState().
603 * XsltCompiledContext.cs : When base uri of document() target is empty,
604 then it should use stylesheet's BaseURI, not that of current document.
606 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
608 * Compiler.cs : Modified decimal-format comparison code.
611 GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
612 be called only when required.
613 * HtmlEmitter.cs : Improved indentation stuff.
614 * XslDecimalFormat.cs : Added incomplete implementation of
615 CheckSameAs() and FormatNumber().
617 XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
618 from StringDictionary to ArrayList of QName (to keep order).
620 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
622 * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
623 node type (i.e. attribute and namespace). Removed extraneous Clone().
624 Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
626 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
628 * Compiler.cs : Changed Keys from ArrayList to Hashtable.
629 XslStylesheet.cs : Added Keys support here.
630 * XslTransformProcessor.cs : Should call SetContext() to expressions
631 before evaluating current nodes.
632 * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
633 xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
634 for KeyPattern. It now uses CompiledStyle.FindKeys().
636 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
638 * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
639 to Xalan tests and MS.NET implementation (only for test convenience).
640 * XslOutput.cs : Indent holds string rathen than bool. Its default value
641 varies in the context. When method="html", then default is "yes".
642 * XslTransformProcessor.cs : Extension element prefixes should not
643 be written as stylesheet namespaces.
644 * XsltCompiledContext.cs : Return type of generate-id() is string.
645 Implemented unparsed-entity-uri().
647 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
649 * Compiler.cs : More complete attribute set gathering.
650 GetNamespacesToCopy() should only return Local namespaces.
651 * GenericOutputter.cs : Added support for indentation.
652 Added easy hack for html output.
653 More correct Prefix handling (considers already defined ones).
654 Namespace emmission is moved to CheckState().
655 * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
656 Added WriteFullEndElement(). (i.e. IsEmptyElement support)
657 * GenericOutputter.cs, Outputter.cs :
658 Added CanProcessAttributes property for
659 use-attribute-sets of xsl:copy.
660 * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
661 Added support for exclude-result-prefixes.
662 * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
664 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
666 * Compiler.cs : It is not important, but attribute order became closer
667 to MS.NET and Xalan (assuming from OASIS tests).
669 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
671 * GenericOutputter.cs : Attribute wasn't overwritten its properties
672 because Attribute is struct it was let to another local variable.
674 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
676 * GenericOutputter.cs: make html output a warning, because doing
677 xml will be right most of the time.
679 2003-09-28 Ben Maurer <bmaurer@users.sourceforge.net>
681 * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
682 here for a long time and it hurts thread safty and memory
685 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
687 * Compiler.cs: save the parser (will reduce memory allocation when
688 Jackson's jay patch is committed).
690 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
692 * Attribute.cs: Change to struct. Remove QName class.
693 * GenericOutputter.cs: use an Attribute [] rather than an
694 ArrayList. Allows us not to allocate Attributes, which is great
695 for speed. Roll our own allocation.
697 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
699 * Compiler.cs: add GetNsm to main class as well.
701 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
703 * Compiler.cs (ParseAvtAttribute): Get the attribue using our
704 internal version so we get null if the attr doesnt exist.
706 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
708 * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
709 where curVarScope == null
711 2003-09-16 Ben Maurer <bmaurer@users.sourceforge.net>
714 - Better handling of empty attributes (vs not being specified)
715 - Bug in handling #default
717 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
719 * Compiler.cs: Off by one when parsing localname of QName
720 * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
721 children (so that they get overriden)
723 2003-09-15 Ben Maurer <bmaurer@users.sourceforge.net>
725 * GenericOutputter.cs: Output attributes in order recieved; not
726 required by spec, but useful for running test cases.
728 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
730 * GenericOutputter.cs - fix bug with outputting state.
731 * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs,
732 * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.
734 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
736 * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
737 exprs on use, pass to nav.
739 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
741 * Compiler.cs: pass satic context to Pattern ctor.
743 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
746 GenericOutputter.cs - generic Outputter implementation,
747 Attribute.cs - represents outputted attribute,
748 Emitter.cs - abstract output emitter,
749 TextEmitter.cs - text emitter,
750 XmlWriterEmitter.cs - emitter to XmlWriter.
751 * Checking of duplicating attributes is done in GenericOutputter.
752 * Namespace outputting logic is implemented in GenericOutputter.
753 * Outputter.cs: Writing namespace declarations is delegated to
754 derived classes (GenericOutputter).
755 * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).
757 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
759 * XslTransformProcessor.cs: evaluate variables at beginning
760 when / is current node.
762 2003-08-21 Ben Maurer <bmaurer@users.sourceforge.net>
764 * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
765 Fix up namespace handeling
767 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
769 * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
771 * XslDecimalFormat.cs: Stub for decimal-format.
773 2003-08-20 Ben Maurer <bmaurer@users.sourceforge.net>
775 * TextOutputter.cs: Add option to ignore element content (Oleg).
777 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
779 * Compiler.cs: Really give null for blank avt's
781 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
783 * Compiler.cs: Fixed lre/lre04.
785 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
787 * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
788 won't have default namespace. See http://www.w3.org/TR/xslt#qname
790 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
792 * XslTransformProcessor.cs: add support for resolving documents.
793 * XsltCompiledContext: add support for document () function.
795 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
797 * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
798 of the abstract methods in Outputter, making them call other
799 functions with default values, remove impl's in derived classes.
801 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
803 * Outputter.cs: s/Close/Done
804 * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
805 * XslTransformProcessor.cs: Flush output when popping, pop at end.
807 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
809 * Outputter.cs: Add support for namespaces.
811 2003-08-19 Ben Maurer <bmaurer@users.sourceforge.net>
813 * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
814 XslTransformProcessor.cs: move output logic from XslStylesheet to
817 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
819 * XslOutput.cs: add support for encoding.
821 2003-08-18 Ben Maurer <bmaurer@users.sourceforge.net>
823 * *.cs: Support for xsl:output. (Oleg)
825 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
827 * Compiler.cs: handle extension and excluded namespaces.
829 2003-08-17 Ben Maurer <bmaurer@users.sourceforge.net>
831 * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
832 from the stylesheet for correct namespace resolution.
834 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
836 * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument
837 introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
839 2003-08-07 Ben Maurer <bmaurer@users.sourceforge.net>
841 * XslTransformProcessor.cs: Add a table to detect when an object
843 * XslAttributeSet.cs: Use the above table. Dont throw nullref
844 exception when no use-attribute-sets are specified.
846 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
848 * Compiler.cs: Add support for boolean attributes (yes/no).
850 2003-08-04 Ben Maurer <bmaurer@users.sourceforge.net>
852 * Compiler.cs: Add method LocalNameOf, to get the local name of a
854 * XslTransformProcessor.cs: Support for setting the XmlResolver.
856 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
858 * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
860 2003-08-01 Ben Maurer <bmaurer@users.sourceforge.net>
862 * XslTransformProcessor.cs: Add EvaluateNumber method.
864 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
866 * XsltCompiledContext.cs: Implement more functions.
868 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
870 * Compiler.cs: Add support for key, utility function to parse
871 QName's from the XsltContext. Store keys in the CompiledStyle, not
873 * XslKey.cs: Real implementation
874 * XslStylesheet.cs: Move the keys to CompiledStyle.
875 * XsltCompiledContext.cs: Implement the key function
877 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
879 * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
880 the functions ;-). Also wrote current ().
882 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
884 * XsltCompiledContext.cs: Remove excess conversion stuff. It is
885 done in XPath. Add stubs for XSLT functions.
887 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
889 * Compiler.cs: To resolve a variable you now need to pass the
890 processor, so that it can be passed to IsEvaluated. A local will
891 only be resolved if it has already been evaluated.
892 * XsltCompiledContext.cs: Pass along the processor.
894 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
896 * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
897 variable values in the XslTransformProcessor.
898 * XsltCompiledContext.cs: If the scope is null, don't look there!
899 * Debug.cs: New method Assert
901 2003-07-30 Ben Maurer <bmaurer@users.sourceforge.net>
903 * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
904 * XslTransformProcessor.cs: Use strongtyped evaluation, using new
905 internal methods in XPathNavigator. Remove verbose debugging messages.
907 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>