Re: [xsl] DOCTYPE causes appearance of unwanted attributes

Subject: Re: [xsl] DOCTYPE causes appearance of unwanted attributes
From: Paul DuBois <paul@xxxxxxxxxxxx>
Date: Mon, 26 Jul 2004 09:27:20 -0500
A while back I sent the following message to this list, in which I asked
how to prevent xsltproc from adding default element attributes when
processing an input document that contains a DOCTYPE declaration.  A
few people suggested ways to suppress these, but I have now realized
that there is a very simple way to keep the attributes from appearing:

Use "xsltproc --novalid" rather than just "xsltproc".  Then xsltproc
won't look at the DTD.

I'm embarrassed to say that I didn't think of this before, but perhaps
by mentioning it here, it will help someone else who has the same problem.


At 11:39 -0500 4/6/04, Paul DuBois wrote:
I'm finding that including a DOCTYPE declaration in my source XML
document causes the output to contain unwanted attributes.

Stylesheet identity.xsl is a fairly standard identity transform:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>


<xsl:template match="/ | node() | @* | comment() | processing-instruction()">
  <xsl:copy>
    <xsl:copy-of select="@*"/>
    <xsl:apply-templates select="@* | node()"/>
  </xsl:copy>
</xsl:template>

</xsl:stylesheet>


Input file 1:


<?xml version='1.0'?>
<chapter>
<indexterm><primary>abc</primary></indexterm>
<literal>abc</literal>
</chapter>

Result of "xsltproc identity.xsl junk1" is:

<?xml version="1.0"?>
<chapter>
<indexterm><primary>abc</primary></indexterm>
<literal>abc</literal>
</chapter>

Input file 2 (same but with DOCTYPE):

<?xml version='1.0'?>
<!DOCTYPE chapter PUBLIC '-//OASIS//DTD DocBook XML V4.3//EN'
		  "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"; >

<chapter>
<indexterm><primary>abc</primary></indexterm>
<literal>abc</literal>
</chapter>

Result of "xsltproc identity.xsl junk2" is:

<?xml version="1.0"?>
<chapter>
<indexterm significance="normal"><primary>abc</primary></indexterm>
<literal moreinfo="none">abc</literal>
</chapter>

The significance and moreinfo attributes have been added.

1) Why is this?
2) Can I suppress it? :-)

Current Thread