1

スキーマトロン パターンを作成したところ、予期しないエラーが見つかりました。

文字列 ("Robinson 1983" など) を xsl 関数の出力と比較しようとしました。私の機能はこのように機能します

<xsl:value-of select="surname"/><xsl:text> </xsl:text><xsl:value-of select="year"/>

だから、スキーマトロンでは

test="'Robinson 1983' = ...function-call..."

関数の出力は 3 つのテキスト要素で構成されるシーケンスであるため、"false" が返されました。

xsltを使用して修正できました

<xsl:variable name="output"><xsl:value-of select="...function-call..."/></xsl:variable>

test="'Robinson 1983' = $output"

期待どおり「true」を返しました。

しかし、私は疑問に思っています:これは「純粋な」Schematron/XPathでどのように解決されるのでしょうか? xsl:value-of に相当するものはありますか? つまり、シーケンスを文字列に変換して、他のコンテンツを取り除きます。これは、XPath で実行したい最も重要なことの 1 つだと思いますが、解決策が見つかりませんでした。

4

1 に答える 1