Как я могу установить значение экземпляра из другого экземпляра?

У меня есть экземпляр на странице. Тем не менее, я хочу, чтобы содержимое этого экземпляра имело некоторое содержимое, которое является частью другого экземпляра.

<xf:instance id="subInstance">
    <data xmlns="">
        <xsl:choose>
            <xsl:when test="$newType= 'false' ">
                ???
                <xsl:copy-of select="????"/>
            </xsl:when>
            <xsl:otherwise>
                <!-- add a new type -->
                <type>
                    <name/>
                    <base/>
                </type>
            </xsl:otherwise>
        </xsl:choose>
    </data>
</xf:instance>

Что должно быть вместо вопросительных знаков, чтобы я мог получить тип из другого экземпляра?

Или я должен использовать xf:setvalue установить экземпляр на xforms-model-construct-done событие? Но разве это не конструкция самой модели? Я запутался, как использовать значения из другого экземпляра.

Можем ли мы использовать xf: insert как-нибудь?

<xf:action ev:event="xforms-model-construct">
          <xf:insert nodeset="instance('subInstance')" origin="instance('defaultType')/type"/>
      </xf:action>

Это не работает. Это событие правильно? Поскольку создание экземпляра является частью построения модели, я подумал об использовании "xforms-model-construct". Но все равно не повезло!

1 ответ

Решение

Да. Вставка xf: работает. Событие "xforms-model-construct" не отправлялось, и поэтому я почувствовал, что оно не работает. Когда я изменил событие на "xforms-model-construct-done", это сработало.

<xf:action ev:event="xforms-model-construct">
    <xf:insert nodeset="instance('subInstance')" origin="instance('defaultType')/type"/>
</xf:action>

Другие вопросы по тегам