xsl:use-attribute-setsで継承を機能させることができないようです。MichaelKayは第6章で述べています。XSLT要素>xsl:attribute-set-Pg。269その
この属性の組み合わせも繰り返し使用される場合は、次のように、それ自体が属性セットとして定義できます。
<xsl:attribute-set name="ruled-table" use-attribute-set="full-width-table"> <xsl:attribute name="border">2</xsl:attribute> <xsl:attribute name="rules">cols</xsl:attribute> </xsl:attribute-set>
編集1:USE-ATTRIBUTE-SETの代わりにUSE-ATTRIBUTE-SETは、おそらく本のタイプミスです。XSL:USE-ATTRIBUTE-SETSを使用しています
これは私にはうまくいきません。言い換えれば、私の現在のセットアップ[ApacheCocoon経由のXSLT2.0、styles.xslをmypdf.xslにインポート]の結果は
<table xsl:use-attribute-sets="ruled-table">
<tr>...</tr>
</table>
2つの属性セットの前例を介したセット和集合ではなく、ルールドテーブルと全幅の属性セットのセットの違いになります。名前付き属性セットの親属性セットではなく、直接名前付き属性のみを取得します。次のような操作を行うことで、効果をシミュレートできます。
<table xsl:use-attribute-sets="full-width-table ruled-table">
<tr>...</tr>
</table>
ただし、これは不要のようです。誰かがこの問題に遭遇しましたか?これがstyles.xslです:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" exclude-result-prefixes="xsl xs fo">
<xsl:attribute-set name="fontstack">
<xsl:attribute name="text-align">left</xsl:attribute>
<xsl:attribute name="font-size">10pt</xsl:attribute>
<xsl:attribute name="font-family">"TradeGothic-CondEighteen", "Trade Gothic Cond Eighteen", "Trade Gothic Condensed Eighteen", "Trade Gothic", "TradeGothic", "Trade-Gothic", "ArialNarrow", "Arial-Narrow", "Arial Narrow", Arial, sans-serif
</xsl:attribute>
<xsl:attribute name="color">black</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="headers" xsl:use-attribute-sets="fontstack">
<xsl:attribute name="font-size">18pt</xsl:attribute>
<xsl:attribute name="font-weight">bold</xsl:attribute>
<xsl:attribute name="space-after">7pt</xsl:attribute>
<xsl:attribute name="padding">12pt</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="h2" xsl:use-attribute-sets="headers">
<xsl:attribute name="padding">5pt</xsl:attribute>
</xsl:attribute-set>
<xsl:attribute-set name="h3" xsl:use-attribute-sets="headers">
<xsl:attribute name="padding">2pt</xsl:attribute>
</xsl:attribute-set>
</xsl:stylesheet>