🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.xml
Article #67

Re: Ramki

#67
From: Grzegorz Balnis
Date: Sat, 09 Sep 2000 12:24
84 lines
5385 bytes
To moj pierwszy kontakt z pl.comp.xml, wiec witam wszystkich listowiczów.

A propos problemu z XSL: sadze, ze XSL (albo precyzyjniej: XSLT) moze okazac
sie srednio uzyteczny, gdy chcemy zeby to browser dokonywal przetwarzania
XSLT. Stad problemy, o ktorych piszecie. Natomiast uzyty wewnatrz aplikacji
Webowej, po stronie serwera, moze zdzialac cuda.
Oczywiscie, jesli to serwer wykonuje przetwarzanie XSLT, nie ma przeszkod,
by dynamicznie okreslic XSLT, ktory ma byc uzyty do transformacji. Malo
tego, poniewaz dokument XSLT jest rowniez dokumentem XML (ma drzewo DOM),
moze zostac latwo zmodyfikowany przed zastosowaniem (sposob na
parametryzacje). Procesor XSLT i tak zwykle "otrzymuje" dokument XSLT jako
serie zdarzen SAX albo drzewo DOM z parsera XML a nie jako dokument
tekstowy.
Jest tez bardziej elegancki sposob, ktory widzialem w dzialaniu: arkusz
XSLT, ktory jest uzywany do transformacji naszego XMLa z danymi jest
tworzony dynamicznie przez inna transformacje XSLT (w rzeczywistosci to ciag
kolejnych transformacji). W tym przypadku KOMPLETNA logika aplikacji jest
zapisana w XSLT! To na prawde dziala (OK, troche wolno).

To tyle tytulem "obrony" XSLT. Problem Karola wymaga dynamicznego okreslania
transformacji XSLT i wtedy oczywiscie dokument XML z danymi moze (i
powinien) byc jeden. W zaleznosci od stopnia zlozonosci na serwerze moze byc
jeden XSLT, trzy, albo wcale (!). Ale raczej bedzie to trudne uzywajac
mechanizmow MSIE (zwlaszcza, ze jego procesor XSLT jest, delikatnie mowiac,
taki sobie :-), ale...

...widzialem kiedys cos podobnego, wiec jesli koniecznie chesz... W MSIE
jest mozliwosc (nie znam szczegolow) dobrania sie do drzewa DOM arkusza XSL,
ktory jest uzywany do transformacji wyswietlanego aktualnie XMLa, z
mozliwoscia modyfikacji wezlow (specjalnie nie pisze XSLT, bo MSIE nie widzi
roznicy). Nie wiem, czy da sie to zrobic z JavaScripta. Zalozmy, ze tak -
inaczej mialo by ograniczony sens. Zatem ladujesz dokument XML z podlaczonym
na sztywno (zawsze tym samym) arkuszem XSL, ktory transformuje XML do HTML
wrzucajac do niego potrzebny kod JavaScript. Kod ten modyfikuje drzewo DOM
uzywanego XSL, tworzac (w pamieci rzecz jasna) wlasciwie nowy arkusz XSL -
usuwa wiekszosc wezlow (w szczegolnosci ten, ktory oryginalnie wstawial kod
JavaScript) i wstawia takie, jakie uwaza za potrzebne (dynamicznie! - inne
dla jednej ramki, inne dla drugiej itd.). Ta modyfikacja powoduje z kolei
zmiane HTMLa, ktory jest wyswietlany. Cool ;-) Ale uwaga, pokazywal to koles
z Microsofta ze Stanow, wiec nie mam pewnosci, czy ten mechanizm da sie
zastosowac w praktyce (bardzo watpie) Ale robilo wrazenie. :-)

Jesli uda Ci sie to zrobic, koniecznie sie pochwal.

Przetwarzanie po stronie przegladarki ma jeszcze jedna wade (zwlaszcza w
przykladzie Marcina z ksiazka). Kazda transformacja XSL wymaga zaladowania
do browsera calego dokumentu XML, ktory ma byc przetworzony. Troche bez
sensu ladowac cala ksiazke, gdy chcesz tylko pokazac spis tresci...

Pozdrowienia

Grzegorz Balnis

Marcin Jagodzinski napisał(a) w wiadomości: ...
>On Fri, 1 Sep 2000 09:48:32 +0200, "Karol" <karsc@yoyo.pl> wrote:
>
>>Mam dokument XML plus XSL i DTD. XSL jest tak stworzony, ze zawiera dwie
>>ramki  (HTML). Do kazdej ramki w HTML trzeba ladować osobny dokument zatem
>>musialem utworzyc trzy rozne pliki XSL ale czy musze w zwiazku z tym
tworzyc
>>trzy pliki XML z takimi samymi danymi czy moge skorzystac z jednego
głownego
>>pliku XML i dynamicznie ladowac odwołania do poszczegolnych plikow XSL.
>>Jesli tak to w jaki sposob?
>>
>No i tu masz problem :-)
>
>Wszyscy się zachwycaj? tym jak to XSL pozwala na podział na wygl?d i tre?ć,
>tymczasem moim zdaniem jest tu spore nieporozumienie. Skoro w XML-u na
>sztywno podajesz, jakim arkuszem zamierzasz go przetworzyć, to niby gdzie
>jest ten podział? Chyba, że chodzi o podział na dwa dokumenty, ale to nie
>jest jeszcze to.
>
>Wracaj?c do Twojego pytania: zależy czego używasz, jako engine do XSLa.
>Musisz się zorientować, czy da się przekazać nazwę arkusza jako parametr. I
>tyle.
>
>Jeszcze lepsza jest zabawa jak masz np. jeden długi XML (powiedzmy ksi?żkę
>podzielon? na rozdziały) i chcesz pokazywać po 1 rozdziale na raz. Czyli
>masz 1 XML, 1 XSL -- ale z użyciem parametrów w tym drugim. Ciekawe... jak
>do takiego procesora XSLT jaki jest w MSIE przekazać parametr...
>
>Marcin Jagodzinski
>(or compatible)
Technical Details
Message-ID: <8pda70$rfg$1@news.ipartners.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!warszawa.rmf.pl!news.rmf.pl!news.onet.pl!newsfeed.silweb.pl!news.us.edu.pl!news.nask.pl!news.ipartners.pl!not-for-mail
References: <8onme0$cma$1@sunflower.man.poznan.pl> <n3p2rss3qbeh14ehl91g73ttuhn0luik9c@4ax.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!warszawa.rmf.pl!news.rmf.pl!news.onet.pl!newsfeed.silweb.pl!news.us.edu.pl!news.nask.pl!news.ipartners.pl!not-for-mail
From: "Grzegorz Balnis" <gbalnis@abc.com.pl>
Newsgroups: pl.comp.xml
Subject: Re: Ramki
Date: Sat, 9 Sep 2000 14:24:52 +0200
Organization: Internet Partners
Lines: 86
Message-ID: <8pda70$rfg$1@news.ipartners.pl>
References: <8onme0$cma$1@sunflower.man.poznan.pl> <n3p2rss3qbeh14ehl91g73ttuhn0luik9c@4ax.com>
NNTP-Posting-Host: 157.25.192.162
X-Trace: news.ipartners.pl 968502304 28144 157.25.192.162 (9 Sep 2000 12:25:04 GMT)
X-Complaints-To: abuse@ipartners.pl
NNTP-Posting-Date: 9 Sep 2000 12:25:04 GMT
X-Newsreader: Microsoft Outlook Express 4.71.1712.3
X-MimeOLE: Produced By Microsoft MimeOLE V4.71.1712.3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit