Средство синтаксического анализа XML: в текстовом содержимом найден недопустимый символ

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

Исходная версия продукта: платформа .NET Framework
Исходный номер базы знаний: 238833

Признак

При синтаксическом анализе XML, содержащего специальные символы, с помощью средства синтаксического анализа Microsoft XML (MSXML) средство синтаксического анализа может сообщить следующее сообщение об ошибке в строке и позиции первого специального символа:

В текстовом содержимом найден недопустимый символ.

Причина

XML-документ не помечается правильной схемой кодирования символов.

Разрешение

  • Укажите правильную схему кодирования в инструкции по обработке XML.
  • Повторно закодируйте XML-данные как правильные UTF-8.

Статус

Такое поведение является особенностью данного продукта.

Дополнительная информация

Специальный символ относится к любому символу за пределами стандартного набора символов Американского стандартного кода для обмена информацией (ASCII) 0x00 - 0x7F, например латинские символы с акцентами, умлауты или другие диакритические знаки. Схема кодирования XML-документов по умолчанию — UTF-8, которая кодирует символы ASCII со значением 0x80 или выше, иначе, чем в других стандартных схемах кодирования.

Чаще всего эта проблема возникает при работе с данными, использующими простую схему кодирования iso-8859-1. В этом случае самым быстрым решением обычно является первое из перечисленных выше в разделе Разрешение . Например, используйте следующее объявление XML:

<?xml version="1.0" encoding="iso-8859-1" ?>
<rootelement>
    ...XML data...
</rootelement>

Вместо этого можно закодировать каждый из этих символов с помощью ссылки на числовые сущности. Например, можно взять специальный символ á, использовать <test> &#225;</test> (десятичная версия) или <test>&#x00E1;</test> (шестнадцатеричная версия).