- From: Andras Micsik <micsik@dsd.sztaki.hu>
- Date: Mon, 28 Apr 2003 14:10:29 +0200 (MET DST)
- To: <www-voice@w3.org>
Hi, we found that assertion 1 always fails, and the cause is faulty Perl code generated with ircgi2pl.xslt using xsltproc. Might be the case that xsltproc is not 100% compliant to the XSL recommendation..., but anyway there is a workaround: The problematic excerpt: <if-header name="User-Agent"> <if-header name="User-Agent" value="" > <comment> User-Agent header present, but empty. </comment> The generated Perl code excerpt: $val = $ENV{HTTP_USER_AGENT}; if (defined($val) && ($val =~ /^\s*$/)) { $val = $ENV{HTTP_USER_AGENT}; if (defined($val) && ($val =~ /^\s*$/)) { push @comments, qq { User-Agent header present, but empty. }; .... and finally, it says that User-Agent was not supplied... The first if-header tag is processed the same way as the second. This is because <xsl:when test="$value=''"> is true when value parameter is missing. So here is the modified part of ircgi2pl.xslt, which works well even with xsltproc: ... <xsl:when test="$value"> <xsl:choose> <xsl:when test="$value=''"> if (defined($val) && ($val =~ /^\s*$/)) { <xsl:apply-templates/> } </xsl:when> <xsl:otherwise> my $match = '<xsl:value-of select="$value"/>'; if (defined($val) && ($val =~ /^$match$/<xsl:if test="$ignore-case='true'">i</xsl:if>)) { <xsl:apply-templates/> } </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> if (defined($val)) { <xsl:apply-templates/> } </xsl:otherwise> ... ---------------------------------------------------- András Micsik MTA SZTAKI Hungary http://www.sztaki.hu/~micsik
Received on Monday, 28 April 2003 08:10:42 UTC