You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by bu...@apache.org on 2004/08/19 23:42:39 UTC

DO NOT REPLY [Bug 30766] New: - XSLTC fails to access auxilliary (non-main) xml file.

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=30766>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=30766

XSLTC fails to access auxilliary (non-main) xml file.

           Summary: XSLTC fails to access auxilliary (non-main) xml file.
           Product: XalanJ2
           Version: 2.6
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Major
          Priority: Other
         Component: Xalan-Xsltc
        AssignedTo: xalan-dev@xml.apache.org
        ReportedBy: bdubausk@us.ibm.com


In our project we need to access non-main XML file in order to retrieve 
localized strings that will later appear in resulting HTMLs. If we use XSLTC 
as our processor it is impossible.

Example. The same example works fine in interpretive Xalan. But fails on Xalan-
XSLTC.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
    xmlns:xalan="http://xml.apache.org/xalan">

    <xsl:output method="html"/>
    
    <xsl:variable name="stringTable" select="document('foo.xml')"/>

    <!-- Look up the parameter key in the localized string table (loaded in 
the variable stringTable 
       based on the passed in parameter stringTableFileName).  If the key 
cannot be found then the 
       returned string will be !<key>!.
       
       Parameters:
       key - the look up key matched to the key attribute of string elements 
in the lookup table
   -->
	

    <!-- Perhaps not the fastest approach but it is compatible with both XSLTC 
and interpretive Xalan -->
    <xsl:template name="getLocalizedString">
        <xsl:param name="key"/>
        <xsl:value-of select="$key"/>
        <xsl:variable name="lookupString" select="$stringTable/strings/string
[@key=$key]"/>
        <xsl:choose>
            <xsl:when test="$lookupString != ''">
                <xsl:value-of select="$lookupString"/>
            </xsl:when>
            <xsl:otherwise>
                <xsl:element name="a">
                    <xsl:attribute name="name">MISSING_L10N_KEY</xsl:attribute>
                    <xsl:text>!!</xsl:text>
                    <xsl:value-of select="$key"/>
                    <xsl:text>!!</xsl:text>
                </xsl:element>
            </xsl:otherwise>
        </xsl:choose> 
    </xsl:template>
</xsl:stylesheet>


Example of XML file

<?xml version="1.0" encoding="UTF-8" ?>
<strings>
	<string key="Description.Foo">Here goes description of foo</string>
</strings>

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-dev-help@xml.apache.org