Я использовал fop 0.95 для создания файлов pdf из данных xml. У меня в процессе задействованы три файла: test.xml, test.xsl и attributes.xsl. Естественно, у меня есть данные xml в файле xml. Здесь test.xml - это основной файл xsl, который импортирует наборы атрибутов из файла attributes.xsl. Например, у меня есть следующие записи в файле attributes.xsl:
<xsl:attribute-set name="headerTable" foa:class="table">
<xsl:attribute name="table-layout">fixed</xsl:attribute>
<xsl:attribute name="width">6.05in</xsl:attribute>
<xsl:attribute name="text-align">left</xsl:attribute>
<xsl:attribute name="white-space-collapse">false</xsl:attribute>
</xsl:attribute-set>
Теперь мое требование - поместить имя атрибута в файл атрибутов и сохранить связанные значения в XML-файле. Сюда:
<MyRoot>
<tableHeader>
<tableLayout>fixed</tableLayout>
<width>6.05in</width>
<textAlign>left</textAlign>
<whiteSpaceCollapse>false</whiteSpaceCollapse>
</tableHeader>
</MyRoot>
После этого у меня будет следующий файл атрибутов:
<xsl:attribute-set name="headerTable" foa:class="table">
<xsl:attribute name="table-layout">MyRoot/tableHeader/tableLayout</xsl:attribute>
<xsl:attribute name="width">MyRoot/tableHeader/width</xsl:attribute>
<xsl:attribute name="text-align">MyRoot/tableHeader/textAlign</xsl:attribute>
<xsl:attribute name="white-space-collapse">MyRoot/tableHeader/whiteSpaceCollapse</xsl:attribute>
</xsl:attribute-set>
Как обычно, я использую атрибут из основного файла xsl следующим образом:
<fo:table xsl:use-attribute-sets="headerTable">
<fo:table-column column-width="3in"></fo:table-column>
<fo:table-column column-width="3.5in"></fo:table-column>
<fo:table-body>
<!--table rows and cells goes here-->
</fo:table-body>
</fo:table>
При выполнении я получаю следующую ошибку:
"Ignoring property: table-layout="MyRoot/tableHeader/tableLayout" <Illegal character; property:'table-layout'>"
Кто-нибудь знает, как это сделать? Спасибо.