Меню

Xslt8690 ошибка при обработке xslt

Extensive research did not lead me to understanding why the below happens — I hope that the SO community can help…

I copied the files mentioned in Why HTML1113: Document mode restart from IE9 Standards to Quirks to local filesystem and opened the xml in IE9 (by specifying the path D:... in the url bar).
Surprisingly, the behavior is quite different from opening the web version.
Now I can understand that «My Computer» zone settings differing from Internet zone ones explain the pop-up windows mentioned below, but I don’t understand why the result is different and why quirks mode is not automatically chosen, just like was done when opening the xml on the web.

When I open the local file, I get the following:

AllowScripts

which no doubt is caused by a local zone setting. Next, the browser mode is IE9 (not auto quirks as earlier) and it fails on applying the XSLT:

XSLT8690

First I thought that this was caused by MSXML6 DOM basic settings like AllowXsltScript not being set to true, but I am not sure about that any more, because it all works OK when opening the web version.
So why does the local one fail?

Stranger still, opening the web version led to auto quirks mode and correct result, but when I switch to quirks mode for the local file, it fails on the MSXML6 DOM object — actually this makes more sense to me than no error, because quirks mode probably only offers MSXML3 (or should only offer that — but then why was auto quirks in web version OK?).

Quirks1

After accepting, it changes to

Quirks2

Now, when selecting IE9 standards mode again, I get

IE9take2_console

and the result is the expected

IE9take2

Reciting events when using local files (apart from zone setting differences):

  1. IE9 standards mode XSLT8690 error
  2. Switching to quirks mode errors
  3. Switching back to IE9 standards mode is OK now

Reciting the events when opening the web version (apart from differences due to zone settings):

  1. quirks mode automatically
  2. page opens correctly in quirks — apparently MSXML6 is still used here in the auto quirks mode
  3. switch to IE9 standards mode is OK too
  4. Back to quirks mode errors as above («The parameter is incorrect'»)

What is causing all these peculiar differences?

Обширные исследования не привели меня к пониманию того, почему происходит следующее: я надеюсь, что сообщество SO поможет…

Я скопировал файлы, упомянутые в статье Почему HTML1113: Режим документа перезапускается из стандартов IE9 в Quirks в локальную файловую систему и открыл xml в IE9 (указав путь D:... в строке url).
Удивительно, но поведение отличается от открытия веб-версии.
Теперь я могу понять, что настройки зоны «Мой компьютер», отличные от зон интернет-зоны, объясняют всплывающие окна, упомянутые ниже, но я не понимаю, почему результат отличается и почему режим quirks не выбирается автоматически, как это было сделано, когда открытие xml в Интернете.

Когда я открываю локальный файл, я получаю следующее:

AllowScripts

что, несомненно, вызвано настройкой локальной зоны. Далее, режим браузера — IE9 (а не автоматические причуды, как раньше), и он не работает при применении XSLT:

XSLT8690

Сначала я подумал, что это вызвано базовыми настройками MSXML6 DOM, такими как AllowXsltScript не установлены в true, но я не уверен в этом, потому что все работает нормально при открытии веб-версии.
Так почему же местная неудача?

Тем не менее, незнакомец, открыв веб-версию, появился режим автоматического приведения и правильный результат, но когда я переключаюсь в режим quirks для локального файла, он терпит неудачу в объекте DOM MSXML6 — на самом деле это имеет для меня больше смысла, чем отсутствие ошибки, поскольку режим quirks возможно, только предлагает MSXML3 (или должен только предложить это — но тогда почему были автоматические причуды в веб-версии ОК?).

Quirks1

После принятия он меняет

Quirks2

Теперь, когда вы снова выбираете режим стандартов IE9, я получаю

IE9take2_console

и результат — ожидаемый

IE9take2

Чтение событий при использовании локальных файлов (кроме различий в настройках зоны):

Ошибка режима IE9 XSLT8690 Переход к ошибкам режима quirks Переход в режим стандартов IE9 в порядке

Чтение событий при открытии веб-версии (кроме различий из-за настроек зоны):

режим quirks автоматически страница открывается правильно в причудах — видимо, MSXML6 по-прежнему используется здесь в режиме автоматического причудливости переключиться на режим стандартов IE9 тоже хорошо Вернуться к ошибкам режима quirks, как указано выше («Неверный параметр»)

Что вызывает все эти своеобразные различия?

  • Remove From My Forums
  • Question

  • Hi,

    I have a webpage that is served as XML/XSL file pair. With IE9 — Version 9.0.8112.16421. Update Versions: 9.0.10 (KB2744842) the rendering fails on Windows 2008 R2

    In the script console I see the following message:

    IE9 rendering of XML/XSLT fails with error XSLT8690: The download of the specified resource has failed

    But in the web server logs I see the XSLT file being downloaded.

    Enabling Compatibility View seems to solve the rendering problem.

    Thanks and regards,

    josue

    UPDATE: same browser version on Windows 7 (64-bit) render without problems even if compatibility view is off.

    • Edited by

      Tuesday, November 6, 2012 8:30 PM

RRS feed

  • Remove From My Forums
  • Question

  • How does one go about debugging the error «XSLT8690: XSLT processing failed.»? I am trying to usean XML file with an XSLT file referenced in the header with IE11. By comparing the XML which results in this error to others which work fine with
    the same transform I’ve narrowed the problem down to the processing of certain elements. Is there some way to make IE give more detailed error information?

All replies

  • Hi,

    tools>Internet Options>Advanced tab, check «Always record developer console messages.»

    Save changes.

    Close and Open IE. Open a blank page (about:blank) then press f12 to display the dev tool.

    Select the Debug tab and choose «Break on all exceptions» dropdown (looks like a stop sign).

    Select the Networking tab and turn on logging.

    Return to the console tab. PIN the dev tool to the bottom of the browser (or dock it to a side on your screen)

    In the IE address bar type in the address to your website page.

    Use the File Properties menu in IE to confirm that it is in the expected IE security zone (expected internet). 

    Use the Emulation tab of the f12 tool to confirm that the expected IE version emulation is being used. (you may have to use IE10 for legacy intranet sites).

    If you are creating a feed for public consumption, make sure that you have Internet Options>Content tab, >Feeds and slices>check «Turn on feed reader view». Save changes.

    If possible include links to problem websites with your questions. If it is an internal intranet site mention as such.

    Regards.


    Rob^_^

    • Proposed as answer by

      Wednesday, August 29, 2018 2:01 AM

  • Thanks for the extensive instructions. I tried them and got more information but nothing relevant to the XSLT error message. The URL is http://clamb.name/S1000D/Iss2-2_stylesheets_with_bike_050921[1][1]X3DOM.bike/PMC-S1000DBIKE-U8025-00001-00_000-02.html
    .  Using the left panel navigate to Bike Manuals—>Maintenance Manual—>Bicycle—>General—>Bicycle — Description of how it is made to encounter the error.

  • Oddly, I don’t get this error when I use IE to process the files from the local disk.

RRS feed

  • Remove From My Forums
  • Question

  • How does one go about debugging the error «XSLT8690: XSLT processing failed.»? I am trying to usean XML file with an XSLT file referenced in the header with IE11. By comparing the XML which results in this error to others which work fine with
    the same transform I’ve narrowed the problem down to the processing of certain elements. Is there some way to make IE give more detailed error information?

All replies

  • Hi,

    tools>Internet Options>Advanced tab, check «Always record developer console messages.»

    Save changes.

    Close and Open IE. Open a blank page (about:blank) then press f12 to display the dev tool.

    Select the Debug tab and choose «Break on all exceptions» dropdown (looks like a stop sign).

    Select the Networking tab and turn on logging.

    Return to the console tab. PIN the dev tool to the bottom of the browser (or dock it to a side on your screen)

    In the IE address bar type in the address to your website page.

    Use the File Properties menu in IE to confirm that it is in the expected IE security zone (expected internet). 

    Use the Emulation tab of the f12 tool to confirm that the expected IE version emulation is being used. (you may have to use IE10 for legacy intranet sites).

    If you are creating a feed for public consumption, make sure that you have Internet Options>Content tab, >Feeds and slices>check «Turn on feed reader view». Save changes.

    If possible include links to problem websites with your questions. If it is an internal intranet site mention as such.

    Regards.


    Rob^_^

    • Proposed as answer by

      Wednesday, August 29, 2018 2:01 AM

  • Thanks for the extensive instructions. I tried them and got more information but nothing relevant to the XSLT error message. The URL is http://clamb.name/S1000D/Iss2-2_stylesheets_with_bike_050921[1][1]X3DOM.bike/PMC-S1000DBIKE-U8025-00001-00_000-02.html
    .  Using the left panel navigate to Bike Manuals—>Maintenance Manual—>Bicycle—>General—>Bicycle — Description of how it is made to encounter the error.

  • Oddly, I don’t get this error when I use IE to process the files from the local disk.

I am glad that the issue was fixed — in this particular case that is.
But the real reason for the error in IE9 is not disclosed yet, so I will do that here.

The reason for the encountered behavior is a bug in XSLT processing in IE9.

Well OK — it’s not really a bug, just bad error reporting. The point is that IE9 applies MSXML6 by default, and a lot of things have changed with respect to MSXML4. When there’s a plain error in the XSLT, it’s not reported — IE9 seemingly skips processing onto default text() templates, which results in presenting all text nodes.
Worse, when something is done in the XSLT that is prohibited by default in MSXML6, the same thing happens. So what’s prohibited by default in MSXML6? A lot! Applying Jscript for instance. And DTD’s. And the document() function won’t work.

In the case above, one might suspect from the text shown (which obviously comes from applying the default templates), that there is an error in the xslt — waiting to be discovered with good tools. But this IE9 behavior is not so obviously linked to the xslt when there’s no text in the xml part of the file opened (that is, when the xslt itself supplies all the data to be processed, for instance by importing xml files on runtime, or the data in the xml that the xslt processes is all in attributes and nodenames). You just have to know…

You can see the error message behind all this yourself if you go to developer tools by pressing F12 (or select it from the Tools menu). In developer tools subscreen, select Script Menu and load your page now. You will see that on the right, in the console, an error message appears:
XSLT8690: XSLT processing failed.
When this error occurs, only the text nodes in the xml are displayed (so, for an empty xml root node, the page will be blank).
I could find only one reference to this error on the web: http://www.wikistep.org/bugzilla/show_bug.cgi?id=4140.

Note that when you select «compatibility view» by clicking the torn page button next to the refresh button (which is not always available, another -minor- IE9 bug), the page goes back to IE8 display, and will be OK again — well, apart from any errors in xslt of course, but MSXML 4.0 does not have all these restrictions that MSXML 6.0 has by default. It’s safer, for sure, but very annoying too.

Note that by selecting compatibility view, the site part of the file’s url is added to the list of sites for which compatibility view is automatically applied.
To recreate the issue, you will have to remove the site from that list, by pressing Alt to open up the menu, selecting tools/compatibility view settings, and removing the site from the list before trying again.
Also note that the trick of applying compatibility view does not always fix things: when for instance the xslt calls embedded javascript containing classes not available in IE8 Jscript version, the xslt will fail in compatibility view too.

Now what can be done about this? Actually I am not sure — worth another question on SO!
The properties which are off by default can be switched on — but the examples I have seen only do so when loading an XML type string in a DOM object within a sequence of statements — and then one can assign the new DOM object the necessary properties before loading the string.
Here, IE9 takes care of loading the XML automatically and also loads the XSLT to process the XML. So where the hell can we set the XML load properties before the loading takes place?
I am sure it will take time — but I will find out!

I am glad that the issue was fixed — in this particular case that is.
But the real reason for the error in IE9 is not disclosed yet, so I will do that here.

The reason for the encountered behavior is a bug in XSLT processing in IE9.

Well OK — it’s not really a bug, just bad error reporting. The point is that IE9 applies MSXML6 by default, and a lot of things have changed with respect to MSXML4. When there’s a plain error in the XSLT, it’s not reported — IE9 seemingly skips processing onto default text() templates, which results in presenting all text nodes.
Worse, when something is done in the XSLT that is prohibited by default in MSXML6, the same thing happens. So what’s prohibited by default in MSXML6? A lot! Applying Jscript for instance. And DTD’s. And the document() function won’t work.

In the case above, one might suspect from the text shown (which obviously comes from applying the default templates), that there is an error in the xslt — waiting to be discovered with good tools. But this IE9 behavior is not so obviously linked to the xslt when there’s no text in the xml part of the file opened (that is, when the xslt itself supplies all the data to be processed, for instance by importing xml files on runtime, or the data in the xml that the xslt processes is all in attributes and nodenames). You just have to know…

You can see the error message behind all this yourself if you go to developer tools by pressing F12 (or select it from the Tools menu). In developer tools subscreen, select Script Menu and load your page now. You will see that on the right, in the console, an error message appears:
XSLT8690: XSLT processing failed.
When this error occurs, only the text nodes in the xml are displayed (so, for an empty xml root node, the page will be blank).
I could find only one reference to this error on the web: http://www.wikistep.org/bugzilla/show_bug.cgi?id=4140.

Note that when you select «compatibility view» by clicking the torn page button next to the refresh button (which is not always available, another -minor- IE9 bug), the page goes back to IE8 display, and will be OK again — well, apart from any errors in xslt of course, but MSXML 4.0 does not have all these restrictions that MSXML 6.0 has by default. It’s safer, for sure, but very annoying too.

Note that by selecting compatibility view, the site part of the file’s url is added to the list of sites for which compatibility view is automatically applied.
To recreate the issue, you will have to remove the site from that list, by pressing Alt to open up the menu, selecting tools/compatibility view settings, and removing the site from the list before trying again.
Also note that the trick of applying compatibility view does not always fix things: when for instance the xslt calls embedded javascript containing classes not available in IE8 Jscript version, the xslt will fail in compatibility view too.

Now what can be done about this? Actually I am not sure — worth another question on SO!
The properties which are off by default can be switched on — but the examples I have seen only do so when loading an XML type string in a DOM object within a sequence of statements — and then one can assign the new DOM object the necessary properties before loading the string.
Here, IE9 takes care of loading the XML automatically and also loads the XSLT to process the XML. So where the hell can we set the XML load properties before the loading takes place?
I am sure it will take time — but I will find out!

IE9 применяет MSXML6 по умолчанию, где IE8 применяет MSXML3. Тот факт, что определенные функции отключены по умолчанию в MSXML6, вызывает проблемы, особенно при загрузке таких страниц, как

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<root>...</root>

где упоминается таблица стилей xslt, применяется встроенный javascript (например, пользовательские функции расширения).

Свойства DOM xslt можно задавать в коде сценария, например, в Jscript:

var xsltDoc = new ActiveXObject("Msxml2.DOMDocument.6.0");
xsltDoc.setProperty("AllowXsltScript", true);
xsltDoc.loadXML(xsltfile);

Но при загрузке файла, указанного выше, IE9 загружает файл xslt автоматически, со значениями свойств по умолчанию. И это приводит к поразительной разнице в IE8: IE8 будет загружать страницу безупречно, но IE9 выдает ошибку из-за свойства объектов MSXML6 DOM по умолчанию «allow xslt scripting = false». Это неправда — см. Мой ответ ниже. Остальная часть вопроса, таким образом, незначительна

Как я могу заставить IE9 загрузить файл выше и все еще разрешить запуск скриптов в xslt?

Примечание. Я уже пробовал настройки Internet Options/Security/Custom level…/Scripting/Active Scripting = Enable, как было предложено в msdn, но эта настройка была уже правильной.

Я надеюсь, что есть специальная инструкция по обработке IE9, но я думаю, что нет. Но, возможно, это специальный атрибут stylesheet, который взаимодействует с загрузкой IE9 xslt.
Конкусоном также может быть, что это возможно только при запуске скрипта в главном html файле, где автоматическая загрузка не выполняется, но XML и XSLT загружаются в указанные объекты DOM с указанными свойствами (такими как AllowXsltScript), и вывод преобразование затем загружается в браузер явно.

0 / 0 / 0

Регистрация: 30.09.2015

Сообщений: 13

1

29.05.2016, 10:54. Показов 1529. Ответов 11


Есть 2 варианта работы со связью Связь xml c html. с АБСОЛЮТНО идентичным кодом, но с разными данными. один вариант работает, а второй нет.
Файлы прикреплены

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

29.05.2016, 10:54

11

Эксперт .NET

8860 / 5641 / 1343

Регистрация: 25.05.2015

Сообщений: 17,109

Записей в блоге: 14

29.05.2016, 11:20

2

Цитата
Сообщение от Vitanya
Посмотреть сообщение

один вариант работает, а второй нет.

Оба не работают. MS Edge, Firefox 46.0.1, IE 11.



0



0 / 0 / 0

Регистрация: 30.09.2015

Сообщений: 13

29.05.2016, 11:23

 [ТС]

3

Работает. для просмотра нужен режим совместимости IE7.



0



Эксперт .NET

8860 / 5641 / 1343

Регистрация: 25.05.2015

Сообщений: 17,109

Записей в блоге: 14

29.05.2016, 11:26

4

Чтобы работало чуть более, чем на одном браузере, надо на XMl + XSL переделать, а не браузер под ваш сайт подстраивать.
Я всё равно не знаю, как эту совместимость включить для конкретного файла



0



0 / 0 / 0

Регистрация: 30.09.2015

Сообщений: 13

29.05.2016, 11:29

 [ТС]

5

Мне не надо чтобы оно в любом браузере работало. мне достаточно IE. Мне лишь бы сдать эту лабу и отвязаться. а как переделывать — я не знаю.я делаю все по методичкам, что нам препод дал.



0



Эксперт .NET

8860 / 5641 / 1343

Регистрация: 25.05.2015

Сообщений: 17,109

Записей в блоге: 14

29.05.2016, 11:33

6

Не по теме:

Русские имена/теги — моветон, чреватый багами.

Добавлено через 1 минуту



0



0 / 0 / 0

Регистрация: 30.09.2015

Сообщений: 13

29.05.2016, 11:33

 [ТС]

7

так и с англ оно не работатет



0



Эксперт .NET

8860 / 5641 / 1343

Регистрация: 25.05.2015

Сообщений: 17,109

Записей в блоге: 14

29.05.2016, 11:35

8

А по теме — чёрт его знает. Специфичная для древнего IE функция. Браузер известный на весь Web своими глюками, костылями и нестандартностью.
Я бы не полагался на эту «фичу» вообще, ни тогда, ни сегодня.



0



0 / 0 / 0

Регистрация: 30.09.2015

Сообщений: 13

29.05.2016, 11:45

 [ТС]

9

Я вообще тогда не знаю, как делать( мне сдавать уже завтра, а я вообще ничего из всего задания не сделала… у меня вообще ничего не работает(((((



0



6182 / 2435 / 716

Регистрация: 11.04.2015

Сообщений: 3,942

Записей в блоге: 43

29.05.2016, 12:24

10

Vitanya, я не смотрел файлы, но если проблема только в режиме совместимости, то для его автоматического включения в документ надо просто мета-тег добавить с указанием версии ие, под которой все должно работать
Режимы Internet Explorer | htmlbook.ru



0



Rius

Эксперт .NET

8860 / 5641 / 1343

Регистрация: 25.05.2015

Сообщений: 17,109

Записей в блоге: 14

29.05.2016, 12:34

11

И вот вариант с XSL

Кликните здесь для просмотра всего текста

catalog.xslt

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns="http://www.w3.org/1999/xhtml">
    <xsl:output method="html" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
        <html>
            <head>
                <title>Каталог</title>
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
            </head>
            <body>
                <xsl:text>1231232</xsl:text>
                <h2>Книжный каталог</h2>
                <table BORDER="1" CELLPADDING="5">
                    <thead>
                        <th>Название</th>
                        <th>Автор</th>
                        <th>Тип переплета</th>
                        <th>Количество страниц</th>
                        <th>Цена</th>
                    </thead>
                    <xsl:for-each select="catalog/book">
                        <tr>
                            <td>
                                <xsl:value-of select="title"/>
                            </td>
                            <td>
                                <xsl:value-of select="author"/>
                            </td>
                            <td>
                                <xsl:value-of select="bindingType"/>
                            </td>
                            <td>
                                <xsl:value-of select="pagesCount"/>
                            </td>
                            <td>
                                <xsl:value-of select="price"/>
                            </td>
                        </tr>
                    </xsl:for-each>
                </table>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>

catalog.xml

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="catalog.xslt"?>
<catalog>
  <book>
    <title>Приключения Гекльберри Финна</title>
    <author>Марк Твен</author>
    <bindingType>мягкий</bindingType>
    <pagesCount>298</pagesCount>
    <price>549</price>
  </book>
  <book>
    <title>Моби Дик</title>
    <author>Герман Мелвилл</author>
    <bindingType>твердый</bindingType>
    <pagesCount>605</pagesCount>
    <price>495</price>
  </book>
  <book>
    <title>Унесенные ветром</title>
    <author>Маргарет Митчелл</author>
    <bindingType>твердый</bindingType>
    <pagesCount>853</pagesCount>
    <price>725</price>
  </book>
  <book>
    <title>Легенда Сонной Лощины</title>
    <author>Вашингтон Ирвинг</author>
    <bindingType>твердый</bindingType>
    <pagesCount>98</pagesCount>
    <price>295</price>
  </book>
  <book>
    <title>Приключения Тома Сойера</title>
    <author>Марк Твен</author>
    <bindingType>мягкий</bindingType>
    <pagesCount>243</pagesCount>
    <price>249</price>
  </book>
</catalog>

Работает в Firefox и IE 11. В IE надо разрешить активное содержимое.
Не работает в MS Edge на локальных файлах. Ошибка XSLT xslt8690, в MS, в своём стиле, решили, что раз в Firefox работает, то это проблема Firefox.

Вообще это преобразование надо делать программно, не самим браузером.

Вложения

Тип файла: zip catalog.zip (1.3 Кб, 12 просмотров)



0



Эксперт .NET

8860 / 5641 / 1343

Регистрация: 25.05.2015

Сообщений: 17,109

Записей в блоге: 14

29.05.2016, 12:43

12

Да, проблемы с безопасностью. Поэтому загрузка XML + XSL в браузере из локальных файлов сильно порезана. Поэтому не пойдёт.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

29.05.2016, 12:43

Помогаю со студенческими работами здесь

Связь HTML и PHP
Я начинающий в PHP.
Подскажите, пожалуйста, как реализовать следующее:
1. Из формы в HTML…

Связь php и html
У сеня есть некий html код, где в форме нужно ввести свои данные.
&lt;html&gt;
&lt;head&gt;…

Связь php и html
Только начал заниматься созданием своего сайта. Столкнулся вот с чем, в php при выполнении…

связь html и css
начал изучать css
такой простенький пример, но я не понимаю почему он у меня не работает:

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

12

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Yealink phonebook generation tool ошибка
  • Yd25ddti не заводится ошибок нет