我似乎无法让继承与 xsl:use-attribute-sets 一起使用。Michael Kay 在第 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-SETS 可能是书中的一个错字;我正在使用XSL:使用属性集
这对我不起作用。换句话说,在我当前的设置中 [XSLT 2.0 via Apache Cocoon, importing styles.xsl into mypdf.xsl] 结果
<table xsl:use-attribute-sets="ruled-table">
<tr>...</tr>
</table>
将是属性集rule-table和full-width的集合差异,而不是两个属性集的先例介导的集合并集。我只得到直接命名的属性,而不是命名的属性集的父属性集。我可以通过执行以下操作来模拟效果:
<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>