atom feed4 messages in org.oasis-open.lists.docbook-appsXSLT 'or' statement (Was Re: DOCBOOK-...
FromSent OnAttachments
Dan YorkJul 31, 2001 10:41 am 
Bob StaytonJul 31, 2001 12:09 pm 
Adam TuroffJul 31, 2001 12:20 pm 
Dan YorkJul 31, 2001 12:35 pm 
Subject:XSLT 'or' statement (Was Re: DOCBOOK-APPS: How can I get stylesheet tobold?)
From:Dan York (dyo@e-smith.com)
Date:Jul 31, 2001 10:41:12 am
List:org.oasis-open.lists.docbook-apps

Bob,

Since I thought your use of the 'or' functionality was quite cool, I modified my customization layer along the lines of what you did:

<xsl:template match="emphasis"> <xsl:choose> <xsl:when test="@role='bold'|@role='strong'"> <!-- changed line --> <xsl:call-template name="inline.boldseq"/> </xsl:when> <xsl:otherwise> <xsl:call-template name="inline.italicseq"/> </xsl:otherwise> </xsl:choose> </xsl:template>

However, in running it through 'xsltproc' I found that I was getting an error generated. It actually seemed to work correctly, but gave me error messages. I did some research and found that the 'or' functionality of XSLT actually uses the word "or". So the test needs to be:

<xsl:when test="(@role='strong') or (@role='bold')">

Once I changed that, everything worked fine and no errors were produced. One source for this is on the XPath page at:

http://www.w3.org/TR/xpath#booleans

I was a bit surprised as I expected the "|" symbol to work, but it appears that it is at least not "proper" XSLT. (At least that is what I could see in the docs.)

Regards, Dan