Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   Вполнение Javascript в XML (https://javascript.ru/forum/xhtml-html-css/6768-vpolnenie-javascript-v-xml.html)

B~Vladi 21.12.2009 01:42

Вполнение Javascript в XML
 
Как заставить xml-файл понимать javascript-код? DTD не помогают, пространства имён вроде вообще не из этой области... Даже не знаю, в какую сторону копать:(

x-yuri 21.12.2009 15:11

тебе не понравиться мой ответ (;
а что у тебя там такого скриптового передается?

B~Vladi 21.12.2009 18:19

Цитата:

Сообщение от x-yuri
тебе не понравиться мой ответ

Да нет, это я неправильно поставил вопрос забыв, что xml это всего лишь данные.
Цитата:

Сообщение от x-yuri
а что у тебя там такого скриптового передается?

Есть бредовая идея написать сайт на xml. Но туда как-то нужно вставлять картинки, скрипты и т.п.. Повозившись, удалось реализовать это через пространства имён http://www.w3.org/1999/xhtml и dtd. Единственное, что смог сделать без xhtml - это создать ссылку средствами xLink у которой больше возможностей. По-сути это тот же xhtml получается, но есть пару хороших плюсов:
Можно применять xslt для части дерева, например, сортировки (скорость по более будет, нежели только средствами JS) и xPath (хотя я подозреваю, что это можно и в xhtml). Да и вообще намного удобнее с ним работать:)

x-yuri 21.12.2009 18:50

Цитата:

Сообщение от B~Vladi
Есть бредовая идея написать сайт на xml

(шутя) кто-то же должен экспериментировать

B~Vladi 21.12.2009 18:55

Цитата:

Сообщение от x-yuri
кто-то же должен экспериментировать

:)
Лично мне она нравится.

x-yuri 21.12.2009 18:58

ну пусть нравится, но на данный момент сайты не пишуться на xml. Или я не зна? Если не пишутся, значит это пока из области экспериментов

Gvozd 21.12.2009 19:46

а как вы преобразуете XML в читаемый вид?
XSLT же?
разве если задать правило преобразования блоков с кодом в <script type="text/javascript"></script> не сработает?
извиняюсь, если сказал глупость, не сильно владею темой

B~Vladi 21.12.2009 21:31

Цитата:

Сообщение от Gvozd
а как вы преобразуете XML в читаемый вид?

Эм... Это же текст... он и так читаемый... или ты имел ввиду визуальное оформление - так css легко к нему подключается:
<?xml-stylesheet type="text/css" href="" ?>

Цитата:

Сообщение от Gvozd
XSLT же?

XSLT поможет в других вещах, например та же сортировка. Преобразовывать в xhtml совсем не обязательно.
Цитата:

Сообщение от Gvozd
разве если задать правило преобразования блоков с кодом в <script type="text/javascript"></script> не сработает?

Если речь про XSLT и преобразование в xhtml, то конечно сработает, но, опять же, я хочу работать с XML-документом, а не XHTML.

Вот небольшой, но вполне рабочий вариант:
<?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, но ни один способ не работет в мозилле, в других не тестил.

B~Vladi 22.12.2009 01:36

Скоро напишу шаблон xml документа, с помощью которого можно будет легко представлять данные в браузере. Уверен, что этот подход будет намного удобнее xhtml. Если кому интересна эта тема, отпишитесь тут, пожалуйста, чтобы я не засирал базы форума:)

Такой подход к представлению информации подходит и для статичных данных, но мне представляется, что для динамики (активного использования JS) будет намного лучше. Позже хочу сравнить оба варианта - xhtml vs xml.

Gvozd 22.12.2009 02:18

интересно же
когда поэксперементируешь, вообще было бы неплохо статью написать, и захабрить


Часовой пояс GMT +3, время: 05:17.