2014-11-08 2 views
0

Я использую кнопку send (формально workflow-send), чтобы отправить данные, введенные в форму Орбеона. Впоследствии я отправляю эти данные в собственный сервлет, чтобы разобрать эти данные и отправить значения в механизм процесса.Определение типов данных в данных представления формы Орбеона

Проблема в том, что в XML-данных представления, созданных Orbeon, нет информации о типах данных. Допустим, у меня есть форма Орбеона с текстовым полем, текстовым полем и полем даты. Сформированное представление XML выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?> 
<form xmlns:xxf="http://orbeon.org/oxf/xml/xforms" xxf:id="0f81046cee210b5b64db5706b6fe79f986fb539b">      
    <section-1 xxf:id="e7d2bb4ac261e77159fc236e7fd922c3540756f8">       
    <approver xxf:id="6e3c7a6f088fb15e633358f17f9a495cbbb0191f">Person 1</approver>       
    <duedate xxf:id="b28aedbc6f2d4bd8872a48c06d2eed65cc062498">2014-11-20</duedate>       
    <comments xxf:id="0f931e5351491df185889d62274e1d706c901293">This is a test comment</comments>      
    </section-1> 
</form> 

Поскольку у меня будет обрабатывать различные формы с тем же сервлетом, что мне нужно знать, какие данные существуют типы в соответствующей форме Orbeon. Есть ли способ настроить это? Orbeon также должен отправлять типы данных в XML-файл представления, чтобы служба HTTP могла правильно обрабатывать эти данные.

ответ

1

Вы можете сделать это, так как Orbeon Forms 4.7, с send(content = "metadata"). Подробнее об этом вы найдете в документации для send() action.

+0

Спасибо за ваш ответ. Мне нужно обработать данные формы в пределах одного сервлета в одном запросе. Таким образом, можно ли отправлять контент и метаданные в пределах одной xml-структуры вместо использования двух разных запросов на контент и метаданные? – Ben

+0

По этой причине, когда вы запрашиваете отправку метаданных, также доступны значения для элементов управления. Например, см. Элементы '' в этом примере: https://gist.github.com/orbeon/3684806b0a30a9a5ace9. Но мы думали о способах отправки данных + метаданных + вложения в одном запросе (например, multipart/form-data), но это не реализовано на данном этапе. – avernet

+0

@BenSchnarr Кроме того, я должен добавить, что с 4.7 новый параметр запроса 'process' передается службе, а значение этого параметра запроса будет одинаковым для всех операций send(), выполняемых как часть одного и того же обработать. Поэтому, если вы хотите отправить как данные, так и метаданные, даже если это будет сделано в двух отдельных запросах, у вас есть способ узнать, какие запросы коррелируют, используя параметр 'process' request. – avernet