grammar requires @xml:id instead of @id, and xsltproc actually
takes xml:id seriously and checks that it's really a NCName.
--- /dev/null
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version='1.0'
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ xmlns:saxon="http://icl.com/saxon"
+ exclude-result-prefixes="fo"
+ >
+ <xsl:import href="./identity.xsl"/>
+
+ <xsl:output method="xml"
+ encoding="ASCII"
+ saxon:character-representation="decimal"
+ indent="no"/>
+
+ <xsl:template match="@id">
+ <xsl:attribute name="xml:id">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+</xsl:stylesheet>