LINUX.ORG.RU

Сайты на XML/XSLT


0

1

Если кто находил, скиньте на сие чудо ссылку поофигевать. Интересует сайт, страницы которого - читаемый и пригодный для автоматической обработки XML, а если открыть в браузере, то получается обычная Web-страница с всякими JavaScript/CSS.

Причина почему смотрю в эту сторону, так как в моей програме есть web - браузер файлов, который бы хотелось сделать доступным для автоматических приложений. Пока что есть Web-UI, но если передать параметр type=json или type=xml, то получаем ответ не в форме text/html, а в соответствующей.

Тяга к интерестным решениям (и боли в заднице) вызывает желание исследовать, можно ли попытаться включить xsl. Может быть элегантное решение.

★★★★★

Интерестны не учебники, а реальные больше сайты, доступные по URL

vertexua ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Сайт не большой, но всё-таки :}

Deleted
()

Они не нужны.

При малейших сбоях в передаче текстового контента, XML теряет валидность и не отображается в браузерах вообще.

iZEN ★★★★★
()
Ответ на: комментарий от anonymous

Учитывая, что флеша там нет вовсе, это что-то у тебя. Значок незагруженной картинки в правом верхнем углу это SVG в img с простой декларативной анимацией, по крайней мере он там должен был бы быть (мерцающий зелёный прямоугольник).

Deleted
()
Ответ на: комментарий от vertexua

Installed versions: 12.0.742.77(03:27:10 04.06.2011)(cups gnome -gnome-keyring -kerberos -test -xinerama)

anonymous
()
Ответ на: комментарий от Deleted

Подозреваю плагин в духе флешблока или ещё чего-либо, который впихнул что-то не думая.

Deleted
()
Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от LongLiveUbuntu

Я тоже так подумал. Помню там был handbook.xml. Но потом посмотрел сорцы, там обычный html. Возможно там преобразование на сервер-сайде, но это не то что мне надо

vertexua ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Сижу, блин теперь диплом не могу писать. Переделывать нет времени, надо писать дохера текста и я уже наворотил сервер-сайд генерацию. Но ощущаю боль неэффективного решения, так как в моем случае (полное дублирование функциональности в web-ui и web-service) решение на базе client-side xslt идеально вписывается

vertexua ★★★★★
() автор топика
Ответ на: комментарий от vertexua

И сразу так красиво получается, на сервере только JAXP и Jackson, никаких Velocity и шаблонов. Должно быть еще легковеснее

vertexua ★★★★★
() автор топика
Ответ на: комментарий от anonymous

MVC - херня по сравнению с многозвенкой.

dizza ★★★★★
()

Переделал, генерирует вообщем-то то же самое, но немного сдвинулиь некоторые вещи. Возможно другие страницы, которые остались не на xslt являются обычным HTML, потому интерпретируются по другому

vertexua ★★★★★
() автор топика

А так я юзаю постоянно XSL трансформации на стороне сервера в довольно крупных веб-проектах по работе.

random_user_123816235182
()
Ответ на: комментарий от random_user_123816235182

Для совмещения web-ui и REST web-сервиса. ТруЪ же. Это не для публичного доступа, это простой UI к более сложному распределенному приложению

vertexua ★★★★★
() автор топика
Ответ на: комментарий от random_user_123816235182

А в чём проблема? Индексируют :) + sitemap.

Deleted
()

Переделал, работает хорошо. Вот только для чистоты XML документа я оттуда выпилил информацию, которая является вторичной и ненужной для автоматического клиента, но необходимой для Web-UI. Я их беру через select=«document(...)/...». Это хорошая практика?

vertexua ★★★★★
() автор топика
Ответ на: комментарий от vertexua

Ну, я через document() сайдбар («новости») подгружаю, например. Правда там ещё вставлена проверка на поддержку этой функции.

Deleted
()
Ответ на: комментарий от Deleted

Лучше рассчитывать что эта функция есть. Начал придерживаться принципа, что пользователи плохих браузеров не нужны. Ведь выбирая какой-нибудь lynx они знают что Web больше не для них. И таких меньше 1%. Единственных кого много, это юзеров IE6, интерестно, там поддерживается.

Дело в том, что тогда код превращается в нечто подобное

<xsl:if test="!function-available('document')">
Забиться в угол, плакать и звать маму. 
</xsl:if>

Как вариант можно наворотить Ajax с XSLT преобразованием в JavaScript или Ajax с серверным XSLT преобразованием. Второй вариант вообще убивает весь принцип

vertexua ★★★★★
() автор топика
Ответ на: комментарий от vertexua

Как вариант можно наворотить Ajax с XSLT преобразованием в JavaScript или Ajax с серверным XSLT преобразованием. Второй вариант вообще убивает весь принцип

Ах да, я же забыл, браузер - плохой. Тогда да, плакать, звать маму, забить на XSLT.

vertexua ★★★★★
() автор топика
Ответ на: комментарий от vertexua

У тебя этих кусков миллион что ли? Если функции нет, то ничего и не делать, зачем там что-то выводить? Ну, подумаешь, сайдбар пропал, всё равно fallback текст его не вернёт :) А так хоть XSLT процессор в ступор не упадёт. Впрочем, это надо смотреть в каких браузерах нет этой функции, что мне, в общем-то, лень (^ ^)

Deleted
()
Ответ на: комментарий от Deleted

Пример. Есть UI для работы с таблицами БД. Слева список таблиц. В сообщении результатов запроса в виде XML он не нужен. Но при построении UI нужно слева, как в MS Access, OOo Base чтобы были таблицы с иконками.

vertexua ★★★★★
() автор топика
Ответ на: комментарий от dizza

А на my.opera.com от него отказались :}

Deleted
()
Ответ на: комментарий от Deleted

В развитие темы, вот пробовал провести двойное преобразование.

Тоесть одно преобразование для превращения из xml в xml с элементами menu, content, тоесть данные уже засунуты в плейсхолдеры. Это преобразование специфично для страницы, пример вывода первой фазы

<page>
<title>MyPage</title>
<content><h1> hello world </h1> Hey! </content>
</page>

А на второй фазе создать XHTML UI, засунув content и title в нужные места. Тоесть фича тайлинга, как в Tiles, Faceletes и т.д. Это преобразование общее для всего приложения.

Пока что-то пробовал, два раза не выходит

vertexua ★★★★★
() автор топика
Ответ на: комментарий от vertexua

По-моему браузеры только 1 раз делают. Только не пойму, зачем тебе это надо? Если XHTML настоящий, кстати, он прекрасно парсится XML тулзами.

Deleted
()
Ответ на: комментарий от vertexua

A -> B -> C

Если ты B получаешь из A, то эти данные уже содержатся в A — не имеет смысла.

Если B не содержится в A, то почему оно не может подгружаться сразу в C?

Overdesign какой-то.

Если тебе нужны разные данные, может тебе их и выдавать разными? По расширению, например.

Deleted
()
Ответ на: комментарий от Deleted

Первое преобразование - специфичное для страницы.

Второе преобразование - общий шаблон UI для всего сайта

vertexua ★★★★★
() автор топика
Ответ на: комментарий от vertexua

Совсем совсем специфичное? Нигде не повторяется? А может не надо?

Приведи пример, может можно как-то обойтись :)

Deleted
()
Ответ на: комментарий от vertexua

Я обычно клиентской частью только занимаюсь, потому…

Deleted
()
Ответ на: комментарий от vertexua

Вот Facelets

http://download.oracle.com/javaee/6/tutorial/doc/giqxp.html

Оно берет шаблон, в нем есть в нужных местах <ui:insert> - это плейсхолдеры. А второй документ юзает шаблон и задает что в них лежит. Моя идея чтобы этот второй док тоже создавать из xml

vertexua ★★★★★
() автор топика
Ответ на: комментарий от vertexua

Так ты же можешь так же как и раньше хотел через document() (или непосредственно, если статика) сразу в C это подгрузить. Или это ты хотел без него так обойтись?

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.