Учебник по Showcase: Использование вспомогательных instance

Материал из Course Orchestra
Перейти к: навигация, поиск

Внимание! Изложенная здесь информация устарела! В качестве учебника следует использовать https://share.curs.ru/webhelp/ (work in progress).


xml с данными

<schema xmlns="">
   <info>
      <name id="" value="" consider="true"/>
      <name id="" value="" consider="true"/>
      <name id="" value="" consider="false"/>
      <name id="" value="" consider="true"/>
      <name id="" value="" consider="true"/>
      <name id="" value="" consider="true"/>
      <name id="" value="" consider="false"/>
      <action>
         <pok/>
         <pok/>
         <pok/>
      </action>
   </info>
</schema>

Шаблон:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="xsltforms/xsltforms.xsl" type="text/xsl"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events"
    xmlns:xf="http://www.w3.org/2002/xforms">

    <head>
        <xf:model id="mainModel">
        
            <xf:instance id="mainInstance">
                <schema xmlns=""/>
            </xf:instance>
            
            <xf:instance id="myInstance">
                <schema xmlns="">
                    <name id="1" value="Василий"/>
                    <name id="2" value="Николай"/>
                    <name id="3" value="Геннадий"/>
                    <name id="4" value="Дмитрий"/>
                    <name id="5" value="Станислав"/>
                    <name id="6" value="Петр"/>
                </schema>
           </xf:instance>
           
        </xf:model>
    </head>
    
    <body>
        <xf:select1 ref="/schema/info/name">
            <xf:item>
                <xf:label>-</xf:label>
                <xf:value>-</xf:value>
            </xf:item>
            <xf:itemset nodeset="instance('myInstance')/name">
                <xf:label ref="@value"/>
                <xf:value ref="@id"/>
            </xf:itemset>
        </xf:select1>
        <xf:output ref="instance('myInstance')/name[@id=3]/@value"/>
    </body>
    
</html>

Помимо основного экземпляра xml 'mainInstance', который подгружается с сервера и который мы обычно используем для процедуры сохранения, возможно использование других именованных экземпляров. Их описание прописывается в xf:model. Используются они в вспомогательных целях, например, если необходимо подгрузить небольшой список выбора.

В примере выше в контроле <xf:select1> в списке выбора дополнительно будут указано множество пунктов (xf:itemset), из вспомогательного экземпляра (nodeset="instance('myInstance')/name), при этом заголовком будет атрибут но и множество @value, а значением @id.

Также с вспомогательным экземпляром можно совершать те же самые действия, которые мы совершаем и с основным экземпляром. Например, вводить и выводить из него данные, как это показано в тэге xf:output.