XSLT 2.0で便利になった機能(33) 文字列中の"'"

ベーシックな文字列のの話です.どちらかといえばXSLT2.0というより、XPath2.0の範疇ですが.
 
私の作っているXSLT1.0のスタイルシートですが、お客さんのところでLinuxサーバーとスタンドアロンWindowsの両方で使っていただいています.Linuxサーバーの方は、その方の専門の会社がやられたので詳細は知りませんが、SaxsonがコマンドラインWEBサービスプログラムから使われているみたいです.Windowsでは、私がJavaGUIを作りSaxon 6.5.5をJAXP経由で呼び出しています.
 
問題はコマンドラインです.Saxon 6.5.5のコマンドライン
 
java com.icl.saxon.StyleSheet [オプション] [パラメータ]=[値] ...
 
という形式をしています.[パラメータ]= というようになっていて、"="の右に文字列がないとSaxonはエラーを返します.パラメータを指定しないときはコマンドラインに指定しなければ良いのです.ところがサーバーアプリを作った会社はなんと[パラメータ]=''としてきました.こうするとスタイルシートのxsl:paramに"''"が渡ってきてしまいます.例えば
 
<xsl:param name="PRM_XXX"/>
 
に"''"が渡ってきたときに、どう判断するのでしょうか?コードを見ると次のようにやっていました.
 
<xsl:variable name="emptyApos">
    <xsl:text>''</xsl:text>
</xsl:variable>
<xsl:if test="$PRM_XXX=$emptyApos">
  ...
</xsl:if>
 
XSLT1.0では、<xsl:if test="$PRM_XXX=''''">とはかけないからです.
ではXSLT2.0ではどうでしょうか?実はXPath1.0→XPath2.0の拡張で、次のように書けます.
 
<xsl:if test="$PRM_XXX=''''''">
 
XPath2.0は文字列の区切り文字を2つ書くことによりエスケープできるのです.
 
例えば、コンピュータ関連の書籍を出しているオライリー社は、
 
<xsl:variable name="company" select="'O''Reilly Media, Inc.'"/>
 
と書くことができます.あまり機会はないですが覚えておくといざというとき便利です.