2012-01-20 3 views
2

После документации Orbeon о запуске xforms-with-java-applications, Я развернул файл войны Орбеона отдельно от моей войны java на JBoss.Доступ к второму экземпляру xforms Orbeon

Я попытался создать 2 экземпляра внутри одной модели

<xforms:model id="fr-form-model"> 


    <xforms:instance id="don-instance1"> 
    <don> 
    <laptop>     
</laptop> 
    </don> 
    </xforms:instance> 

    <xforms:instance id="don-instance2"> 
    <don2> 
     <laptop2>      
    </laptop2> 
    </don2> 
    </xforms:instance> 

</xforms:model id="fr-form-model"> 

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

<xforms:input ref="instance('don-instance')/don/laptop2"> 
    <xforms:label>Enter a Name:</xforms:label> 
</xforms:input> 

Доступ к первой инстанции XForms отлично, до тех пор, Я НЕ использовать функцию

<xforms:input ref="/don/laptop"> 
    <xforms:label>Enter a Name:</xforms:label>  
</xforms:input> 

экземпляра() Как-то instance() не работает, как я ожидаю, что мне не хватает?

Пересмотренный полный XML:

<xhtml:html 
      xmlns:xhtml="http://www.w3.org/1999/xhtml"  
      xmlns:xforms="http://www.w3.org/2002/xforms" 
      xmlns:xxforms="http://orbeon.org/oxf/xml/xforms" 
      xmlns:ev="http://www.w3.org/2001/xml-events" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      xmlns:fr="http://orbeon.org/oxf/xml/form-runner" 
      > 

     <xhtml:head> 
      <xhtml:title>Simple</xhtml:title> 

      <xforms:model > 

       <xforms:instance id="don-instance1"> 
        <don1> 
         <laptop1> 
         </laptop1> 
        </don1> 
       </xforms:instance> 

       <xforms:instance id="don-instance2"> 
        <don2> 
         <laptop2>     
         </laptop2> 
        </don2> 
       </xforms:instance> 

       <xforms:submission id="submit_metadata" action="../processor.jsp" method="post"/> 

      </xforms:model> 
     </xhtml:head> 

     <xhtml:body> 


      <xforms:input ref="instance('don-instance1')/don1/laptop1"> 
       <xforms:label class="composers-label">Laptop1: </xforms:label>          
       <xhtml:br />           
      </xforms:input> 

      <xforms:input ref="instance('don-instance2')/don2/laptop2"> 
       <xforms:label class="composers-label">Laptop2: </xforms:label>          
       <xhtml:br />           
      </xforms:input> 

      <xhtml:br /> 
      <xhtml:br /> 


      <xforms:submit submission="submit_metadata"> 
       <xforms:label class="composers-label">Submit</xforms:label> 
      </xforms:submit> 
      <xhtml:br /> 

      <fr:xforms-inspector/> 

     </xhtml:body> 
    </xhtml:html> 

ответ

1

В соответствии с кодом, я вижу, что вы не относим имена узлов должным образом. Если вы хотите получить доступ к узлу ноутбука в первую очередь, то ваш код должен быть таким:

<xforms:input ref="instance('don-instance1')/laptop"> 
    <xforms:label>Enter a Name:</xforms:label> 
</xforms:input> 

Точно так же, если вы хотите получить доступ к узлу во втором случае, он должен быть

<xforms:input ref="instance('don-instance2')/laptop2"> 
    <xforms:label>Enter a Name:</xforms:label> 
</xforms:input> 
+0

Oops , моя вина. Я пересмотрел xml и приложил свой полный тестовый xml, который я до сих пор не могу использовать методом instance() правильно – portoalet

+0

Был ли код, указанный в ответе, сработал? – Jayy

+0

no it did not work, не работает ли он для вас? – portoalet

Смежные вопросы