Значения по умолчанию во входных данных XForms - PullRequest
1 голос
/ 13 ноября 2009

У меня есть XForm, в котором есть определенные поля, которые часто можно оставить пустыми (необязательно, уличный адрес). Есть ли способ установить значение по умолчанию для этого поля, предпочтительно пробел (я сталкиваюсь со странными проблемами форматирования с CSS). Способ html формы value="" не работает, равно как и установка значения по умолчанию в схеме XML.

Пример:

<xforms:input ref="clientaddress/streetaddress2" model="model_inventory" >
        <xforms:label>Street Address (Line 2)</xforms:label>

Если оставить это поле пустым, получится <streetaddress2/> в результирующем XML-документе

Я хочу

<streetaddress> </streetaddress>

Ответы [ 2 ]

1 голос
/ 13 ноября 2009

Вы говорите, что хотите установить значение всех полей в вашем экземпляре, которые не имеют пробелов? Предполагая, что у вас есть статический экземпляр, вы можете добавить в свою модель следующее:

<xforms:setvalue ev:event="xforms-model-construct-done" 
    xxforms:iterate="//*[empty(*) and string() = '']" ref="."> </xforms:setvalue>

Обратите внимание, что здесь используется расширение xxforms:iterate форм Orbeon (, документированное здесь ). Если вы используете другую реализацию XForms, вы можете проверить документацию этой реализации, чтобы узнать, предоставляют ли они аналогичное расширение.

(При этом мне любопытно, зачем вам нужен пробел в "пустых" полях. Может ли это быть признаком проблемы где-то еще?)

0 голосов
/ 15 ноября 2009

Самый простой способ установить значение по умолчанию в XForms - это экземпляр:

<xforms:instance>
  <data>
    <clientaddress>
      <streetaddress> </streetaddress>
    </clientaddress>
  </data>
</xforms:instance>

Вы сказали, что пытались установить значение по умолчанию в схеме, но я не уверен, что оно работает так, как вы ожидали. Схема может использоваться для проверки, но я не знаю, использует ли какой-либо механизм XForms значения схемы по умолчанию.

...