Как получить 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: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>
С соответствующим связыванием вы можете даже хранить "false", когда появляется пробел:
<xf:bind id="takeMoneyOff" nodeset="/xForm/takeMoneyOff"
calculate="choose(. = 'true', ., 'false')"
readonly="false()"/>
Вы не упоминаете, на какую (-ие) реализацию (-и) XForms вы нацеливаетесь, но, предполагая, что они / они полностью соответствуют, у вас есть два варианта.
Если вы хотите указать тип в данных экземпляра, как показывает пример кода, вам нужно, чтобы атрибут type был в пространстве имен экземпляра схемы XML. Итак, если вы объявили префикс пространства имен
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
, ваш экземпляр данных должен выглядеть следующим образом:<takeMoneyOff xsi:type="xs:boolean" />
В качестве альтернативы, если данные экземпляра поступают из внешнего источника, и вы не контролируете их, вы можете вместо этого поместить атрибут типа в сам элемент связывания (в этом случае он не должен находиться в пространстве имен xsi):
<xf:bind id="takeMoneyOff" nodeset="/xForm/takeMoneyOff" type="xs:boolean" />