【问题标题】:Camel-fop does not work properly with ServiceMix 5.4.0 - error creating XSL-FOCamel-fop 无法与 ServiceMix 5.4.0 一起正常工作 - 创建 XSL-FO 时出错
【发布时间】:2015-08-16 14:47:19
【问题描述】:

我尝试在 ServiceMix 中使用 camel-fop。 我在 Eclipse 中制作了一条路线,在 Eclipse 中测试它 - 一切正常。

但是在 ServiceMix 中部署它之后,我遇到了错误: “javax.xml.transform.TransformerException:org.apache.fop.fo.ValidationException:元素“fo:simple-page-master”缺少必需的属性“master-name”

这是 xsl-fo 的一部分(来自 ServiceMix 日志) - 不正确的一个:

<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fox="http://xml.apache.org/fop/extensions">
<fo:layout-master-set>
<fo:simple-page-master>
<fo:region-body/>
</fo:simple-page-master>
<fo:simple-page-master>
<fo:region-body/>
</fo:simple-page-master>
<fo:page-sequence-master>
<fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference/>
<fo:conditional-page-master-reference/>
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
</fo:layout-master-set>
<fo:page-sequence>
<fo:flow>
<fo:block>
<fo:block>
<fo:inline/>
</fo:block>
</fo:block>
<fo:block>

.....

如您所见 - 许多人丢失了。

这是正确的,当我尝试通过 Eclipse 获取它时:

<?xml version="1.0" encoding="UTF-8"?><fo:root xmlns:fox="http://xml.apache.org/fop/extensions" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="first" margin-right="0.8cm" margin-left="0.8cm" margin-bottom="1.0cm" margin-top="1.5cm" page-width="29.7cm" page-height="21cm">
<fo:region-body margin-bottom="0.5cm" margin-top="0cm"/>
</fo:simple-page-master>
<fo:simple-page-master master-name="rest" margin-right="0.8cm" margin-left="0.8cm" margin-bottom="1.0cm" margin-top="1.5cm" page-width="29.7cm" page-height="21cm">
<fo:region-body margin-bottom="0.5cm" margin-top="0cm"/>
</fo:simple-page-master>
<fo:page-sequence-master master-name="document">
<fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference page-position="first" master-reference="first"/>
<fo:conditional-page-master-reference page-position="rest" master-reference="rest"/>
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
</fo:layout-master-set>

...

非常感谢任何帮助!

这是我的 xsl:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" exclude-result-prefixes="fo">
<xsl:output method="xml" version="1.0" omit-xml-declaration="no" indent="yes"/>
<!-- ========================= -->
<!-- root element: m11base -->
<!-- ========================= -->
<xsl:template match="m11base">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fox="http://xml.apache.org/fop/extensions">

<!--  -->

<fo:layout-master-set>
<fo:simple-page-master  master-name="first" margin-right="0.8cm" margin-left="0.8cm" margin-bottom="1.0cm" margin-top="1.5cm" page-width="29.7cm" page-height="21cm">
<fo:region-body margin-bottom="0.5cm" margin-top="0cm"/>
<!--<fo:region-before extent="0cm"/>
<fo:region-after extent="0cm"/>-->
</fo:simple-page-master>
<fo:simple-page-master  master-name="rest" margin-right="0.8cm" margin-left="0.8cm" margin-bottom="1.0cm" margin-top="1.5cm" page-width="29.7cm" page-height="21cm">
<fo:region-body margin-bottom="0.5cm" margin-top="0cm"/>
</fo:simple-page-master>
<fo:page-sequence-master master-name="document">
<fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference page-position="first"
          master-reference="first"/>
<fo:conditional-page-master-reference page-position="rest"
          master-reference="rest"/>
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
</fo:layout-master-set>

<fo:page-sequence master-reference="document" language="ru" hyphenate="true">
<!--
<fo:static-content flow-name="xsl-region-before">
<fo:block line-height="12pt" font-family="Arial" font-size="10pt" space-before.optimum="1.5pt" space-after.optimum="1.5pt" keep-together="always">Trebovanie-nakladnaja</fo:block>
</fo:static-content>
<fo:static-content flow-name="xsl-region-after">
-->
<!--
<fo:block line-height="12pt" font-family="Arial" font-size="10pt" space-before.optimum="1.5pt" space-after.optimum="1.5pt" keep-together="always">
 ... the footer should be inserted here ...
</fo:block>
</fo:static-content>
-->
<fo:flow flow-name="xsl-region-body">
<fo:block>
<fo:block space-before.optimum="1.5pt" space-after.optimum="1.5pt" keep-together="always" line-height="100%" margin-bottom="0cm">
<fo:inline white-space-collapse="false"></fo:inline>
</fo:block>
</fo:block>

<fo:block space-before.optimum="1.5pt" space-after.optimum="1.5pt" keep-together="always" line-height="100%" margin-bottom="0cm" margin-left="21.4cm">
<fo:inline font-family="Arial" font-size="8pt">Типовая межотраслевая форма №</fo:inline></fo:block>

<fo:block space-before.optimum="1.5pt" space-after.optimum="1.5pt" keep-together="always" line-height="100%" margin-bottom="0cm" margin-left="21.4cm">
<fo:inline font-family="Arial" font-size="8pt">Утверждена постановлением </fo:inline></fo:block>

<fo:block space-before.optimum="1.5pt" space-after.optimum="1.5pt" keep-together="always" line-height="100%" margin-bottom="0cm" margin-left="21.4cm">
<fo:inline font-family="Arial" font-size="8pt">от 30.10.97</fo:inline>
</fo:block>

<fo:block space-before.optimum="1.5pt" space-after.optimum="1.5pt" keep-together="always" line-height="5pt" margin-bottom="0cm" margin-left="21.4cm">
</fo:block>

<fo:table text-align="left">
<fo:table-column column-width="2.88cm"/>
<fo:table-column column-width="4.78cm"/>
<fo:table-column column-width="9.24cm"/>
<fo:table-column column-width="3.72cm"/>
<fo:table-column column-width="2.7cm"/>
<fo:table-column column-width="2.83cm"/>
<fo:table-column column-width="1.95cm"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell padding="2pt" height="13pt" number-columns-spanned="2">
<fo:block line-height="100%" font-family="Arial" font-size="10pt" keep-together="always">
<fo:inline white-space-collapse="false"></fo:inline>
</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt">
<fo:block keep-together="always" font-weight="bold" line-height="100%" font-family="Arial" font-size="16pt" text-align="right" display-align="after">ТРЕБОВАНИЕ-НАКЛАДНАЯ №</fo:block>
</fo:table-cell>

<fo:table-cell border-bottom="1pt solid black" padding="2pt">
<fo:block keep-together="always" font-weight="bold" line-height="100%" font-family="Arial" font-size="16pt" text-align="left" display-align="after"><xsl:value-of select="nomnakl"/></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" number-columns-spanned="2">
<fo:block line-height="100%" font-family="Arial" font-size="10pt" keep-together="always">
<fo:inline white-space-collapse="false"></fo:inline>
</fo:block>
</fo:table-cell>

<fo:table-cell border="1pt solid black" padding="2pt">
<fo:block line-height="100%" font-family="Arial" font-size="8pt" keep-together="always" text-align="center" display-align="after">Коды</fo:block>
</fo:table-cell>
</fo:table-row>

<fo:table-row>
<fo:table-cell padding="2pt" number-columns-spanned="5">
<fo:block line-height="100%" font-family="Arial" font-size="8pt" keep-together="always" margin-right="0.1cm" text-align="end" display-align="after"></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt">
<fo:block line-height="100%" font-family="Arial" font-size="8pt" keep-together="always" margin-right="0.1cm" text-align="end" display-align="after">Форма по ОКУД</fo:block>
</fo:table-cell>

<fo:table-cell border="1pt solid black" padding="2pt">
<fo:block line-height="100%" font-family="Arial" font-size="8pt" keep-together="always" text-align="center" display-align="after">0315006</fo:block>
</fo:table-cell>
</fo:table-row>

<fo:table-row>
<fo:table-cell padding="2pt">
<fo:block line-height="100%" font-family="Arial" font-size="10pt" keep-together="always" text-align="center" display-align="after">Организация</fo:block>
</fo:table-cell>

<fo:table-cell border-bottom="1pt solid black" padding="2pt" number-columns-spanned="4">
<fo:block line-height="100%" font-family="Arial" font-size="10pt" keep-together="always" text-align="center" display-align="after"><xsl:value-of select="organiz"/></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt">
<fo:block line-height="100%" font-family="Arial" font-size="8pt" keep-together="always" margin-right="0.1cm" text-align="end" display-align="after">по ОКПО</fo:block>
</fo:table-cell>

<fo:table-cell border="1pt solid black" padding="2pt">
<fo:block line-height="100%" font-family="Arial" font-size="8pt" keep-together="always" text-align="center" display-align="after">80096573</fo:block>
</fo:table-cell>
</fo:table-row>

<fo:table-row>
<fo:table-cell padding="2pt" height="5pt">
<fo:block line-height="100%" font-family="Arial" font-size="8pt" keep-together="always"></fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>

<fo:table text-align="left">
<fo:table-column column-width="2.92cm"/>
<fo:table-column column-width="2.92cm"/>
<fo:table-column column-width="3.47cm"/>
<fo:table-column column-width="3.47cm"/>
<fo:table-column column-width="3.47cm"/>
<fo:table-column column-width="3.47cm"/>
<fo:table-column column-width="2.22cm"/>
<fo:table-column column-width="3.18cm"/>
<fo:table-column column-width="2.98cm"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell padding="2pt" border="1pt solid black" number-rows-spanned="2">
<fo:block font-family="Arial" font-size="8pt" text-align="center">Дата составления</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black" number-rows-spanned="2">
<fo:block font-family="Arial" font-size="8pt" text-align="center">Код вида операции</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black" number-columns-spanned="2">
<fo:block font-family="Arial" font-size="8pt" text-align="center">Отправитель</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black" number-columns-spanned="2">
<fo:block font-family="Arial" font-size="8pt" text-align="center">Получатель</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black" number-columns-spanned="2">
<fo:block font-family="Arial" font-size="8pt" text-align="center">Корреспондирующий счет</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black" number-rows-spanned="2">
<fo:block font-family="Arial" font-size="8pt" text-align="center">Учетная единица выпуска продукции (работ, услуг)</fo:block>
</fo:table-cell>
</fo:table-row>

<fo:table-row>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">структурное подразделение</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">вид деятельности</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">структурное подразделение</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">вид деятельности</fo:block>
</fo:table-cell>

<fo:table-cell border="1pt solid black" padding="2pt">
<fo:block font-family="Arial" font-size="8pt" text-align="center">счет, субсчет</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">код аналитического учета</fo:block>
</fo:table-cell>
</fo:table-row>

<fo:table-row>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center"><xsl:value-of select="datasost"/></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center"><xsl:value-of select="codvo"/></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center"><xsl:value-of select="podrotpav"/></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center"><xsl:value-of select="viddotpav"/></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center"><xsl:value-of select="podrpoluch"/></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center"><xsl:value-of select="viddpoluch"/></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center"><xsl:value-of select="kssb"/></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center"><xsl:value-of select="kscod"/></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center"><xsl:value-of select="uchedin"/></fo:block>
</fo:table-cell>
</fo:table-row>

<fo:table-row>
<fo:table-cell padding="2pt" height="5pt">
<fo:block line-height="11pt" font-family="Arial" font-size="8pt" keep-together="always"></fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>

<fo:table text-align="left">
<fo:table-column column-width="2.88cm"/>
<fo:table-column column-width="8.52cm"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell padding="2pt">
<fo:block line-height="100%" font-family="Arial" font-size="10pt" keep-together="always" text-align="center">Через кого</fo:block>
</fo:table-cell>

<fo:table-cell border-bottom="1pt solid black" padding="2pt">
<fo:block line-height="100%" font-family="Arial" font-size="10pt" keep-together="always" text-align="center"><xsl:value-of select="cherezkog"/></fo:block>
</fo:table-cell>
</fo:table-row>

<fo:table-row>
<fo:table-cell padding="2pt">
<fo:block line-height="11pt" font-family="Arial" font-size="8pt" keep-together="always"></fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>

<fo:table text-align="left">
<fo:table-column column-width="2.22cm"/>
<fo:table-column column-width="2.99cm"/>
<fo:table-column column-width="5.67cm"/>
<fo:table-column column-width="2.74cm"/>
<fo:table-column column-width="1.45cm"/>
<fo:table-column column-width="1.94cm"/>
<fo:table-column column-width="2.02cm"/>
<fo:table-column column-width="2.02cm"/>
<fo:table-column column-width="2.05cm"/>
<fo:table-column column-width="2.3cm"/>
<fo:table-column column-width="2.7cm"/>
<fo:table-body>
<fo:table-row>
<fo:table-cell padding="2pt" border="1pt solid black" number-columns-spanned="2">
<fo:block font-family="Arial" font-size="8pt" text-align="center">Корреспондирующий счет</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black" number-columns-spanned="2">
<fo:block font-family="Arial" font-size="8pt" text-align="center">Материальные ценности</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black" number-columns-spanned="2">
<fo:block font-family="Arial" font-size="8pt" text-align="center">Единица измерения</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black" number-columns-spanned="2">
<fo:block font-family="Arial" font-size="8pt" text-align="center">Количество</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black" number-rows-spanned="2">
<fo:block font-family="Arial" font-size="8pt" text-align="center">Цена, руб. коп.</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black" number-rows-spanned="2">
<fo:block font-family="Arial" font-size="8pt" text-align="center">Сумма без учета НДС, руб. коп.</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black" number-rows-spanned="2">
<fo:block font-family="Arial" font-size="8pt" text-align="center">Порядковый номер по складской картотеке</fo:block>
</fo:table-cell>
</fo:table-row>

<fo:table-row>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">счет, субсчет</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">код аналитического учета</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">наименование</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">номенклатурный номер</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">код</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">наиме- нование</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">затребовано</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">отпущено</fo:block>
</fo:table-cell>
</fo:table-row>

<fo:table-row>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">1</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">2</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">3</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">4</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">5</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">6</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">7</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">8</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">9</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">10</fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center">11</fo:block>
</fo:table-cell>
</fo:table-row>

<xsl:apply-templates/>

<fo:table-row>
<fo:table-cell padding="2pt">
<fo:block line-height="11pt" font-family="Arial" font-size="8pt" space-before.optimum="1.5pt" space-after.optimum="1.5pt" keep-together="always"></fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>

<fo:block space-before.optimum="1.5pt" space-after.optimum="1.5pt" keep-together="always" line-height="100%">
<fo:inline white-space-collapse="false"></fo:inline>
<fo:inline white-space-collapse="false"></fo:inline>
</fo:block>

<fo:block>
<fo:block space-before.optimum="1.5pt" space-after.optimum="1.5pt" keep-together="always" line-height="100%" margin-bottom="0cm" margin-top="1.2cm">
<fo:inline white-space-collapse="false"></fo:inline>
</fo:block>
</fo:block>
<fo:block space-before.optimum="1.5pt" space-after.optimum="1.5pt" keep-together="always" id="LastPage" line-height="1pt" font-family="Arial" font-size="1pt"></fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
<!-- ========================= -->
<!-- child element: m11mtrl     -->
<!-- ========================= -->
<xsl:template match="m11mtrl">
<fo:table-row>
<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center"><xsl:value-of select="ks2sb"/></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center"><xsl:value-of select="ks2cod"/></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center"><xsl:value-of select="mtrltxt"/></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center"><xsl:value-of select="mtrlnom"/></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center"><xsl:value-of select="eicod"/></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center"><xsl:value-of select="ei"/></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center"><xsl:value-of select="kolichzatreb"/></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center"><xsl:value-of select="kolichotp"/></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center"><xsl:value-of select="cena"/></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center"><xsl:value-of select="summa"/></fo:block>
</fo:table-cell>

<fo:table-cell padding="2pt" border="1pt solid black">
<fo:block font-family="Arial" font-size="8pt" text-align="center"><xsl:value-of select="skladcart"/></fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:template>
</xsl:stylesheet>

还有xml:

<?xml version="1.0" encoding="UTF-8"?>
<m11base>
    <nomnakl>12-5789</nomnakl>
    <organiz>ОАО "AAA"</organiz>
    <datasost>31.05.2015</datasost>
    <codvo>11</codvo>
    <podrotpav>Цех №1</podrotpav>
    <viddotpav>Хранение</viddotpav>
    <podrpoluch>Цех №2</podrpoluch>
    <viddpoluch>Производство</viddpoluch>
    <kssb>20-2</kssb>
    <kscod>202</kscod>
    <uchedin>Карандаши</uchedin>
    <cherezkog>МОЛ №4312</cherezkog>
    <zatreboval>Нач.цеха №1 Н.Н.Федоров</zatreboval>
    <razreshil>Нач.цеха №2 А.А.Петров</razreshil>
    <dolotp>МОЛ №2</dolotp>
    <fiootp>Ф.М.Сергеева</fiootp>
    <dolpoluch>МОЛ №1</dolpoluch>
    <fiopoluch>И.И.Иванова</fiopoluch>
  <m11mtrl>
    <ks2sb>20-1</ks2sb>
    <ks2cod>201</ks2cod>
    <mtrltxt>Карандаши цветные, набор №5</mtrltxt>
    <mtrlnom>24356789</mtrlnom>
    <eicod>324</eicod>
    <ei>Шт</ei>
    <kolichzatreb>10</kolichzatreb>
    <kolichotp>10</kolichotp>
    <cena>100</cena>
    <summa>1000</summa>
    <skladcart>43-1212</skladcart>
  </m11mtrl>
   <m11mtrl>
    <ks2sb>20-2</ks2sb>
    <ks2cod>202</ks2cod>
    <mtrltxt>Карандаши цветные, набор №5</mtrltxt>
    <mtrlnom>24356789</mtrlnom>
    <eicod>324</eicod>
    <ei>Шт</ei>
    <kolichzatreb>50</kolichzatreb>
    <kolichotp>50</kolichotp>
    <cena>100</cena>
    <summa>5000</summa>
    <skladcart>43-1212</skladcart>
  </m11mtrl>  
  <m11mtrl>
    <ks2sb>20-3</ks2sb>
    <ks2cod>203</ks2cod>
    <mtrltxt>Карандаши цветные, набор №5</mtrltxt>
    <mtrlnom>24356789</mtrlnom>
    <eicod>324</eicod>
    <ei>Шт</ei>
    <kolichzatreb>100</kolichzatreb>
    <kolichotp>100</kolichotp>
    <cena>100</cena>
    <summa>10000</summa>
    <skladcart>43-1212</skladcart>
  </m11mtrl>
  </m11base>

【问题讨论】:

  • 如果你不告诉我们它是如何生成的,我们甚至无法猜测生成上面显示的 FO 有什么问题。
  • 感谢您的回复!这是我在 ServiceMix 中使用的骆驼路线: camel.apache.org/schema/spring">
  • 而错误是: 必须是:
  • 这没有帮助。您需要向我们展示您的 XSLT 及其输入。即使我们想,我们也猜不到。
  • 谢谢弗洛伦特!我添加了 xsl(由于每个问题 30000 个字符而删除了 2 个表)和 xml。

标签: eclipse xslt apache-camel xalan apache-servicemix


【解决方案1】:

找到了解决办法!

http://camel.apache.org/xslt(使用 XSLT 和 Java 版本的部分注释)中说:

  1. 在路由中使用transformerFactory 选项(“xslt:my-transformer.xsl?transformerFactory=tFactory”),tFactory bean 在 spring 上下文中为 class="org.apache.xalan.xsltc.trax 定义了 bean。 TransformerFactoryImpl”。
  2. 将 Xalan jar 添加到我的 maven pom 中。

正如我上面所说,我使用它 - 没有成功:“org.apache.camel.ResolveEndpointFailedException:无法解析端点:xslt://classpath:xslt/m11.xsl?transformerFactory=tFactory 由于:Translet 类已加载,但无法创建 translet 实例。”

但经过一些研究,我发现 xalan 有 2 个不同的 TransformerFactoryImpl:

A. org.apache.xalan.xsltc.trax.TransformerFactoryImpl - 这是“Translets 的 JAXP1.1 TransformerFactory 的实现”。并且此类构建已编译的模板对象。

B. org.apache.xalan.processor.TransformerFactoryImpl - 这是“TransformerFactoryImpl,它实现了 TRaX TransformerFactory 接口,将 XSLT 样式表处理成一个模板对象(一个 StylesheetRoot)。”这个工厂构建了模板对象,这些对象被解释为处理传入的 XML 文档。 (位于:https://developer.jboss.org/thread/173303

所以改为:

<bean id="tFactory" class="org.apache.xalan.xsltc.trax.TransformerFactoryImpl" />

我用过:

 <bean id="tFactory" class="org.apache.xalan.processor.TransformerFactoryImpl" />

现在我已经在 ServiceMix 5.4.0 上开始了我的骆驼路线,并且我得到了正确的 pdf 文档。

【讨论】:

  • 谢谢弗拉基米尔这是正确的答案。这对我也有很大帮助
猜你喜欢
  • 2019-04-11
  • 2018-06-22
  • 1970-01-01
  • 2016-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-14
  • 2020-08-19
相关资源
最近更新 更多