Subject: [xsl] Re: It is not a bug (was: Re^N... Combining stylesheets for baseclass-subclass type d) From: Dimitre Novatchev <dnovatchev@xxxxxxxxx> Date: Mon, 15 Apr 2002 13:17:38 -0700 (PDT) |
Also, as Saxon's message quite well describes, placing <xsl:apply-imports/> within a ***global*** xsl:variable is an error. By definition <xsl:apply-imports/> must be issued within a template (the template that was applied, because it had higher priority than the one in the imported file). To qoute the spec: "At any point in the processing of a stylesheet, there is a current template rule. Whenever a template rule is chosen by matching a pattern, the template rule becomes the current template rule for the instantiation of the rule's template. When an xsl:for-each element is instantiated, the current template rule becomes null for the instantiation of the content of the xsl:for-each element. xsl:apply-imports processes the current node using only template rules that were imported into the stylesheet element containing the current template rule; the node is processed in the current template rule's mode. It is an error if xsl:apply-imports is instantiated when the current template rule is null." http://www.w3.org/TR/xslt#apply-imports Cheers, Dimitre Novatchev. --- Dimitre Novatchev <dnovatchev@xxxxxxxxx> wrote: > What you describe is not exactly a bug. > > I think that a stylesheet without a template must generate an error. > > The only fault of MSXML3/4 is that it's doing not exactly this, but > crashing instead. > > For example, this is Saxon's output: > > "Error at xsl:apply-imports on line 6 of file:/E:\xml\msxml\XML > SDK\Samples\Tests\import\error-test.xsl: > There is no current template > Transformation failed: Run-time errors were reported > Press any key to continue . . . " > > Cheers, > Dimitre Novatchev. > > > Daniel Brockman wrote: > > >It works for me. Probably you forgot to replace > > > > xmlns:v="http://icl.com/saxon"; > > > >with > > > > xmlns:v="urn:schemas-microsoft-com:xslt" > > > Actually, it has nothing to do with that. I'm talking about > xsl:apply-imports in an xsl:variable. For instance, I just confirmed > the following pair of files to crash the following systems: > > * IE 5.5 MSXML 3.0 on Windows 95 > * IE 6.0 MSXML 3.0 on Windows 2000 Service Pack 2, all patches > * IE 6.0 MSXML 3.0 on Windows XP Pro, all patches > > --- test.xml --- > <?xml version="1.0"?> > <?xml-stylesheet type="text/xsl" href="test.xsl"?> > <root /> > > --- test.xsl --- > <?xml version="1.0"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform";> > <xsl:variable name="test"> > <xsl:apply-imports /> > </xsl:variable> > </xsl:stylesheet> > > The same happens for the following set of files: > > --- test2.xml --- > <?xml version="1.0"?> > <?xml-stylesheet type="text/xsl" href="test2-1.xsl"?> > <root /> > > --- test2-1.xsl --- > <?xml version="1.0"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform";> > <xsl:import href="test2-2.xsl" /> > <xsl:variable name="test"> > <xsl:apply-imports /> > </xsl:variable> > </xsl:stylesheet> > > --- test2-2.xsl --- > <?xml version="1.0"?> > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform";> > <xsl:template match="root" /> > </xsl:stylesheet> > > This shows that it's not because there are no imported templates to > apply. It appears to depend on where the xsl:apply-imports is > performed; placing an xsl:apply-imports in an xsl:template does *not* > cause crashes. However, placing it inside the body of an > xsl:variable or an xsl:param does (I also tested both versions with > xsl:param). > > I have not found any information about the bug yet. > > > > > __________________________________________________ > Do You Yahoo!? > Yahoo! Tax Center - online filing with TurboTax > http://taxes.yahoo.com/ > __________________________________________________ Do You Yahoo!? Yahoo! Tax Center - online filing with TurboTax http://taxes.yahoo.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] It is not a bug (was: Re^N..., Dimitre Novatchev | Thread | Re: [xsl] Re: It is not a bug (was:, Daniel Brockman |
[xsl] It is not a bug (was: Re^N..., Dimitre Novatchev | Date | [xsl] expected action not xsl:param, Kiran Raghavapudi |
Month |