Определите границы только один раз в документе xsl-fo

Я использую один стиль для границ таблиц в моем шаблоне xsl-fo. Есть ли способ определить следующее как переменную стиля и использовать "переменную", где я хочу применить этот стиль?

Например:

 padding-top="0pt" 
 padding-left="3.5pt" 
 padding-bottom="0pt" 
 padding-right="3.5pt" 
 border-top-style="solid" 
 border-top-color="black" 
 border-top-width="0.5pt" 
 border-left-style="solid" 
 border-left-color="black" 
 border-left-width="0.5pt" 
 border-bottom-style="solid" 
 border-bottom-color="black" 
 border-bottom-width="0.5pt" 
 border-right-style="solid" 
 border-right-color="black" 
 border-right-width="0.5pt" 
 display-align="center"

Я надеюсь, что я могу использовать что-то вроде

 <fo:table-row ${border-style-1}>
 .....
    <fo:table-cell ${border-style-2}

с ${var} я надеюсь, что var будет заменен всем текстом стиля.

1 ответ

Решение

Вы должны определить и затем использовать наборы атрибутов, вы можете использовать их где угодно.

Вы используете что-то вроде этого:

<xsl:attribute-set name="row-style">
  <xsl:attribute name="padding-top">0pt</xsl:attribute>
  <xsl:attribute name="padding-left">3.5pt</xsl:attribute>
  <!-- rest of your attributes you wish here -->
</xsl:attribute-set>

а затем на фактический объект:

 <fo:table-row xsl:use-attribute-sets="row-style">

Также обратите внимание, что если у вас есть повторяющиеся фрагменты, которые вы хотите использовать повторно, одно определение набора атрибутов может использовать другое таким же образом, например:

 <xsl:attribute-set name="row-style" xsl:use-attribute-sets="inherit-me">
Другие вопросы по тегам