Subject: [xsl] How to merge translated XML files with the same IDs From: Michael Müller-Hillebrand <mmh@xxxxxxxxxxxxx> Date: Thu, 30 Apr 2009 16:48:57 +0200 |
There is a XML document instance using unique IDs for internal cross- references:
<doc language="en"> <title id="id003">Wonderful World</title> <para>...</para> <para>... see <xref idref="id003" format="page" />.</para> </doc>
Now assume this document is translated into many languages and in the end all those documents should be merged into a single XML document for publishing.
<book> <doc language="en"> ... </doc> <doc language="de"> ... </doc> <doc language="zh"> ... </doc> </book>
Since the translators do not touch the IDs we suddenly would have many duplicate IDs in the document. I already learned the using doc() it is possible to access XML files with the same IDs, but of course the resulting document would not be valid against the DTD.
My approach would be to prefix every @id and @idref with the (unique) @language of the <doc> element like this:
<xsl:template match="@idref | @id"> <xsl:attribute name="{name()}"> <xsl:value-of select="concat(ancestor::doc/@language, '_', .)"/> </xsl:attribute> </xsl:template>
-- _______________________________________________________________ Michael M|ller-Hillebrand: Dokumentation Technology Adobe Certified Expert, FrameMaker Consulting and Training, FrameScript, XML/XSL, Unicode Blog [de]: http://cap-studio.de/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Using external XML to con, Sree | Thread | Re: [xsl] How to merge translated X, David Carlisle |
RE: [xsl] Using external XML to con, Michael Kay | Date | Re: [xsl] How to merge translated X, David Carlisle |
Month |