この例では、xsl:
プレフィックスがスタイル シートで XSLT 名前空間 URI にバインドされている場合に、<xsl:namespace-alias>
を使って、alt:
プレフィックスをリテラル結果ツリー内で同じ名前空間のエイリアスとして宣言する方法を示します。出力は別の XSLT スタイル シートです。
XML ファイル (mymin.xml)
<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="alias.xsl"?>
<myelem/>
XSLT ファイル (alias.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:alt="http://www.w3.org/1999/XSL/Transform-alternate">
<xsl:namespace-alias stylesheet-prefix="alt" result-prefix="xsl"/>
<xsl:param name="browser" select="'InternetExplorer'"/>
<xsl:template match="/">
<alt:stylesheet>
<xsl:choose>
<xsl:when test="$browser='InternetExplorer'">
<alt:import href="IERoutines.xsl"/>
<alt:template match="/">
<div>
<alt:call-template name="showTable"/>
</div>
</alt:template>
</xsl:when>
<xsl:otherwise>
<alt:import href="OtherBrowserRoutines.xsl"/>
<alt:template match="/">
<div>
<alt:call-template name="showTable"/>
</div>
</alt:template>
</xsl:otherwise>
</xsl:choose>
</alt:stylesheet>
</xsl:template>
</xsl:stylesheet>
JScript ファイル (test.js)
var xmldoc = new ActiveXObject("Msxml2.DOMDocument.6.0");
xmldoc.async=false;
xmldoc.load("mymin.xml");
var xsldoc= new ActiveXObject("Msxml2.DOMDocument.6.0");
xsldoc.async = false;
xsldoc.load("alias.xsl");
var outfile = new ActiveXObject("Msxml2.DOMDocument.6.0");
outfile.async=false;
var strResult;
strResult = xmldoc.transformNode(xsldoc);
outfile.loadXML(strResult);
outfile.save("output.xsl");
WScript.Echo("Output.xsl was made.");
手順を次に示します。
上の XML ファイルをコピーし、テキスト ファイルに貼り付けます。ファイルに mymin.xml という名前を付けて、ローカル ドライブのディレクトリに保存します。
上の XSLT ファイルをコピーし、テキスト ファイルに貼り付けます。ファイルに alias.xsl という名前を付けて、同じディレクトリに保存します。
上の JScript のリストをコピーし、テキスト ファイルに貼り付けます。ファイルに test.js という名前を付けて、同じディレクトリに保存します。
Windows エクスプローラから test.js ファイルをダブルクリックして、アプリケーションを起動します。コマンド プロンプトから「test.js」と入力することもできます。
注意
Windows 2000 または Windows XP 以外のオペレーティング システムで、Windows Scripting Host (wscript.exe) がインストールされていない場合は、インストールする必要があります。
次の出力ファイル output.xsl がローカル ドライブに表示されます。
出力が下に示す出力と同じであることを確認します。
出力
test.js を実行すると、メッセージ ボックスまたはコンソール ウィンドウに次の出力が表示されます。
Output.xsl was made.
また、次のストリームが XSLT ファイル output.xsl として出力され、サンプル ファイルを保存したフォルダに保存されます。わかりやすくするために、ここでは空白が追加されています。
<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="IERoutines.xsl" />
<xsl:template match="/">
<div>
<xsl:call-template name="showTable" />
</div>
</xsl:template>
</xsl:stylesheet>