Что означает исключение org.apache.xmlbeans.XmlException с сообщением о & # 8220; неожиданном элементе: CDATA & # 8221; имею в виду?
-
05-07-2019 - |
Вопрос
Я пытаюсь проанализировать и загрузить XML-документ, однако я получаю это исключение, когда вызываю метод parse для класса, расширяющего XmlObject. К сожалению, он не дает мне представления о том, какой элемент является неожиданным, что является моей проблемой.
Я не могу поделиться кодом для этого, но я могу попытаться предоставить больше информации, если это необходимо.
Решение
Не имея возможности обмениваться кодом или входными данными, вы можете рассмотреть следующий подход. Боюсь, это очень распространенный дихотомический подход к диагностике , и, возможно, вы с готовностью начали его ...
Попробуйте уменьшить размер входного XML, удалив его части, гарантируя, что базовый XML-документ остается правильно сформированным и, возможно, допустимым (если в настройках вашего синтаксического анализатора требуется достоверность). Если вы сохраняете действительность, для этого может потребоваться изменить [копию] Схемы (DTD или другое), так как обязательные элементы могут быть удалены во время подхода «пробуй и пробуй» ... Кстати, сообщение об ошибке, похоже, больше намекает на проблема проверки, которая является основной проблемой правильного утверждения.
Если у человека нет особой догадки относительно области, вызывающей жалобу анализатора, мы обычно удаляем (или повторно добавляем, когда все начинает работать) около половины того, что было ранее вырезано или повторно добавлено. Р>
Вы также можете начать с попытки в основном пустого файла, чтобы утверждать, что синтаксический анализатор работает вообще ... Есть идея «разделить на преобладающие»: проблема во вводе XML или в анализаторе ? (помня, что может быть две проблемы, одна на входе и одна на анализаторе, и что такие проблемы могут быть даже не связаны ...)
Извините, что излагаю базовые методы диагностики, с которыми вы, возможно, хорошо владеете ...
Другие советы
Вы должны проверить аргументы, которые вы передаете методу parse (); Если вы передаете строку для анализа, файла или входного потока соответственно (File / InputStream / String) и т. Д.
Исключение вызвано длиной файла XML. Если вы добавите или удалите один символ из файла, синтаксический анализатор выполнится успешно.
Проблема возникает в сторонней библиотеке PiccoloLexer, на которую опирается XMLBeans. Это было исправлено в ревизии 959082, но не было применено к банке 2,5 штуки.
XMLBeans - проблема с файлами XML, если длина точно равна 8193 байтам