Re: [xsl] DOCTYPE causes appearance of unwanted attributes

Subject: Re: [xsl] DOCTYPE causes appearance of unwanted attributes
From: Eliot Kimber <ekimber@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 06 Apr 2004 13:11:06 -0500
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@xxxxxxxxxxxxxxxxxxx
www.innodata-isogen.com

Current Thread