docbook-apps

Re: [docbook-apps] Inheritance of customized generated text

  • 1.  Re: [docbook-apps] Inheritance of customized generated text

    Posted 10-10-2008 18:33
    Hi,
    A different approach is required here. A param such as $local.l10n.xml can
    have only one value, and there is no provision in XSLT to automatically
    merge nodes from two import layers into a single param.

    The stylesheets load the stock gentext into a param named $l10n.xml, and any
    customization gets loaded into the param named $local.l10n.xml. When
    gentext is needed, an xsl:choose statement first checks in $local.l10n.xml,
    and if not found there, falls back to $l10n.xml. If you want three layers,
    you would need a third param, and alter the xsl:choose to add another
    xsl:when.

    An alternative approach is to create two separate xml files that contain
    your gentext customizations, such as gentext-common.xml and
    gentext-special.xml (each has a root element of l:i18n). The common
    stylesheet would use:

    <xsl:param name="local.l10n.xml" select="document('gentext-common.xml')"/>

    and the special stylesheet would use:

    <xsl:param name="local.l10n.xml" select="document('gentext-special.xml')"/>

    Each has to be complete, however, as this would not merge them. If you need
    to merge them, then you would need to load each of them into different
    variables (not named local.l10n.xml), and use an XSLT process to assemble
    them into $local.l10n.xml using your merge logic.

    Bob Stayton
    Sagehill Enterprises
    bobs@sagehill.net