Вполнение Javascript в XML
Как заставить xml-файл понимать javascript-код? DTD не помогают, пространства имён вроде вообще не из этой области... Даже не знаю, в какую сторону копать:(
|
тебе не понравиться мой ответ (;
а что у тебя там такого скриптового передается? |
Цитата:
Цитата:
Можно применять xslt для части дерева, например, сортировки (скорость по более будет, нежели только средствами JS) и xPath (хотя я подозреваю, что это можно и в xhtml). Да и вообще намного удобнее с ним работать:) |
Цитата:
|
Цитата:
Лично мне она нравится. |
ну пусть нравится, но на данный момент сайты не пишуться на xml. Или я не зна? Если не пишутся, значит это пока из области экспериментов
|
а как вы преобразуете XML в читаемый вид?
XSLT же? разве если задать правило преобразования блоков с кодом в <script type="text/javascript"></script> не сработает? извиняюсь, если сказал глупость, не сильно владею темой |
Цитата:
<?xml-stylesheet type="text/css" href="" ?> Цитата:
Цитата:
Вот небольшой, но вполне рабочий вариант: <?xml version="1.0" encoding="utf-8" ?> <?xml-stylesheet href="style.css" type="text/css"?> <!DOCTYPE root [ <!ELEMENT root ANY> <!ELEMENT a (#PCDATA)> <!ELEMENT script (#PCDATA)> <!-- создадим пространство имён html, чтобы можно было использовать html элементы в любом месте --> <!ATTLIST root xmlns:html CDATA #FIXED "http://www.w3.org/1999/xhtml" > <!-- создадим простую гиперссылку xLink --> <!ATTLIST a xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink" xlink:type CDATA #FIXED "simple" xlink:href CDATA #REQUIRED > <!-- добавим тег script для вставки его в любое место файла --> <!ATTLIST script xmlns CDATA #FIXED "http://www.w3.org/1999/xhtml" type CDATA #FIXED "text/javascript" > ]> <root> <a xlink:href="image.jpg">Image</a> <!-- Выводим html элемент strong --> <html:strong>test</html:strong> <!-- Подгрузим скрипт --> <script src="script.js" /> </root> Конечно, можно было бы поступить так: <?xml version="1.0" encoding="utf-8" xmlns="http://www.w3.org/1999/xhtml" ?> и дальше писать на чистом xhtml, но это уже не то. Уже нельзя будет создавать свои теги и атрибуты, т.к. всё содержимое находится в пространстве xhtml. Кстати, есть куча DOM-методов и свойств, которые в ишаке работают только для xml файлов. В спецификации есть инструменты для вставки в xml документ не-xml данных (звук, видео, картинки) , причём двумя способами: через DTD (сущности) и xLink, но ни один способ не работет в мозилле, в других не тестил. |
Скоро напишу шаблон xml документа, с помощью которого можно будет легко представлять данные в браузере. Уверен, что этот подход будет намного удобнее xhtml. Если кому интересна эта тема, отпишитесь тут, пожалуйста, чтобы я не засирал базы форума:)
Такой подход к представлению информации подходит и для статичных данных, но мне представляется, что для динамики (активного использования JS) будет намного лучше. Позже хочу сравнить оба варианта - xhtml vs xml. |
интересно же
когда поэксперементируешь, вообще было бы неплохо статью написать, и захабрить |
*Без всякого подвоха*
А за чем это все? В чем будут преимущества перед XML(XSL)->(x)html? В любом случае жду результатов и комментарии автора..... |
Цитата:
Цитата:
|
Цитата:
|
Уфф...
Мои эксперементы превратились в войну с Internet Explorer. На данном этапе уже можно праздновать победу (спасибо гуглу):yes: Вобщем, проблема в том, что реализация в IE сильно отличается от спецификации и других браузеров. Основной вывод такой, что необходим фреймворк а-ля jQuery-2, ибо первый не справится с такой задачей. Выявлены основные различия между реализациями IE и Gecko и найдены некоторые пути решения. Конечно, на этом я не буду останавливаться. Сейчас могу более подробно рассказать обо всём этом в блоге, если это кому интересно. Далее придётся писать фреймворк. |
Цитата:
Цитата:
|
Цитата:
Цитата:
После написания первого прототипа фреймворка (он у меня будет первым:)) всё пойдёт намного ровнее! |
Цитата:
|
Цитата:
Так же хочу попросить помощи у тех, кто когда-либо сталкивался с этим или кому интересно. Удалось нагуглить кучу интересного, но такой ситуации, видимо, нигде не разбиралось. Так что приходиться самому до всего доходить. |
Цитата:
|
Вобщем, основная проблема вот в чём:
при загрузке xml файла в IE (не важно локально или с сервера), сначала он парсится как xml-файл, но потом сам превращается в html (бред, да?!). Вобщем, из такого файла: <?xml version="1.0" encoding="utf-8" standalone="no" ?> <?xml-stylesheet href="style.css" type="text/css"?> <root>123</root> получается такой: <HTML XMLNS:XMV> <HEAD> <LINK rel=stylesheet type=text/css href="style.css"> </HEAD> <BODY> <root>123</root> </BODY> </HTML> Файл стилей пустой. У меня пара вопросов: откуда взялось пространства имен XMV и почему вообще так? При этом неважно, был ли установлен Content-Type или нет. Хотя на сайте microsoft пишут, что нужен тип text/xml, я пробовал и с application/xml. Это касается и DOM. IE воспринимает все узлы, как узлы html со всеми вытекающими, даже если выбранный узел относится к пространству имен xml (http://www.w3.org/XML/1998/namespace). Самая главная проблема в том, что узлы xml и html "не совместимы" друг с другом. Т.е. я не могу вставить полученный xml непосредственно в DOM. Я нашел способ как это можно сделать, но там свои траблы тоже... Вобщем, если кто знает, как заставить ишака понимать файл как xml - расскажите. |
Может кто знает о такой конструкции:
<xml:namespace ns="" prefix=""/> Что тут к чему? |
похоже на microsoft-вариант подключения пронстранства имен, причем в вебе он присутствует из-за копипаста из Word... думаю так
|
Цитата:
|
Цитата:
|
Octane, там как-то по-другому, например
<?xml:namespace prefix = "o" ns = "urn:schemas-microsoft-com:office:office" /> вообще какая-то бредовая штука. С одной стороны вроде processing instruction, но заканчивается на /> |
Цитата:
Цитата:
Ещё есть такая конструкция: document.namespaces.add('vml', 'urn:schemas-microsoft-com:vml'); и работает она только в ИЕ. Мне бы найти их идентификаторы пространств имен... x-yuri, в моих мануалах <?xml:namespace /> указывается без вопросительного знака. |
Только что нашел:
urn:schemas-microsoft-com:xml-data Нужно попробовать с этим. |
это что-то не то, вот referecnce по этому namespace. Там же другие namespace'ы
|
Цитата:
Цитата:
Либо придётся мне остановиться на обходном пути: нода html -> строка -> нода xml. |
Ещё есть такой момент:
innerHTML и outerHTML возвращают код ноды, но если есть аттрибут id - кавычки для его значения отсутствуют. С другими атрибутами всё ок. С чем это может быть связано?! |
использовать чистый xml слишком не практично.
самым оптимальным мне видится такой вариант: http://smileg.akmedia.ru/?article:kill.html либо в сорцах можно глянуть вариант с xslt |
Цитата:
|
всем. как ты собираешься делать ссылки, формы ввода, анимацию, вставлять картинки и видео?
|
Цитата:
xmlns:html="http://www.w3.org/1999/xhtml" SVG: xmlns:svg="http://www.w3.org/2000/svg" Я хочу переложить весь геморой на фреймворк. Сказал: "Хочу картинку" - пожалуйста. |
замечательно, только вот ни html, ни svg ничего общего с исходными данными не имеют.
|
Цитата:
Я ещё не делал никаких выводов, а когда сделаю, там и посмотрим, что окажется практичнее, ок? |
а, ну набивай шишки, я подожду х))
|
Цитата:
Цитата:
|
я же давал ссылку на статью..
|
Цитата:
Кста, в ишаке есть innerHTML/outerHTML для данных xml, а в других браузерах это и не нужно. Какие-либо комментарии откладываются до первого прототипа фреймворка. Тогда я расскажу более глобально про свою задумку:) |
Часовой пояс GMT +3, время: 22:13. |