2009-12-05 56 views
1

我似乎有問題得到一個xform來顯示一個複選框 - 而是顯示一個文本區域。我所有的其他項目都正常工作,我似乎無法得到這個工作。如何讓XForm顯示覆選框?

這是我的模型裏面的代碼:

<takeMoneyOff type="xs:boolean"/> 

// close the my structure 
// close the instance 

<xf:bind id="takeMoneyOff" nodeset="/xForm/takeMoneyOff"/> 

// close the model 

而且這個項目都是指用於顯示:

<xf:input ref="takeMoneyOff" class="takeMoneyOffClass"> 
    <xf:label>Take Money Off? </xf:label> 
</xf:input> 

回答

2

你不提這XForms實現()你是針對性的,但假設它是/他們完全符合,你有兩種選擇。

  1. 如果要指定實例數據的類型,如您的示例代碼表明,你需要的類型屬性是在XML架構實例命名空間。所以,如果你聲明的命名空間前綴xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance",您的實例數據將需要看起來像這樣:

    <takeMoneyOff xsi:type="xs:boolean" /> 
    
  2. 或者,如果實例數據從外部源和你的控制不是它,那麼你可以將綁定元素本身的一種屬性,而不是(這不應該是在這種情況下,XSI命名空間):

    <xf:bind id="takeMoneyOff" nodeset="/xForm/takeMoneyOff" type="xs:boolean" /> 
    
2

您還可以使用<xforms:select>,將存儲的值或空白:

<xf:select ref="takeMoneyOff" class="takeMoneyOffClass"> 
    <xf:label>Take Money Off? </xf:label> 
    <xf:item> 
     <xf:label>Yes</xf:label> 
     <xf:value>true</xf:value> 
    </xf:item> 
</xf:select1> 

使用合適的綁定,你甚至可以存儲「假」出現空白時:

<xf:bind id="takeMoneyOff" nodeset="/xForm/takeMoneyOff" 
     calculate="choose(. = 'true', ., 'false')" 
     readonly="false()"/>