Запуск должен использовать CDATA повреждающееся изменение?

Для взаимодействия с приложением клиента мы используем XML-документы. Таким образом, мы отправляем XML по HTTP и получаем XML-документ ответа тот же путь. Клиент указал две XML-схемы, которые описывают формат обоих запрос и ответ. Все хорошо работало, до одного дня клиент начинал использовать разделы CDATA в ответе XML. Мы настраиваем наш синтаксический анализатор, невнимательный к разделам CDATA, таким образом, нам не удалось интерпретировать их.

Мой вопрос: Кто сделал ошибку здесь? Я пытался найти ответ в стандартах XML, но я все еще не уверен. Я думаю, что не могу предписать использование или не использование CDATA's в XSD, который является правильным? Если так, разве недостаточно согласовать XSD, но отдельное соглашение должно быть заключено о разделах CDATA? Или каждый обязан быть готовым проанализировать CDATA и обычный текст также?

Я интересуюсь и Вашими персональными представлениями и любыми официальными заявлениями также.Спасибо!

5
задан kicsit 21 May 2010 в 11:47
поделиться

2 ответа

Многие анализаторы XML разделяют текст и CDATA, что прискорбно. Ошибка была ваша: нет семантической разницы между обычными фрагментами текста и CDATA, поэтому отправитель должен иметь право выбирать между ними в зависимости от потребностей текущего текста.

Хорошая новость в том, что адаптировать код должно быть несложно.

6
ответ дан 13 December 2019 в 05:31
поделиться

CDATA является базовой частью XML. Отсутствие поддержки означает, что парсер сломан (а не настоящий парсер XML (который мог бы справиться с элементами, содержащими текст, CDATA, сущности, другие элементы, комментарии и т. Д. И т. Д.)).

Поскольку я упомянул об этом в комментарии к другому ответу, теперь у меня есть желание повторить его здесь. Не ожидать CDATA в XML - это все равно, что не ожидать рыбы в море .

6
ответ дан 13 December 2019 в 05:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: