Как создать элемент управления XBL, сохраняющий данные в двух элементах?

Я пытаюсь сказать Orbeon сгруппировать 2 поля вместе, чтобы получить 2 значения, например: фунты и унции.

<xs:complexType name="rpm-weight">
    <xs:sequence>
        <xs:element name="weight-lbs" type="rpm-weight-lbs" minOccurs="1" maxOccurs="1"/>
        <xs:element name="weight-oz" type="rpm-weight-oz"   minOccurs="1" maxOccurs="1">
    </xs:sequence>
</xs:complexType>

Как я могу сказать Orbeon, что при выборе rpm-weight он будет генерировать 2 текстовых поля?


person Pat B    schedule 04.06.2012    source источник
comment
Это с помощью Form Builder или пользовательских XForms? И вы хотите иметь два текстовых поля, но хранить значение в одном XML-элементе или атрибуте? Пожалуйста, предоставьте подробную информацию.   -  person ebruchez    schedule 05.06.2012
comment
На самом деле, я буду использовать xbl. Я хотел бы сохранить значения в 2 отдельных значения. Что мы хотим сделать, так это выбрать пользовательский контроль веса, который добавит 2 текстовых поля (одно для фунтов, а другое для унций). Огромное спасибо   -  person Pat B    schedule 05.06.2012


Ответы (1)


Создание компонента XBL — это путь, который может оказаться сложным, если вы делаете это впервые. Несколько указателей:

  • Чтобы вы могли использовать его в Form Builder, ваш компонент должен быть привязан к одному элементу (с ref). Имя элемента будет именем, данным авторами формы элементу управления в построителе форм (при условии, что они не используют пользовательский экземпляр).
  • Построитель форм создаст один элемент в экземпляре для элемента управления. Поскольку ваш элемент управления должен иметь подэлементы, вам нужно сообщить об этом конструктору форм. Вы можете сделать это с помощью fb:metadata/fb:template/fb:instance. См., например, как это делается в autocomplete.xbl. Например. эта часть метаданных будет выглядеть следующим образом.

Пример метаданных Form Builder для XBL:

<fb:metadata xmlns:fb="http://orbeon.org/oxf/xml/form-builder">
    ...
    <fb:templates>
        <fb:instance>
            <weight-lbs/>
            <weight-oz/>
        </fb:instance>
        <fb:view>
            ...
       </fb:view>
    </fb:templates>
</fb:metadata>
person avernet    schedule 06.06.2012