Ошибка: недопустимое совпадение с целевым значением инструкции обработки "[xX][mM][lL]"

Ошибка в заголовке возникает всякий раз, когда я запускаю страницу XSLT, которая начинается следующим образом:

<?xml version="1.0" encoding="windows-1256"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:include href="../header.xsl"/>
  <xsl:template match="/">
    <xsl:call-template name="pstyle"/>
    <xsl:call-template name="Validation"/>
    <xsl:variable name="strLang">
      <xsl:value-of select="//lang"/>
    </xsl:variable>
    <!-- ////////////// Page Title ///////////// -->
    <title>
        <xsl:value-of select="//ListStudentFinishedExam.Title"/>
    </title>

Примечание: я удалил все пробелы перед первой строкой, но ошибка все еще происходит!

16 ответов

Инструменты на основе Xerces выдадут следующую ошибку

The processing instruction target matching "[xX][mM][lL]" is not allowed.

когда декларация XML встречается где-либо, кроме как в верхней части файла XML.

Это действительное диагностическое сообщение; другие парсеры XML должны выдавать подобное сообщение об ошибке в этой ситуации.

Чтобы исправить проблему, проверьте следующие возможности:

  1. Некоторое пустое пространство или другое видимое содержимое существует до <?xml ?> декларация.

    Решение: удалите пробел или любой другой видимый контент до объявления XML.

  2. Некоторое невидимое содержание существует до <?xml ?> декларация. Чаще всего это знак порядка байтов (BOM).

    Решение. Удалите спецификацию, используя методы, предложенные на странице W3C в спецификации в HTML.

  3. Бродячий <?xml ?> декларация существует в содержимом XML. Это может произойти, когда файлы XML объединяются программно или посредством вырезания и вставки. Может быть только один <?xml ?> объявление в XML-файле, и оно может быть только вверху.

    Разрешение: поиск <?xml без учета регистра и удалите из файла все, кроме верхнего XML-объявления.

Причина для меня 2 следующих кода в одном XML

<?xml version="1.0" encoding="utf-8"?>

Отладьте свой XML-файл. Либо есть место, либо добавлены лишние или меньшие теги.

Для лучшего понимания соберите проект через командную строку. Окна: gradlew build

В моем случае AndroidManifest.xml имеет пустое место в самой первой строке

      <Empty Row> // This Creates the issue 
<?xml version="1.0" encoding="utf-8"?>

Проверьте, повторяется ли эта строка в вашем XML-файле

      <?xml version="1.0" encoding="utf-8"?>

проверьте свой xml, если ваш xml содержит следующую строку, дважды удалите одну строку (повторяющуюся строку)

      <?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>

Удалить одну повторяющуюся строку

      <?xml version="1.0" encoding="utf-8"?>

Было автоматически сгенерировано сообщение об авторском праве в XML и пустая строка перед <resources> тег, как только я удалил его, моя сборка прошла успешно.

просто удалите эту строку: <?xml version="1.0" encoding="utf-8"?>потому что такая ошибка возникает только из-за этой строки, или вы также можете проверить формат своей строки в соответствии с упомянутой строкой в ​​этом ответе.

Другая причина вышеуказанной ошибки - поврежденный файл jar. Я получил ту же ошибку, но для Junit при запуске модульных тестов. Извлеките банку и загрузите ее снова, чтобы решить проблему.

В моем случае вкладка является источником проблем. Замените вкладку пустой, чтобы решить проблему.

В моем случае я удалил все пустые места без необходимого кода. И это сработало

Для PHP поместите эту строку кода перед тем, как начать печатать свой XML:

while(ob_get_level()) ob_end_clean();

У меня была похожая проблема с 50 000 файлов rdf/xml в 5 000 каталогов (файл каталога Project Gutenberg). Я решил это с бунтом (в распределении jena)

каталог является cache/epub/NN/nn.rdf (где NN - число)

в каталоге над каталогом, где находятся все файлы, т.е. в кеше

riot epub/*/*.rdf --output=turtle > allTurtle.ttl

Это может привести к большому количеству предупреждений, но результат будет в формате, который можно загрузить в jena (используя веб-интерфейс fuseki).

удивительно просто (по крайней мере, в этом случае).

В моем случае был неверный путь в файле конфигурации: файл не был найден (путь был неправильным), и он вышел с этим исключением:

Ошибка настройки из входного потока. Первоначальная причина была: Соответствие цели инструкции обработки "[xX][mM][lL]" не разрешено.

Стоит проверить папки вашего сервера, чтобы увидеть, нет ли там случайного pom.xml.

Я обнаружил, что у меня была проблема, описанная всеми остальными, с искаженным файлом pom.xml, но в папке, которую я не ожидал найти на сервере. Старая сборка торчала вокруг нежелательного D:

Эта ошибка действительно снижает эффективность использования памяти XMLEventReader потому что сбой, когда у новичка ввода есть пробелы.

В любом случае, поскольку он уже закодирован для его использования, мне нужно преобразовать InputStream или же Reader источник, чтобы затем позвонить trim() создать еще одного читателя с этим String для создания средства чтения XML-событий.

Псевдокоды:

      Reader reader = new StringReader(
        inputStreamToStringBuilder( getInputStream(), getContentCharset() )
                .toString().trim()
);
XMLEventReader eventReader = inputFactory.createXMLEventReader(reader);

у вас не может быть двух тегов объявления xml, удалите и используйте только одно объявление

Другие вопросы по тегам