Tim, Dimitry, This looks like a problem in XSLTC. It is checking the context of an xsl:attribute and trying to be smart as to whether is misplaced or not. The requirement is for attributes to be output before children. The stylesheet is OK, but in general a call to xsl:apply-templates *may* add children (e.g. text nodes) to which an attribute cannot be associated.
Try commenting out line 142 in xsltc/compiler/XslAttribute.java and see what happens (_ignore = true). Obviously, this heuristic must be revisited (I think the warning is OK, ignoring the attribute is not). -- Santiago ----- Original Message ----- From: "Tim Cronin" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, March 19, 2003 1:41 PM Subject: RE: xsl behavior > Thanks, > > Yes I'm using org.apache.xalan.xsltc.trax.TransformerFactoryImpl > > it's ignoring the attribute setting. the font never get set to > red. If I remove the apply templates line it does work and > of course the warning goes away. > > the font template is used to set other font attributes. > the color attrib needs to be after it in order to over ride > the default set by the font template. > > -----Original Message----- > From: Voytenko, Dimitry [mailto:[EMAIL PROTECTED] > Sent: Wednesday, March 19, 2003 12:03 PM > To: 'Tim Cronin'; [EMAIL PROTECTED] > Subject: RE: xsl behavior > > > Hi, > > Is that XSLTC then? Interpretive Xalan works fine. XSLTC does output warning > saying: > Compiler warning(s): > file:///...../test/att.xsl: line 8: Attribute 'color' outside of > element. > > The stylesheet is fine by XSLT specs, but potentially there can be a > problem. May be that's what this message is intended to say. I don't see any > way how the _compiler_ can actually diagnose this kind of problem with > xsl:apply-templates inside. Such an error can be only cought in run-time in > this case. > > Thanks, > Dimitry > > -----Original Message----- > From: Tim Cronin [mailto:[EMAIL PROTECTED] > Sent: Wednesday, March 19, 2003 09:40 > To: [EMAIL PROTECTED] > Subject: RE: xsl behavior > > > 2.5D1 > > -----Original Message----- > From: Joseph Kesselman [mailto:[EMAIL PROTECTED] > Sent: Wednesday, March 19, 2003 11:36 AM > To: Tim Cronin > Subject: Re: xsl behavior > > ><xsl:attribute> must generate its output as the child of an element > >(either literal result element or <xsl:element> and must precede any > >non-attribute children. > > it is the child of an element, the font template just generates attributes. > > >Try generating the attribute _before_ calling <xsl:apply-templates>. > > with the attrib before, the template always overrides it. > > the attrib was below the template in order to override what the template set > depending > on the xsl:if. > > > -----Original Message----- > From: Voytenko, Dimitry [mailto:[EMAIL PROTECTED] > Sent: Wednesday, March 19, 2003 11:45 AM > To: 'Tim Cronin'; [EMAIL PROTECTED] > Subject: RE: xsl behaviour > > > Hi Tim, > > What's the version of Xalan you're using? > > Thanks, > Dimitry > > -----Original Message----- > From: Tim Cronin [mailto:[EMAIL PROTECTED] > Sent: Wednesday, March 19, 2003 08:29 > To: [EMAIL PROTECTED] > Subject: xsl behaviour > > > given the following Stylesheet > > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:template match="/"> > <FONT> > <xsl:apply-templates select="/Properties/[EMAIL PROTECTED]'Data > Properties']/[EMAIL PROTECTED]'Font']/Font"/> > <xsl:attribute name="color"><xsl:if > test="[EMAIL PROTECTED]'QuantityShort']<0">Red</xsl:if></xsl:attribute> > <xsl:value-of select="[EMAIL PROTECTED]'QuantityOnOrder']"/> > </FONT> > </xsl:template> > <xsl:template match="Font"> > <xsl:attribute name="face"><xsl:value-of > select="@Family"/></xsl:attribute> > <xsl:attribute name="color"><xsl:value-of > select="@Color"/></xsl:attribute> > <xsl:attribute name="style">font-size:<xsl:value-of select="@Size"/>; > font-style:<xsl:value-of select="@Style"/>;font-weight:<xsl:value-of > select="@Weight"/>;</xsl:attribute> > </xsl:template> > </xsl:stylesheet> > > I get a transformation warning saying that "Attribute color is outside of > element" > refering to this line: > <xsl:attribute name="color"><xsl:if > test="[EMAIL PROTECTED]'QuantityShort']<0">Red</xsl:if></xsl:attribute> > > the problem is within the font section > <FONT> > <xsl:apply-templates select="/Properties/[EMAIL PROTECTED]'Data > Properties']/[EMAIL PROTECTED]'Font']/Font"/> > <xsl:attribute name="color"><xsl:if > test="[EMAIL PROTECTED]'QuantityShort']<0">Red</xsl:if></xsl:attribute> > <xsl:value-of select="[EMAIL PROTECTED]'QuantityOnOrder']"/> > </FONT> > > under MS this worked OK... > should I be able to do this? > > > _____________________________________________________ > Revere Data, LLC, formerly known as Sector Data, LLC, is not affiliated with > Sector, Inc., or SIAC. > > > _____________________________________________________ > Revere Data, LLC, formerly known as Sector Data, LLC, is not affiliated with > Sector, Inc., or SIAC.
