|
Subject: Re: [xsl] Using xsl:key From: siarom egrub <egrubs@xxxxxxxxx> Date: Thu, 30 Nov 2006 19:00:47 -0800 (PST) |
David,
Thanks for responding! I will provide more
information.
The way I have it setup is as follows:
I am going to call this XML snippet the master XML
because it calls the other language spaecific XMLs.
This is because I want one PDF output with all
languages.
<====master.xml=====>
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="PCALetters.xsl"
type="text/xsl"?>
<!DOCTYPE RegLetter PUBLIC "-//SE Inc//DTD Regulatory
Letters XML//EN" "letters.dtd" [
<!ENTITY T11-30-06S030132023_EN SYSTEM
"T11-30-06S030132023-EN.xml">
<!ENTITY T11-30-06S030132023_DE SYSTEM
"T11-30-06S030132023-DE.xml">
<!ENTITY T11-30-06S030132023_FR SYSTEM
"T11-30-06S030132023-FR.xml">
<!ENTITY T11-30-06S030132023_IT SYSTEM
"T11-30-06S030132023-IT.xml">
]>
<RegLetter docpartnum="T11-30-06S" watermark="no"
status="preview">
<Stuffer>
<docinfo>
<SEIlogo>
<figureprint>
<graphic fileref="seilogo.eps"/>
</figureprint>
</SEIlogo>
<madeIn>Made in </madeIn>
<copyright>© Copyright...</copyright>
<printedIn>Printed in </printedIn>
<address>
<addressline>B...4800 Harbor
Street...</addressline>
</address>
</docinfo>
&T11-30-06S030132023_EN;
&T11-30-06S030132023_DE;
&T11-30-06S030132023_FR;
&T11-30-06S030132023_IT;
</Stuffer>
</RegLetter>
</====master.xml=====>
This is a snippet of the English XML file (first
output in the PDF)
<=====T11-30-06S030132023-EN.xml=====>
<?xml version="1.0" encoding="iso-8859-1"?>
<lang type="EN">
<infogroup>
<fixedterms>
<term id="caution" text="CAUTION"/>
<term id="warning" text="WARNING"/>
<term id="notice" text="NOTICE"/>
...
</fixedterms>
</infogroup>
...
<warning><para>Missing translation...(Testing
Warning)</para></warning>...
</lang>
</=====T11-30-06S030132023-EN.xml=====>
German XML snippet (2nd output in the PDF)
<=====T11-30-06S030132023-DE.xml=====>
<?xml version="1.0" encoding="iso-8859-1"?>
<lang type="DE">
<infogroup>
<fixedterms>
<term id="caution" text="WARNHINWEIS"/>
<term id="warning" text="WARNUNG"/>
<term id="notice" text="HINWEIS"/>
...
</fixedterms>
</infogroup>
...
<warning><para>Missing translation...(Testing
Warning)</para></warning>...
</lang>
</=====T11-30-06S030132023-DE.xml=====>
French XML snippet (3rd output in the PDF)
<=====T11-30-06S030132023-FR.xml=====>
<?xml version="1.0" encoding="iso-8859-1"?>
<lang type="FR">
<infogroup>
<fixedterms>
<term id="caution" text="ATTENTION"/>
<term id="warning" text="AVERTISSEMENT"/>
<term id="notice" text="REMARQUE"/>
...
</fixedterms>
</infogroup>
...
<warning><para>Missing translation...(Testing
Warning)</para></warning>...
</lang>
</=====T11-30-06S030132023-FR.xml=====>
Italian XML snippet (4th output in the PDF)
<=====T11-30-06S030132023-IT.xml=====>
<?xml version="1.0" encoding="iso-8859-1"?>
<lang type="IT">
<infogroup>
<fixedterms>
<term id="caution" text="ATTENZIONE"/>
<term id="warning" text="AVVERTENZA"/>
<term id="notice" text="AVVISO"/>
...
</fixedterms>
</infogroup>
...
<warning><para>Missing translation...(Testing
Warning)</para></warning>...
</lang>
</=====T11-30-06S030132023-IT.xml=====>
There are more languages with the same concept.
Here is the XSL Snippet:
<!--This is declared at the top of the FO style
sheet-->
<xsl:key name="terms" match="term" use="@id"/>
<xsl:template match="/">
<xsl:template match="warning">
<fo:block text-align="center">
<fo:table border-style="solid" border-width="1pt"
space-after="2.5mm">
<fo:table-column column-width="75%"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell padding-top="2mm">
<fo:block text-align="center"
font-weight="bold">
<fo:external-graphic
content-width=".3in" src="warning.eps"/>
<xsl:for-each
select="key('terms','warning')">
<xsl:text> </xsl:text>
<xsl:value-of select="@text"/>
</xsl:for-each>
</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell padding-top="2mm"
padding-bottom="2mm" text-align="justify"
font-weight="bold"
start-indent="2mm" end-indent="2mm">
<fo:block>
<xsl:apply-templates/>
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:block>
</xsl:template>
Thanks again!
Siarom
--- David Carlisle <davidc@xxxxxxxxx> wrote:
>
> you don't show enough of your input to really help.
> In particular,
> where do you have the entity references? (you show
> them appearng
> immediately after the entity declaration, but that
> presumably isn't
> where they appear. Also where in the XML do you
> record which are the
> german texts and which are the english ones? The
> entity names end in
> _DE and _EN but entities are expanded _before_ XSLT
> starts, they are
> just a macro pre-processor syntax. So XSLT just sees
> the XML that
> results from expanding the entities and never sees
> the entity names.
>
> So, somewhere in your source xml or your stylesheet
> you must have a
> syntax that specifies which language you want, and
> somewhere in your xml
> that holds the language texts, you must have some
> syntax to say which
> language it is for. The details of what XSLT you use
> to tie these
> together depend on the details of where the
> information is specified,
> but you haven't given any information.
>
> David
>
>
____________________________________________________________________________________
Cheap talk?
Check out Yahoo! Messenger's low PC-to-Phone call rates.
http://voice.yahoo.com
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Using xsl:key, David Carlisle | Thread | [no subject], Unknown |
| Re: [xsl] Using xsl:key, David Carlisle | Date | [no subject], Unknown |
| Month |