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

126

Ошибка в заголовке возникает всякий раз, когда я запускаю страницу 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>

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

Теги:
xslt

2 ответа

249

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

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

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

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

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

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

    Разрешение: удаление пробела или любого другого видимое содержимое перед объявлением XML.

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

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

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

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

  • 0
    Для блуждающего <? Xml, как бы вы на самом деле пошли по итерации по файлу xml, чтобы найти его? Как и при использовании синтаксических анализаторов sax или stax, все работает нормально (пробовал делать это со stax, но не распознает)
  • 0
    Чтобы исключить ложную декларацию XML, вы должны обращаться с файлом как с текстом, а не с XML, потому что дополнительная декларация XML не позволяет правильно сформировать XML. Используйте текстовый редактор или откройте файл программным способом и работайте с ним как с текстом, чтобы исключить объявление stray <?xml ?> Перед обработкой его как файла XML.
Показать ещё 8 комментариев
1

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню