2003-12-20 Ben Maurer <bmaurer@users.sourceforge.net>
[mono.git] / mcs / class / System.XML / Mono.Xml.Xsl / ChangeLog
1 2003-12-20 Ben Maurer  <bmaurer@users.sourceforge.net>
2
3         * XsltCompiledContext.cs: Remove workaround now that monodoc
4         is fixed.
5
6 2003-12-20 Atsushi Enomoto <atsushi@ximian.com>
7
8         * XslStylesheet.cs : considering xsl:imports, we can't handle namespace
9           aliases at compilation time, so evaluate at the first run-time.
10
11 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
12
13         * GenericOutputter.cs : support for runtime-determined output type.
14         * HtmlEmitter.cs : Fixed invalid doctype output.
15           Fixed incorrect double attribute output on non-HTML elements.
16           Improved indentation. Fixed "selected" attribute output.
17           Don't have to convert "'" to "&apos;".
18         * XmlWriterEmitter.cs : Now don't output incorrect doctype.
19           Escapes CDATA section text "]]>" to "...]]]]><![CDATA[>..." .
20         * XslStylesheet.cs, XsltCompiledContext.cs :
21           space resolution consideration for import and wildcard.
22
23 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
24
25         * Compiler.cs, XslTransformProcessor.cs :
26           Use XmlValidatingReader to support id() for external stylesheets.
27         * XslKey.cs, XsltCompiledContext.cs :
28           to evaluate MatchPattern and UsePattern, SetContext() is required.
29         * XslTemplate.cs : Forgot to commit. Change is below(12/16).
30
31 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
32
33         * Emitter.cs, HtmlEmitter.cs, XmlWriterEmitter.cs :
34           Added WriteWhitespace().
35         * GenericOutputter.cs, XslTemplate.cs : Call above.
36         * XslTransformProcessor.cs : Changed NodesetStack to ArrayList since
37           CurrentNode in for-each context have to be pulled at evaluation.
38
39 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
40
41         * XsltCompiledContext.cs : Temporarily allow incorrectly resolved
42           function for bugzilla #52144. It should be reverted soon.
43
44 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
45
46         * ScriptCompilerInfo.cs : SecurityManager.ResolvePolicy() was not 
47           implemented yet.
48         * MSMslScriptManager.cs : modified generated assembly class to be unique
49           through running AppDomain.
50         * XsltCompiledContext.cs : XsltExtensionFunction.Invoke() has to cast
51           arguments to actual argument types. Bugzilla #51450 should be fixed.
52
53 2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
54
55         * HtmlEmitter.cs : Fixed incorrect character entity output.
56
57 2003-12-11 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
58
59         * Added ScriptCompilerInfo.cs.
60         * MSXslScriptManager.cs : Fixed *true* author's name.
61           Implemented basic msxsl:script support.
62         * Compiler.cs : Added Evidence member.
63
64 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
65
66         * Compiler.cs : Check stylesheet recursion. Check decimal-format name.
67         * GenericOutputter.cs, Outputter.cs, TextOutputter.cs :
68           Added WriteWhitespace() to assure not writing whitespaces as cdata.
69         * XslAttributeSet.cs : Error check if attribute-set contains other than
70           xsl:attribute.  Error should be XsltException.
71         * XslDecimalFormat.cs : Complete equality check.  Allow just one
72           character value for some attributes.
73         * XslStylesheet.cs : Made whitespace control setting overridable.
74           Added Version property (for the future compatibility mode).
75           Check unrecongnized top level element.
76         * XslTemplate.cs : Check priority as a number.
77         * XslTransformProcessor.cs : PushCDataState is now PushElementState, 
78           for xsl:preserve-space and xsl:strip-space support.
79         * XsltCompiledContext.cs : Implemented PreserveWhitespace() (far from
80           incomplete), PushScope and Pop
81
82 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
83
84         * HtmlEmitter.cs : CloseStartElement is needed almost everywhere.
85
86 2003-12-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
87
88         * Compiler.cs : In FromListString(), it should use default ns,
89           not unqualified one.
90         * GenericOutputter.cs : CheckState() - attribute's Prefix should take
91           precedence.  Doctype should be written even if SYSTEM id is absent.
92           Fixed possible multiple xmlns output.
93         * HtmlEmitter.cs :
94           - Encoding output using META element.
95           - Doctype name is fixed (html).
96           - Double quotation on PUBLIC and SYSTEM missing.
97           - Fixed incorrect tag name check for IMG.
98           - '>' should not be escaped.
99         * XmlWriterEmitter.cs :
100           Added newline before doctype.  In WriteComment(), "--" and tail
101           '-' are not allowed (it escapes, while XmlWriter simply rejects).
102         * XslTransformProcessor.cs : cdata-section-elements should enclose
103           direct child tests only.   Added PreserveWhitespace() (incomplete).
104         * XsltCompiledContext.cs : Implemented PreserveWhitespace() (incomplete).
105
106 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
107
108         * IdPattern.cs : This should work against multiple ids.
109
110 2003-11-27 Ben Maurer  <bmaurer@users.sourceforge.net>
111
112         * Compiler.cs
113         * MSXslScriptManager.cs
114         * XslStylesheet.cs
115         * XslTransformProcessor.cs
116         * XsltCompiledContext.cs: Some work on msxsl script.
117
118 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
119
120         (in general: cdata-section-elements support, correct document() 
121         base uri handling, and so on)
122         * Compiler.cs : Use XmlSpace.Preserve to parse included stylesheet.
123           And move to document element.  Added XslNameUtil.FromListString().
124         * Emitter.cs, HtmlEmitter.cs, TextEmitter.cs XmlWriterEmitter.cs :
125           Added WriteCDataSection().
126         * Outputter.cs, GenericOutputter.cs, TextOutputter.cs :
127           Added InsideCDataSection.
128         * GenericOutputter.cs :
129           In .ctor(), WriteState should be succeeded from output XmlWriter.
130           WriteNamespaceDecl() now drops declaration identical to existing one.
131           Removed obsolete htmlEmulation.
132         * XslOutput.cs : Added CDataSectionElements support.
133         * XslStylesheet.cs : Added BaseUri, StyleDocument and PrefixInEffect().
134         * XslTransformProcessor.cs :
135           Added Output and CurrentOutputUri. TryStylesheetNamespaceOutput()
136           now considers xsl:exclude-element-prefixes on literal element.
137           Added PushCDataState() and PopCDataState().
138         * XsltCompiledContext.cs : When base uri of document() target is empty,
139           then it should use stylesheet's BaseURI, not that of current document.
140
141 2003-11-21 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
142
143         * Compiler.cs : Modified decimal-format comparison code.
144         * Outputter.cs,
145           TextOutputter.cs,
146           GenericOutputter.cs : Added WriteState. Now WriteStartDocument() will
147           be called only when required. 
148         * HtmlEmitter.cs : Improved indentation stuff.
149         * XslDecimalFormat.cs : Added incomplete implementation of 
150           CheckSameAs() and FormatNumber().
151         * XslStylesheet.cs,
152           XslTransformProcessor.cs : Changed XslStylesheet.StylesheetNamespaces
153           from StringDictionary to ArrayList of QName (to keep order).
154
155 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
156
157         * XsltCompiledContext.cs : XsltGenerateId.Evaluate() should consider
158           node type (i.e. attribute and namespace). Removed extraneous Clone().
159           Fixed XsltKey.Evaluate() to use MoveToNextAttribute to iterate attrs.
160
161 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
162
163         * Compiler.cs : Changed Keys from ArrayList to Hashtable.
164           XslStylesheet.cs : Added Keys support here.
165         * XslTransformProcessor.cs : Should call SetContext() to expressions
166           before evaluating current nodes.
167         * XsltCompiledContext.cs : 1) XsltDocument.GetDocument() should use
168           xsltContext. 2) XsltKey exposes KeyName, Field and NamespaceManager
169           for KeyPattern. It now uses CompiledStyle.FindKeys().
170
171 2003-11-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
172
173         * GenericOutputter.cs : Added HTML output support. Closer xmlns handling
174           to Xalan tests and MS.NET implementation (only for test convenience).
175         * XslOutput.cs : Indent holds string rathen than bool. Its default value
176           varies in the context. When method="html", then default is "yes".
177         * XslTransformProcessor.cs : Extension element prefixes should not 
178           be written as stylesheet namespaces.
179         * XsltCompiledContext.cs : Return type of generate-id() is string.
180           Implemented unparsed-entity-uri().
181
182 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
183
184         * Compiler.cs : More complete attribute set gathering.
185           GetNamespacesToCopy() should only return Local namespaces.
186         * GenericOutputter.cs : Added support for indentation.
187           Added easy hack for html output.
188           More correct Prefix handling (considers already defined ones).
189           Namespace emmission is moved to CheckState().
190         * Emitter.cs, XmlWriterEmitter.cs, GenericOutputter.cs, Outputter.cs :
191           Added WriteFullEndElement(). (i.e. IsEmptyElement support)
192         * GenericOutputter.cs, Outputter.cs :
193           Added CanProcessAttributes property for 
194           use-attribute-sets of xsl:copy.
195         * XslStylesheet.cs : Added support for stylesheet-defined xmlns decls.
196           Added support for exclude-result-prefixes.
197         * XslTransformProcessor.cs : Added support for stylesheet-defined xmlns.
198
199 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
200
201         * Compiler.cs : It is not important, but attribute order became closer
202           to MS.NET and Xalan (assuming from OASIS tests).
203
204 2003-10-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
205
206         * GenericOutputter.cs : Attribute wasn't overwritten its properties
207           because Attribute is struct it was let to another local variable.
208
209 2003-09-28 Ben Maurer  <bmaurer@users.sourceforge.net>
210
211         * GenericOutputter.cs: make html output a warning, because doing
212         xml will be right most of the time.
213
214 2003-09-28 Ben Maurer  <bmaurer@users.sourceforge.net>
215
216         * Debug.cs: comment out {Enter, Exit}Navigator. Haven't had bugs
217         here for a long time and it hurts thread safty and memory
218         allocation.
219
220 2003-09-21 Ben Maurer  <bmaurer@users.sourceforge.net>
221
222         * Compiler.cs: save the parser (will reduce memory allocation when
223         Jackson's jay patch is committed).
224
225 2003-09-20 Ben Maurer  <bmaurer@users.sourceforge.net>
226
227         * Attribute.cs: Change to struct. Remove QName class.
228         * GenericOutputter.cs: use an Attribute [] rather than an
229         ArrayList. Allows us not to allocate Attributes, which is great
230         for speed. Roll our own allocation.
231
232 2003-09-20 Ben Maurer  <bmaurer@users.sourceforge.net>
233
234         * Compiler.cs: add GetNsm to main class as well.
235
236 2003-09-20 Ben Maurer  <bmaurer@users.sourceforge.net>
237
238         * Compiler.cs (ParseAvtAttribute): Get the attribue using our
239         internal version so we get null if the attr doesnt exist.
240
241 2003-09-17 Ben Maurer  <bmaurer@users.sourceforge.net>
242
243         * Compiler.cs (IStaticXsltContext.TryGetVariable): handle the case
244         where curVarScope == null
245
246 2003-09-16 Ben Maurer  <bmaurer@users.sourceforge.net>
247
248         * Compiler.cs: 
249         - Better handling of empty attributes (vs not being specified)
250         - Bug in handling #default
251         
252 2003-09-15 Ben Maurer  <bmaurer@users.sourceforge.net>
253
254         * Compiler.cs: Off by one when parsing localname of QName 
255         * XslAttributeSet.cs: must evaluate used attr sets *BEFORE*
256         children (so that they get overriden)
257
258 2003-09-15 Ben Maurer  <bmaurer@users.sourceforge.net>
259
260         * GenericOutputter.cs: Output attributes in order recieved; not
261         required by spec, but useful for running test cases.
262
263 2003-09-14 Oleg Tkachenko <oleg@tkachenko.com>
264
265         * GenericOutputter.cs - fix bug with outputting state.
266         * Emitter.cs, TextEmitter.cs, XmlWriterEmitter.cs, Outputter.cs, 
267         * TextOutputter.cs - get rid of WriteStartAttribute/WriteEndAttribute.  
268
269 2003-09-13 Ben Maurer  <bmaurer@users.sourceforge.net>
270
271         * Compiler.cs, XslKey.cs, XslTransformProcessor.cs: dont clone
272         exprs on use, pass to nav.
273
274 2003-09-13 Ben Maurer  <bmaurer@users.sourceforge.net>
275
276         * Compiler.cs: pass satic context to Pattern ctor.
277
278 2003-08-30 Oleg Tkachenko <oleg@tkachenko.com>
279
280         * New files: 
281         GenericOutputter.cs - generic Outputter implementation,
282         Attribute.cs - represents outputted attribute,
283         Emitter.cs - abstract output emitter,
284         TextEmitter.cs - text emitter,
285         XmlWriterEmitter.cs - emitter to XmlWriter.
286         * Checking of duplicating attributes is done in GenericOutputter.
287         * Namespace outputting logic is implemented in GenericOutputter.
288         * Outputter.cs: Writing namespace declarations is delegated to 
289         derived classes (GenericOutputter).
290         * XslOutput.cs: standalone flag is now 3-value enum (NONE, YES, NO).                    
291          
292 2003-08-21 Ben Maurer  <bmaurer@users.sourceforge.net>
293
294         * XslTransformProcessor.cs: evaluate variables at beginning
295         when / is current node.
296
297 2003-08-21 Ben Maurer  <bmaurer@users.sourceforge.net>
298
299         * Compiler.cs, XsltCompiledContext.cs, XslTransformProcessorcs:
300         Fix up namespace handeling
301
302 2003-08-20 Ben Maurer  <bmaurer@users.sourceforge.net>
303
304         * Compiler.cs, XslStylesheet.cs, XsltCompiledContext.cs: Stubs for
305         format-number.
306         * XslDecimalFormat.cs: Stub for decimal-format.
307
308 2003-08-20 Ben Maurer  <bmaurer@users.sourceforge.net>
309
310         * TextOutputter.cs: Add option to ignore element content (Oleg).
311
312 2003-08-19 Ben Maurer  <bmaurer@users.sourceforge.net>
313
314         * Compiler.cs: Really give null for blank avt's
315
316 2003-08-19 Ben Maurer  <bmaurer@users.sourceforge.net>
317
318         * Compiler.cs: Fixed lre/lre04.
319
320 2003-08-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
321
322         * Compiler.cs : Fixed XslNameUtil.FromString() so that unprefixed name
323           won't have default namespace. See http://www.w3.org/TR/xslt#qname
324
325 2003-08-19 Ben Maurer  <bmaurer@users.sourceforge.net>
326
327         * XslTransformProcessor.cs: add support for resolving documents.
328         * XsltCompiledContext: add support for document () function.
329
330 2003-08-19 Ben Maurer  <bmaurer@users.sourceforge.net>
331
332         * Outputter.cs, TextOutputter.cs, XmlOutputter.cs: Implement some
333         of the abstract methods in Outputter, making them call other
334         functions with default values, remove impl's in derived classes.
335
336 2003-08-19 Ben Maurer  <bmaurer@users.sourceforge.net>
337
338         * Outputter.cs: s/Close/Done
339         * TextOutputter.cs, XmlOutputter.cs: Flush, don't close the backing.
340         * XslTransformProcessor.cs: Flush output when popping, pop at end.
341
342 2003-08-19 Ben Maurer  <bmaurer@users.sourceforge.net>
343
344         * Outputter.cs: Add support for namespaces.
345
346 2003-08-19 Ben Maurer  <bmaurer@users.sourceforge.net>
347
348         * Compiler.cs, XslOutput.cs, XslStylesheet.cs,
349         XslTransformProcessor.cs: move output logic from XslStylesheet to
350         Compiler.
351
352 2003-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
353
354         * XslOutput.cs: add support for encoding.
355
356 2003-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
357
358         * *.cs: Support for xsl:output. (Oleg)
359
360 2003-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
361
362         * Compiler.cs: handle extension and excluded namespaces.
363
364 2003-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
365
366         * XsltCompiledContext.cs, Compiler.cs: copy the XPathNavigator
367         from the stylesheet for correct namespace resolution.
368
369 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
370
371         * Compiler.cs : 1) Changed public .ctor() to receive Evidence argument 
372           introduced in .NET 1.1. 2) XmlResolver object is required for 'res'.
373
374 2003-08-07 Ben Maurer  <bmaurer@users.sourceforge.net>
375
376         * XslTransformProcessor.cs: Add a table to detect when an object
377         is busy.
378         * XslAttributeSet.cs: Use the above table. Dont throw nullref
379         exception when no use-attribute-sets are specified.
380
381 2003-08-04 Ben Maurer  <bmaurer@users.sourceforge.net>
382
383         * Compiler.cs: Add support for boolean attributes (yes/no).
384
385 2003-08-04 Ben Maurer  <bmaurer@users.sourceforge.net>
386
387         * Compiler.cs: Add method LocalNameOf, to get the local name of a
388         string.
389         * XslTransformProcessor.cs: Support for setting the XmlResolver.
390
391 2003-08-01 Ben Maurer  <bmaurer@users.sourceforge.net>
392
393         * Compiler.cs, XslAttributeSet.cs: Handle attribute set merging
394
395 2003-08-01 Ben Maurer  <bmaurer@users.sourceforge.net>
396
397         * XslTransformProcessor.cs: Add EvaluateNumber method.
398
399 2003-07-31 Ben Maurer  <bmaurer@users.sourceforge.net>
400
401         * XsltCompiledContext.cs: Implement more functions.
402
403 2003-07-31 Ben Maurer  <bmaurer@users.sourceforge.net>
404
405         * Compiler.cs: Add support for key, utility function to parse
406         QName's from the XsltContext. Store keys in the CompiledStyle, not
407         in the Stylesheet.
408         * XslKey.cs: Real implementation
409         * XslStylesheet.cs: Move the keys to CompiledStyle.
410         * XsltCompiledContext.cs: Implement the key function
411
412 2003-07-31 Ben Maurer  <bmaurer@users.sourceforge.net>
413
414         * XsltCompiledContext.cs: Hmm, maybe I should actually *enable*
415         the functions ;-). Also wrote current ().
416
417 2003-07-31 Ben Maurer  <bmaurer@users.sourceforge.net>
418
419         * XsltCompiledContext.cs: Remove excess conversion stuff. It is
420         done in XPath. Add stubs for XSLT functions.
421
422 2003-07-31 Ben Maurer  <bmaurer@users.sourceforge.net>
423
424         * Compiler.cs: To resolve a variable you now need to pass the
425         processor, so that it can be passed to IsEvaluated. A local will
426         only be resolved if it has already been evaluated.
427         * XsltCompiledContext.cs: Pass along the processor.
428         
429 2003-07-30 Ben Maurer  <bmaurer@users.sourceforge.net>
430
431         * Compiler.cs, XslTemplate.cs, XslTransformProcessor.cs: Store
432         variable values in the XslTransformProcessor.
433         * XsltCompiledContext.cs: If the scope is null, don't look there!
434         * Debug.cs: New method Assert
435
436 2003-07-30 Ben Maurer  <bmaurer@users.sourceforge.net>
437
438         * Compiler.cs, XsltCompiledContext.cs: Remove verbose messages
439         * XslTransformProcessor.cs: Use strongtyped evaluation, using new
440         internal methods in XPathNavigator. Remove verbose debugging messages.
441
442 2003-07-29 Ben Maurer  <bmaurer@users.sourceforge.net>
443
444         * Initial Checkin
445