G. Ken Holman wrote:
2) Can I suppress it? :-)
You cannot distinguish between a defaulted attribute and a specified
attribute (unspecified implied attributes are not included in the XPath
data model).
You can always write your own DTD-specific attribute filter, e.g.:
<xsl:template match="@*">
<xsl:choose>
<xsl:when test="self::attname_1 and
string(.) = 'default_value'"/>
<xsl:when test="self::attname_2 and
string(.) = 'annother_default_value'"/>
<xsl:otherwise>
<xsl:copy-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
This is a common technique for transforms that are essentially identity
transforms and that need to not include defaulted attributes in the output.
But note that as Ken says you still cannot distinguish a defaulted
attribute from one whose specified value happens to be the default.
Cheers,
E.
--
W. Eliot Kimber
Professional Services
Innodata Isogen
9030 Research Blvd, #410
Austin, TX 78758
(512) 372-8122
eliot(_at_)innodata-isogen(_dot_)com
www.innodata-isogen.com