0

私はこの xslt を使用します (FpML は私のドキュメントのルートです):

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="2.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <xsl:template match="/">
    <xsl:sequence select="/FpML"/> 
 </xsl:template>

</xsl:stylesheet> 

このコード内:

if(schema.isValid())
{
    QXmlSchemaValidator validator(schema);
    QByteArray data(this->xmlTextEdit->toPlainText().toStdString().c_str());
    QBuffer buffer(&data);
    buffer.open(QIODevice::ReadOnly);

    if (validator.validate(&buffer))
        qDebug() << "instance document is valid";
    else
        qDebug() << "instance document is invalid";

    QXmlQuery query(QXmlQuery::XSLT20);
     query.setFocus(&buffer);
     qDebug() << QDir::current();

     QUrl XSLT("test__.xslt");
     if( XSLT.isValid())
     {
        query.setQuery(XSLT);

         QString result;
         query.evaluateTo(&result);
         this->xslTextEdit->setPlainText(result);
     }
}

そして、私はこのエラーを受け取りました:

at line 10, column 18: The focus is undefined

グーグルで調べたとき、私はこれを見つけました:

関数がユーザー定義関数の場合、変換された引数値は関数の仮パラメーターにバインドされ、関数本体が評価されます。次に、関数本体によって返される値は、関数変換規則を適用することによって、関数の宣言された戻り値の型に変換されます。

関数は、関数呼び出しの環境からフォーカス (コンテキスト項目、コンテキスト位置、およびコンテキスト サイズ) を継承しません。関数本体の評価中、関数本体内の式のアクションによって定義されている場合を除き、フォーカスは未定義です。フォーカスが定義されていないときにフォーカスに依存する式を使用すると、動的エラーが発生します。

しかし、私が理解しているかどうかはわかりません。問題は本当に私のスタイルシートにありますか?

4

1 に答える 1