[Libreoffice] [Fwd: [PATCH] new De-Java-ised flat XML export]

David Tardon dtardon at redhat.com
Wed Feb 2 23:06:10 PST 2011


Hi, Peter,

> +    /*
> +     * FLABridge provides some obscure attribute mangling to wordml2000 import/export filters.
> +     * In the long run, you might want to replace this with an XSLT extension function.
> +     */
> +    class FLABridge : public WeakImplHelper1< DocumentHandlerAdapter >
> +    {

FLA is a way to avoid doing heavy arithmetic computations of attribute
values directly in XSLT; instead, the arithmetic expression is emitted
to output as FLA expression and suffix '.value' is added to the name of
the attribute, so it can be recognised and evaluated by the FLABridge
(where the suffix is removed again). It is mainly used in
filter/source/xslt/import/wordml/wordml2ooo_props.xsl, but at a few
other places too.

So much for theory. In practice, the syntax of FLA is so horrible that
XLST is the essence of clarity in comparison .-) E.g., look at the
following snippet from
filter/source/xslt/import/wordml/wordml2ooo_props.xsl and description of
the FLA syntax in filter/source/xsltfilter/fla.cxx and tell what the
expression in 'select' does .-)

<xsl:attribute name="fo:margin-top.value">
   <xsl:value-of
   select="concat('(.(twips2cm(?[',name(w:hdr),'](?(>=($0[',w:pgMa
   r/@w:top,'])($1(|[',w:pgMar/@w:header,'][720])))($1)($0))[',w:pgMar/@w:top,']))
   [cm])')"/>
</xsl:attribute>

IMHO all these FLA computations should be rewritten to XSLT and the
FLABridge abolished. Maybe you'd want to attempt that? :-)

D.


More information about the LibreOffice mailing list