[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] Adding a border to graphics
Subject: RE: [xsl] Adding a border to graphics From: Nancy Brandt <nancy_brndt@xxxxxxxxx> Date: Tue, 30 Oct 2007 08:15:20 -0700 (PDT) |
Hi, Michael. The only thing I try to do actually, is to customize the "image.processing" template in graphics.xsl by adding the following part: <fo:external-graphic> <xsl:if test="ancestor::figure[role|@bordered]"> <xsl:attribute name="border-color">black</xsl:attribute> <xsl:attribute name="border-style">solid</xsl:attribute> </xsl:if> </fo:external-graphic> I import graphics,xsl into my customization layer and add the piece above as I have already described. Apparently, -:( I do it in a wrong fashion. please, help! Thanks in advance, nancy --- Michael Kay <mike@xxxxxxxxxxxx> wrote: > > When you say "it didn't work", you mean it didn't do > what you expected it to > do: so to deal with your problem I have to look at > your incorrect code and > try and work out what you thought it might do. > > Sorry if I'm guessing wrong, but you seem to be > imagining that when you > write an <imagedata> element to the result tree, the > template with > match="imagedata" is going to magically involved to > post-process it, and > perhaps that the output of this template is going to > magically replace the > element that was matched in the tree. If so, then > I'm afraid you're guilty > of wishful thinking! > > There are many ways you could tackle this problem, > but the one that's > closest to your design is to write the <imagedata> > element to a variable, > and then call apply-templates on this variable. You > can then have two > variants ot the template that process this element > (one of which might do > nothing). Note that to apply templates to a > temporary tree you either need > XSLT 2.0, or a 1.0 processor with the xx:node-set() > extension. > > Michael Kay > http://www.saxonica.com/ > > > > > So I did two things: > > > > 1) in my template for bordered images I inserted a > "role" > > attribute with value "bordered" like that: > > > > <xsl:template match="diagram_border"> > > <xsl:element name="figure"> > > <xsl:attribute name="id"> > > <xsl:value-of select="@ref"/> > > </xsl:attribute> > > <xsl:attribute name="role"> > > <xsl:value-of select="@bordered"/> > > </xsl:attribute> > > <title> > > <xsl:value-of select="@t"/> > > </title> > > <mediaobject> > > <imageobject> > > <xsl:element name="imagedata"> > > <xsl:attribute > > name="width">80%</xsl:attribute> > > <xsl:attribute > > name="scalefit">1</xsl:attribute> > > <xsl:attribute name="fileref"> > > <xsl:value-of select="concat('images/', @ref, > '.png')"/> > > </xsl:attribute> > > </xsl:element> > > </imageobject> > > </mediaobject> > > </xsl:element> > > </xsl:template> > > > > > > 2) I added the following in the customization > layer: > > > > <xsl:template match="imagedata"> > > <fo:external-graphic> > > <xsl:if > test="ancestor::figure[role|@bordered]"> > > <xsl:attribute > > name="border-color">black</xsl:attribute> > > <xsl:attribute > > name="border-style">solid</xsl:attribute> > > </xsl:if> > > </fo:external-graphic> > > </xsl:template> > > > > However, it does not work. Please, advise! > > > > Thanks in advance, > > Nancy > > > > > > __________________________________________________ > > Do You Yahoo!? > > Tired of spam? Yahoo! Mail has the best spam > protection around > > http://mail.yahoo.com > > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Adding a border to graphi, Michael Kay | Thread | Re: [xsl] Adding a border to graphi, J.Pietschmann |
Re: [xsl] Adding a border to graphi, Nancy Brandt | Date | Re: [xsl] Adding a border to graphi, G. Ken Holman |
Month |
Keywords