Use literal result elements and attributes in cases where it is safe to
do so.
<xslt:param name="THISREV" select="false()"/>
<xslt:variable name="书社:source" select="/"/>
<xslt:variable name="书社:about-fragment">
<xslt:param name="THISREV" select="false()"/>
<xslt:variable name="书社:source" select="/"/>
<xslt:variable name="书社:about-fragment">
- <apply-templates select="document($METADATA)" mode="书社:literally"/>
+ <apply-templates select="document($METADATA)" mode="书社:literally">
+ <with-param name="extension-element-namespaces" select="'http://exslt.org/common http://exslt.org/strings'"/>
+ </apply-templates>
</xslt:variable>
<xslt:variable name="书社:about" select="exsl:node-set($书社:about-fragment)"/>
<xslt:variable name="书社:expansion-fragment">
</xslt:variable>
<xslt:variable name="书社:about" select="exsl:node-set($书社:about-fragment)"/>
<xslt:variable name="书社:expansion-fragment">
version="1.0"
>
<template match="node()" mode="书社:literally">
version="1.0"
>
<template match="node()" mode="书社:literally">
+ <param name="extension-element-namespaces"/>
+ <when test="self::* and contains(concat(' http://www.w3.org/1999/XSL/Transform ', normalize-space($extension-element-namespaces), ' '), concat(' ', namespace-uri(), ' '))">
<xslt:element name="{name()}" namespace="{namespace-uri()}">
<for-each select="@*">
<xslt:attribute name="{name()}" namespace="{namespace-uri()}">
<xslt:element name="{name()}" namespace="{namespace-uri()}">
<for-each select="@*">
<xslt:attribute name="{name()}" namespace="{namespace-uri()}">
<apply-templates mode="书社:literally"/>
</xslt:element>
</when>
<apply-templates mode="书社:literally"/>
</xslt:element>
</when>
+ <when test="self::*">
+ <element name="{name()}" namespace="{namespace-uri()}">
+ <for-each select="@*[not(contains(., '{') or contains(., '}'))]">
+ <attribute name="{name()}" namespace="{namespace-uri()}">
+ <value-of select="."/>
+ </attribute>
+ </for-each>
+ <for-each select="@*[contains(., '{') or contains(., '}')]">
+ <xslt:attribute name="{name()}" namespace="{namespace-uri()}">
+ <xslt:text>
+ <value-of select="."/>
+ </xslt:text>
+ </xslt:attribute>
+ </for-each>
+ <apply-templates mode="书社:literally"/>
+ </element>
+ </when>
<when test="self::text()">
<xslt:text>
<value-of select="."/>
<when test="self::text()">
<xslt:text>
<value-of select="."/>