Я пытаюсь использовать функциональность патча MarkLogi c (в версии 9.0-9.1), чтобы иметь возможность редактировать один или несколько элементов документа. В приложении у пользователя будет экран, заполненный исходными значениями, и он сможет редактировать одно или несколько полей, а затем сохранять изменения.
У меня есть такой документ:
<root>
<value1>original value</value1>
<value2>original value</value2>
<value3>original value</value3>
<value4>original value</value4>
<value5>original value</value5>
</root>
Я пытаюсь обновить его, используя это (с одним или несколькими значениями отредактированного содержимого):
<rapi:patch xmlns:rapi="http://marklogic.com/rest-api">
<rapi:replace-insert context="/root" select="value1">original value</rapi:replace-insert>
<rapi:replace-insert context="/root" select="value2">original value</rapi:replace-insert>
<rapi:replace-insert context="/root" select="value3">edited content</rapi:replace-insert>
<rapi:replace-insert context="/root" select="value4">original value</rapi:replace-insert>
<rapi:replace-insert context="/root" select="value5">original value</rapi:replace-insert>
</rapi:patch>
Однако, если каждое поле не имеет нового содержимого, я получаю следующую ошибку:
2020-01-29 21:25:37.425 Info: Status 500: RESTAPI-INVALIDREQ: (err:FOER0000) Invalid request: reason: invalid patch for uri /FILE0000026.xml: replace-insert without apply or content: /root
Есть ли способ изменить одно или несколько значений в одном запросе без динамического обновления исправления, чтобы применять его только к измененным значениям