При разработке интерфейса XForm для базы данных XML (с использованием eXist и XSLTForms) я хотел бы включить элемент управления вводом для необязательного элемента. Записи данных XML уже существуют, и хотя некоторые из них содержат необязательный элемент, другие нет. Чтобы обновить запись, я использую существующую запись XML в качестве экземпляра модели. Проблема в том, что элемент управления формы не отображается, когда необязательный элемент отсутствует, что логично, но представляет проблему, когда пользователь хочет добавить данные в необязательный элемент.
Чтобы быть более точным, вот пример записи данных, data.xml:
<a>
<b>content</b>
</a>
со схемой RNC:
start =
element a {
element b { text },
element notes { text }?
}
Модель XForms:
<xf:model>
<xf:instance xmlns="" src="data.xml"/>
<xf:submission id="save" method="post" action="update.xq" />
</xf:model>
И элемент управления:
<xf:input ref="/a/notes">
<xf:label>Notes (optional): </xf:label>
</xf:input>
Проблема в том, что элемент управления вводом 'Notes' просто не отображается.
Очевидным решением является добавление кнопки-триггера, чтобы пользователь мог вставить элемент при необходимости, но предпочтительно, чтобы элемент управления вводом отображался и был пустым.
Мой вопрос: : Есть ли какая-то тонкая комбинация менее известных атрибутов / привязок / множественных экземпляров / выражений xpath, которые заставят элемент управления всегда отображаться?