Я использую кнопку 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 могла правильно обрабатывать эти данные.
Спасибо за ваш ответ. Мне нужно обработать данные формы в пределах одного сервлета в одном запросе. Таким образом, можно ли отправлять контент и метаданные в пределах одной xml-структуры вместо использования двух разных запросов на контент и метаданные? – Ben
По этой причине, когда вы запрашиваете отправку метаданных, также доступны значения для элементов управления. Например, см. Элементы '' в этом примере: https://gist.github.com/orbeon/3684806b0a30a9a5ace9. Но мы думали о способах отправки данных + метаданных + вложения в одном запросе (например, multipart/form-data), но это не реализовано на данном этапе. –
avernet
@BenSchnarr Кроме того, я должен добавить, что с 4.7 новый параметр запроса 'process' передается службе, а значение этого параметра запроса будет одинаковым для всех операций send(), выполняемых как часть одного и того же обработать. Поэтому, если вы хотите отправить как данные, так и метаданные, даже если это будет сделано в двух отдельных запросах, у вас есть способ узнать, какие запросы коррелируют, используя параметр 'process' request. – avernet