これを行う方法は次のとおりです。
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
exclude-result-prefixes="xsi">
<xsl:output omit-xml-declaration="yes"/>
<!-- -->
<xsl:template match="/">
<exercises xsi:noNamespaceSchemaLocation="mySchema.xsd"/>
</xsl:template>
</xsl:stylesheet>
この変換が(使用されていない) ソース XML ドキュメントに適用されると、必要な結果が生成されます。
<exercises xsi:noNamespaceSchemaLocation="mySchema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
<xsl:attribute>
あなたのケースでは使用する必要はありませんが、必要に応じて問題なく使用できます。
<xsl:attribute name="xsi:noNamespaceSchemaLocation">
<xsl:value-of select="'mySchema.xsd'"/>
</xsl:attribute>
<xsl:stylesheet>
要素で必要な名前空間を単純に定義して、必要な場所で簡単に (再) 使用できるようにすることをお勧めします。これは、生成された複数の要素または属性で特定の名前空間が必要な場合に特に役立ちます。
この場合exclude-result-prefixes
、名前空間がすべてのリテラル結果要素に自動的に伝播されないように、属性の値にそのようなプレフィックスをすべて指定することもお勧めします。