Какой XML я отправляю для поля, объявленного как nillable? - PullRequest
1 голос
/ 20 сентября 2008

У меня есть приложение с интерфейсом в стиле REST, которое принимает XML-документы через POST от клиентов. Это приложение написано на Java и использует XML-компоненты для обработки опубликованного сообщения.

Определение схемы XML для поля в сообщении выглядит следующим образом:

<xs:element name="value" type="xs:string" nillable="true" />

Как отправить нулевое значение, соответствующее этой спецификации?

Я отправил <value xsi:nil="true" /> но это привело к тому, что парсер XML прервался.

Ответы [ 3 ]

15 голосов
/ 20 сентября 2008

А как насчет <value xsi:nil="true"></value>? Вот что в спецификации .

1 голос
/ 20 сентября 2008

Раньше, когда у меня были нулевые XML-элементы, я мог либо не включать их, либо отправлять их пустыми, так что в вашем случае это было бы: <value />

Вы пробовали это?

0 голосов
/ 20 сентября 2008

Это правильный способ отправки значения nil (при условии, что для пространства имен по умолчанию и пространства имен xsi заданы правильные значения, а именно "http://www.w3.org/2001/XMLSchema-instance" для xsi.), Так что похоже, что вы могли прийти против ошибки в синтаксическом анализаторе CML, который вы используете. Что за сообщение об ошибке?

Вы можете попробовать использовать xsi:nil="1" или использовать отдельные теги открытия и закрытия (<value xsi:nil="true"></value>), чтобы попытаться обойти ошибку.

...