Komentáře k článku

Generujeme jednoduchý web pomocí XML

Staticky generované weby byly poměrně dlouho v ústraní. Jako by se zdálo, že redakční systém je univerzální řešení, vhodné i pro ty nejmenší prezentace. Poslední dobou se ale začínají statické weby opět prosazovat – jednak díky cloudovým úložištím, které lze použít místo serveru, jednak i kvůli schopnostem HTML.

Zpět na článek

73 komentářů k článku Generujeme jednoduchý web pomocí XML:

  1. ja.

    Re: Generujeme jednoduchý web pomocí XML

    chcel by som varovat pred pouzitim na velkych dynamickych weboch. Mal som uz 2x tu cest a musim povedat, ze xslt posobi ako absolutna obfuskacia. Co by ste v PHP napisali za pol minuty, v xsl to trva o dost dlhsie. Co by ste v php mali na 9 znakov, v xsl to je na 4 riadky a viac. Nemoznost programovat objektovo to cele uz len zaklincuje.

    1. fos4

      Re: Generujeme jednoduchý web pomocí XML

      Na co se více hodí PHP použij PHP, na co více XSLT použij XSLT.

      Na velke weby se práve XSLT nejvíce hodí, jedna část týmu se věnuje programování kde výstupem je XML a to už si převezmou kodeři a jen píší XSLT + CSS + JS.

      Mimo jiné ještě existuje XSLT2 (http://www.w3.org/TR/xslt20/), případně pro PHP exslt (http://www.exslt.org/)

    2. Petr Šmíd

      Re: Generujeme jednoduchý web pomocí XML

      V zásadě souhlasím. Problémem je to, že se to obtížně debuguje.

  2. Yet Another Anonymous Coward

    Alternativy

    Pro ty, co nemají v lásce XML existuje spousta alternativ: Hakyll, yst, nanoc, jekyll

    Osobně bych doporučil Hakyll — podporuje hodně vstupních formátů a má pěknou konfiguraci v Haskellu :)

    1. Martin Malý

      Re: Alternativy

      Díky za tipy, Jekyll mám v „námětech na články“, tak si tam i ty další tipy přidám.

  3. Martin Soušek

    článek o XSLT v 21. století?

    Moc nechápu, proč ještě v 21. století musíme být ohlupování články o XSLT. Domníval jsem se, že i ti nejzatvrzelejší propagátoři XML uznali, že to je obluda a naprosto slepá ulička.

    Asi jsem se mýlil.

    Tak tedy znovu: XSLT je nesmysl a pokud chci řešit problém „vygenerovat statický web“, tak na to existuje milion jiných a vhodnějších nástrojů.

    1. Inkvizitor

      Re: článek o XSLT v 21. století?

      Ale no tak. XSLT je dobrý nástroj třeba v situacích, kdy je třeba generovat několik různých výstupních formátů pro jeden dokument – třeba plain a html part nějakého automaticky generovaného mailu – tam má koneckonců podobná transformace nezastupitelnou roli vzhledem k tomu, jak jsou MUA nejednotné a pitomé při zobrazování rich textu.

      Když někdo zmiňuje milion „jiných a vhodnějších“ nástrojů, očekával bych, že přihodí nějaký odkaz na stránku se srovnáním některých těch „jiných a lepších“ s kritizovanou technologií.

    2. MarSik

      Re: článek o XSLT v 21. století?

      Ač ručně psané XML nemám rád, tak na strukturovaný přenos _generovaných_dat_ to tak špatné není. A deklarativní způsob programování je mi také docela blízký, takže bych deklarativní pattern matching transformační jazyk rozhodně za slepou uličku nepovažoval..

      Ale zajímalo by mě jaký je tedy jiný, jednodušší a vhodnější nástroj na _obecnou_tran­sformaci_ strukturovaných dat? (Protože třeba převod z docbooku do html|LaTeXu|.. je docela příjemný proces).

      1. Ladislav Thon

        Re: článek o XSLT v 21. století?

        > Ale zajímalo by mě jaký je tedy jiný, jednodušší a vhodnější nástroj na _obecnou_tran­sformaci_ strukturovaných dat?

        Programovací jazyk. XSLT ostatně není nic jiného, jen je to z programovacích jazyků jeden z těch (nej)příšernějších.

        1. Jiří Kosek

          Re: článek o XSLT v 21. století?

          A tenhle podle vás nejpříšernější programovací jazyk má v sobě zabudovaný velice mocný dotazovací jazyk nad datovým modelem, se kterým pracuje. To je pro složitější transformace naprosto klíčová věc. Jazyků, které tohle mají moc není a v těch co to mají (včetně XSLT) napíšete transformace mnohem úspornějším způsobem — to vám asi přijde příšerné, že?

          1. Ladislav Thon

            Re: článek o XSLT v 21. století?

            Stoprocentně. XPath lze stejně snadno a občas snáz používat v rozumných vysokoúrovňových knihovnách pro práci s XML. Namísto XSLT bych si kdykoliv vybral kombinaci XmlSlurper + GPath + MarkupBuilder dostupnou v Groovy. Rubysti by pravděpodobně řekli totéž o Nokogiri/hpricotu.

            Mimochodem, pro navigaci jsou často mnohem příjemnější CSSkové selektory.

        2. Inkvizitor

          Re: článek o XSLT v 21. století?

          XSLT je DSL šitý na míru určitému typu problémů. Srovnávat jej s jakýmkoliv GPL nedává moc smysl. XSLT samozřejmě nikdo nebude používat namísto běžného jazyka, ale na druhou stranu nelze říci, že alternativou k němu je třeba C++ nebo Java, rozhodně ne bez nějaké srovnatelně mocné knihovny. To by bylo jako srovnávat pilník se soustruhem, nebo ne?

    3. alancox

      Re: článek o XSLT v 21. století?

      S tím naprostou souhlasím.

      Ale každý, kdo ukáže, že dělá v XML a používá XSLT je prostě světový.

      Článek samotný je kvalitní, takže má kritika se netýká článku.

      Ale generovat statický web pomocí XSLT mě osobně také přijde jako dost úchylnost. Nicméně stejně jako se teoreticky dá programovat v COBOLu, dá se udělat i XSLT statický web.

      Ale XML + XSLT je skutečně už často více náboženství, než odůvodněné použití.

      Nadužívání XML a jeho nástrojů je nemoc této doby. A pro tento účel, který popisuje článek je to zhůvěřilost.

    4. Jiří Kosek

      Re: článek o XSLT v 21. století?

      Aby vás někdo bral vážně, asi by bylo dobré zmínit alespoň pár z těch milionu vhodnějších nástrojů.

      A vzhledem k tomu, že se pracuje na XSLT 3.0 bych to na slepou uličku neviděl.

      1. keff

        Re: článek o XSLT v 21. století?

        Nic proti XSLT, to je na spoustu problémů nejlepším řešením, ale argument, že když se na něčem pracuje, tak nejde o slepou uličku, mi moc validní nepřijde :).

        1. Mike

          Re: článek o XSLT v 21. století?

          Ale o tomhle dotaz nahoře není – abych se přiznal, také by mě zajímaly nějaké příklady – nemusí jich být milión, ale alespoň něco…

          1. Papouch

            Re: článek o XSLT v 21. století?

            Napriklad pro „vygenerovani“ jednoducheho statickeho webu v rozsahu desitek az stovek stranek je porad nejlepsi existujici nastroj Microsoft Frontpage respektive dneska se Expression Web.

            Predstava, ze by se systemen popsanym v clanku mel dlouhodobe udrzovat nejaky projekt bez zapojeni programatora je nerealna, zatimco s FP to zvladne (vcetne pripadneho mirneho rozsirovani) i absolvent/ka pajdy po par hodinach zacviku.

            FP pravda neni opensource ani zadarmo, na druhou stranu funguje. A cas straveny editovanim enigmatickych XML/XSLT souboru musi nekdo zaplatit.

            1. AnonymníMyš

              Redakčně smazáno

              10. 5. 2011 9:30 smazal Martin Malý, důvod: Pokud nesouhlasíte, dejte to najevo bez vulgarit. Děkujeme.
              1. AnonymníMyš

                Re: Redakčně smazáno

                Ach, jo, cenzura…

                důležitý byl ale význam příspěvku a za tím si stojím:

                „zatimco s FP to zvladne … i absolvent/ka pajdy po par hodinach zacviku.“

                Ano, weby může dělat každý, ale z takovéhoto softwaru lezou lezou exkrementy, na které ostatní narážejí na webu. Touhle etapou jsme si už snad prošli, ne? Jistým pokrokem byl nástup redakčních systémů, které kontrolují vstup a/nebo formátují text na základě nějaké syntaxe typu BB nebo wiki.

            2. VfB

              Re: článek o XSLT v 21. století?

              od prvního dubna uplynul více jak měsíc!

              Front Page je jen o něco lepší Word (myšleny stránky vygenerované v MSO)

            3. j

              Re: článek o XSLT v 21. století?

              Ehm, a da se vystup z toho uzasnyho nastroje taky nekde zobrazit? Co jsem mel tu cest, tak to nefunguje ani v IE.

              1. VfB

                Re: článek o XSLT v 21. století?

                tak to nevím, co jste v tom Front Page napáchal ale pokud si pamatuji, tak nějaký výstup jde ve Front Page vytvořit, dokonce se takové stránky zobrazí ale kód je prasárna

      2. xx

        Re: článek o XSLT v 21. století?

        Také se dříve pracovalo na XHTML 2 a slepá ulička to byla (alespoň já to tak vnímám).

        K těm jiným nástrojům: Proč nepoužít přímo programovací jazyk, v němž píšu celou aplikaci? Například lispovské jazyky tu byly dříve než SGML a vcelku dobře se v nich pracuje se stromovými strukturami. Nebo v jazycích pro .NET Framework lze použít XLINQ, Visual Basic má určitou podporu XML přímo zabudovánu. Funkcionální jazyky pak mají algebraické datové typy a existují knihovny, které umožní provádět určité dotazování (např. syb a uniplate pro Haskell).

        1. Jiří Kosek

          Re: článek o XSLT v 21. století?

          XHTML2 narozdíl od XSLT 3.0 nemělo žádné implementace — a to je také to na čem zkrachovalo.

          Proč nepoužít přímo programovací jazyk, v němž píšu celou aplikaci?

          Například proto, že na výstupu transformace typicky generujete HTML nebo XML a ve všech jazycích kromě XSLT a XQuery se musí generované fragmenty HTML/XML escapovat nebo generovat pomocí příkazů typu print, nebo různých markup builderů — nejde použít nejoblíbenější návrhový vzor mnoha vývojářů (prosté copy’n’paste).

          U složitějších transformací vám pak bude chybět mocný dotazovací jazyk a mechanismus automatického průchodu stromem dokumentu a výběru nejvhodnější šablony pro zpracování.

          Například lispovské jazyky tu byly dříve než SGML a vcelku dobře se v nich pracuje se stromovými strukturami.

          Historie ukázala, že tudy cesta nevede. Předchůdcem XSL byl jazyk DSSSL, což je Scheme s pár věcmi navíc, a i když z čistě teoretického hlediska bylo DSSSL dokonalejší než XSLT (minimálně XSLT 1.0), DSSSL se používalo a používá minimálně.

          1. xx

            Re: článek o XSLT v 21. století?

            ve všech jazycích kromě XSLT a XQuery se musí generované fragmenty HTML/XML escapovat nebo generovat pomocí příkazů typu print, nebo různých markup builderů

            Například Visual Basic to podporuje a Scala také:
            http://msdn.microsoft.com/en-us/library/ms364068%28v=vs.80%29.aspx#vb9overview_topic6
            http://www.scala-lang.org/node/131

            A v Haskellu je možné něco podobného realizovat pomocí Template Haskellu. Programátoři v OCamlu pak použijí camlp4.


            U složitějších transformací vám pak bude chybět mocný dotazovací jazyk a mechanismus automatického průchodu stromem dokumentu a výběru nejvhodnější šablony pro zpracování.

            Tohle lze vyřešit v rámci knihovny.

            1. fos4

              Re: článek o XSLT v 21. století?

              A misto databazich budeme pouzivat knihovni psane v jazyce v jakem je psana aplikace. Protoze tam je „neco podobneho taky mozne“.

              Transformace XML -> ? je XSLT velmi jednoducha oproti jinym jazykum, nebot XSLT obsahuje XPath a dalsi funkce ktere by se v jinym jazycich museli nejak simulovat, zkuste si to…

              1. xx

                Re: článek o XSLT v 21. století?

                A misto databazich budeme pouzivat knihovni psane v jazyce v jakem je psana aplikace. Protoze tam je „neco podobneho taky mozne“.

                Takhle bych to neřekl. Řekl bych: místo SQL budeme používat dotazy psané v jazycích, v nichž píšeme aplikaci — což už se dnes běžně děje.


                Transformace XML -> ? je XSLT velmi jednoducha oproti jinym jazykum, nebot XSLT obsahuje XPath a dalsi funkce ktere by se v jinym jazycich museli nejak simulovat, zkuste si to…

                Podívejte se třeba na http://msdn.microsoft.com/en-us/library/bb675178.aspx
                XPath můžete normálně používat.

                1. František KučeraAutor příspěvku

                  Re: článek o XSLT v 21. století?

                  Můžeš mi prosím napsat nějaký příklad dotazu v SQL a v „jazyce, ve kterém píšeme aplikaci“? Takové ORM často umožňují používat kromě dotazovacího jazyka (jako JPQL) i zápis pomocí objektově orientovaného jazyka (ve kterém je zbytek programu), takže člověk pak místo psaní dotazu volá několik metod, ale přehlednější nebo přívětivější mi to moc nepřijde (s výjimkou dynamicky tvořených dotazů). To je dané tím, že ten programovací jazyk je univerzální, kdežto dotazovaný jazyk je šitý na míru danému úkolu (dotazování, výběr dat).

                    1. František KučeraAutor příspěvku

                      Re: článek o XSLT v 21. století?

                      Dík, tohle mi stačí:

                      where c.DateOfBirth.AddYears(35) > DateTime.Now
                        1. František KučeraAutor příspěvku

                          Re: článek o XSLT v 21. století?

                          Co takhle odečíst 35 od aktuálního data (jednou) místo přičítání ke každému záznamu/objektu ;-)

                    1. František KučeraAutor příspěvku

                      Re: článek o XSLT v 21. století?

                      Já vím, že to jde :-) Ale šlo mi o tu přehlednost, srozumitelnost – a tady podle mého pořád vede deklarativní programování nad imperativním.

            2. Jiří Kosek

              Re: článek o XSLT v 21. století?

              Například Visual Basic to podporuje a Scala také:

              Nechce se mi studovat gramatiku VB.NETu a Scaly, tak se zeptám — lze uvnitř XML literálu používat veškeré další jazykové konstrukce — zejména podmínky a cykly, které opět mohou generovat XML literál?

              Tohle lze vyřešit v rámci knihovny.

              No chtěl bych vidět knihovnu, která s rozumně použitelnou syntaxí nabídne funkce obdobné xsl:template včetně režimů, priorit a věcí jako xsl:apply-imports nebo xsl:next-match.

              1. xx

                Re: článek o XSLT v 21. století?

                …lze uvnitř XML literálu používat veškeré další jazykové konstrukce — zejména podmínky a cykly, které opět mohou generovat XML literál?

                Ano.

                No chtěl bych vidět knihovnu, která s rozumně použitelnou syntaxí nabídne funkce obdobné xsl:template

                Tohle není přímo odpověď na vaši otázku, ale Scala podporuje pattern matching pro XML:

                http://daily-scala.blogspot.com/2009/11/xml-matching.html

                A OCamlDuce také:

                http://www.cduce.org/ocaml_manual.html

                1. fos4

                  Re: článek o XSLT v 21. století?

                  Cele mne to prijde jako zbytecna debata, vy na rikate ano je to dobry ale proc to neudelat v necem jinem nebot to tam jde taky udelat.

                  XSLT je primo na tyto ucely vytvoreno a vyladeno a vsechny ficurky co vam dovoluje jen horko tezko zkousi dohanet ruzne knihovny v ruznych programovacich jazycich.

                  1. xx

                    Re: článek o XSLT v 21. století?

                    XSLT je primo na tyto ucely vytvoreno a vyladeno a vsechny ficurky co vam dovoluje jen horko tezko zkousi dohanet ruzne knihovny v ruznych programovacich jazycich.

                    Pár důvodů, proč použít programovací jazyk, v němž píšu aplikaci:

                    • jednoduché dotazy/transformace napíšu rychleji a bude to kratší než v XSLT
                    • transformace/dotazy mohu parametrizovat celými funkcemi, třídami nebo moduly
                    • k dispozici je řada knihoven, mohu se například připojit k databázi, použít složitější validační mechanismy (mj. jak se v XSLT validuje e-mail) nebo generovat data v jiném formátu (co když budu z XSLT generovat SQL dotazy, bude mi schopen XSLT procesor garantovat, že vygenerované dotazy jsou platné?)
                    • nemusím se učit další jazyk
                    • na určité typy zadání je XSLT a XQuery absolutně nevhodné
                    1. fos4

                      Re: článek o XSLT v 21. století?

                      • jednoduché dotazy/transformace napíšu rychleji a bude to kratší než v XSLT
                        – nebude, ve valné většine XSLT vyjde lépe
                      • transformace/do­tazy mohu parametrizovat celými funkcemi, třídami nebo moduly
                        – XSLT ma templates, promene, parametry atd.
                      • k dispozici je řada knihoven, mohu se například připojit k databázi, použít složitější validační mechanismy (mj. jak se v XSLT validuje e-mail) nebo generovat data v jiném formátu (co když budu z XSLT generovat SQL dotazy, bude mi schopen XSLT procesor garantovat, že vygenerované dotazy jsou platné?)
                        – validace se da provadet na vstupnim XML – a tady je moznosti na validaci spousty, DTD, relaxNG…, mimo jine je tu i moznost volat fce daneho jazyka primo z XSLT ale to uz jina..
                      • nemusím se učit další jazyk
                        – to nemusis
                      • na určité typy zadání je XSLT a XQuery absolutně nevhodné
                        – stejně tak jako i jine jazyky
                      1. xx

                        Re: článek o XSLT v 21. století?

                        nebude, ve valné většine XSLT vyjde lépe

                        S tou syntaxí dost těžko.

                        XSLT ma templates, promene, parametry

                        To je stále hodně daleko od toho, co nabízí vyšší programovací jazyky.

                        stejně tak jako i jine jazyky

                        Měl jsem na mysli dotazování, což jsem zapomněl uvést.

                    2. Opravdový odborník :-)

                      Re: článek o XSLT v 21. století?

                      Ad „jak se v XSLT validuje e-mail“

                      Regulárním výrazem jako všude jinde. Případně si napsat vlastní rozšíření, pokud chce člověk dělat ptákoviny typu kontrola MX záznamů nebo dokonce naavzování SMTP spojení (blbost).

                    3. Opravdový odborník :-)

                      Re: článek o XSLT v 21. století?

                      Ad „co když budu z XSLT generovat SQL dotazy, bude mi schopen XSLT procesor garantovat, že vygenerované dotazy jsou platné?)“

                      Který jazyk (kromě procedurálního/SQL jazyka daného SŘBD) ti tohle zaručí? Možná tak nějaké ORM jako je JPA.

                      A co se týče SQL – některé lepší DB umí vrátit výsledek ve formě XML – tam je XSL transformace ideální, člověk nemusí řešit překlad dat na objekty a zase zpátky

                      Ad „nemusím se učit další jazyk“

                      Totéž lze říct o XSLT – kdo umí HTML, ten se naučí pár řídících konstrukcí a může začít psát první transformace — naučit se úplně jiný jazyk je většinou víc práce.

                      Ad „na určité typy zadání je XSLT a XQuery absolutně nevhodné“

                      To lze říct o každém nástroji

                      1. xx

                        Re: článek o XSLT v 21. století?

                        Který jazyk (kromě procedurálního/SQL jazyka daného SŘBD) ti tohle zaručí? Možná tak nějaké ORM jako je JPA.

                        To generování stačí zabalit do nějakého builderu, který nedovolí postavit neplatné dotazy.

                        To lze říct o každém nástroji

                        Měl jsem na mysli dotazování, zapomněl jsem to uvést. S XSLT a XQuery jste omezen na velmi úzkou množinu věcí, které tam lze rozumně udělat.

                        1. Opravdový odborník :-)

                          Re: článek o XSLT v 21. století?

                          Ad „To generování stačí zabalit do nějakého builderu, který nedovolí postavit neplatné dotazy.“

                          Abys měl jistotu, potřebuješ ovladač/knihovnu pro konkrétní SŘBD a stejně to nestačí — abys měl jistotu, že dotazy jsou OK, potřebuješ i konkrétní datový model, nad kterým se budou pouštět. Tohle žádný „builder“ nedokáže, protože nemá dostatek informací (a nedokonalý „builder“ jde napsat i v tom XSLT)

                          Ad „jste omezen na velmi úzkou množinu věcí, které tam lze rozumně udělat.“

                          Více méně ano, ale to (relativně) úzké zaměření je výhoda oproti univerzálním nástrojům. A v oblasti dotazování je XQuery hodně silný jazyk.

                          1. xx

                            Re: článek o XSLT v 21. století?

                            abys měl jistotu, že dotazy jsou OK, potřebuješ i konkrétní datový model, nad kterým se budou pouštět

                            Pochopitelně. Například PG’OCaml není builder, ale normálně se připojí v době kompilace k databázi a vše ověří staticky. To samé může dělat i ten builder.

                            Případně ten model může být k dispozici v podobě tříd, a pak už Vám LINQ může dát určité záruky v době kompilace.

                            Problém je, že v jazycích jako je XSLT se velmi těžko dělá nějaká abstrakce.

                            A v oblasti dotazování je XQuery hodně silný jazyk.

                            Dokud není třeba provádět složitější odvozování.

  4. Pavel

    Zajímavá ukázka

    použití „industrial grade“ technologií něčem „malém“.

    Osobně třeba Ant nemusím, ale jinak je tandem XML/XSLT dobrý tam kde jsou data přirozeně získávána z různých zdrojů a prezentována v různych souvislostech.

    Já takhle pár svých menších webů (tvorbou webů se jinak nezabývám) udržuji a naprosto mi to vyhovuje. Není třeba instalovat další frameworky, stačí xslt procesor, a v kombinaci s CSS a trochou javascriptu je to přesně co mi vyhovuje – umožňuje čisté oddělení dat od obsahu, a mix obecných patternů s lokálním ručním doladěním (x)html kódu.

    Díky za popularizační článek a té, pro mne ne moc pochopitelné zášti některých „webařů“ si nevšímejte!

    1. Pepa

      Re: Zajímavá ukázka

      No ona to není ani tak „zášť“ jako spíš podiv nad volbou technologie. Ten článek je hezkou ukázkou jak to funguje, ale zvolená technologie je asi trošku „na komára s minometem.“ Nehledě na to, že je celkem zbytečný něco takovýho psát sám.

      1. Jiří Kosek

        Re: Zajímavá ukázka

        Samozřejmě psát si na malý web o pár stránkách „vlastní redakční systém“ v XSLT je trošku přehnané. Na druhou stranu příklady pro článek nemůžou být nějaké extra složité, pokud má mít článek rozumný rozsah a někdo ho má číst.

        Pokud snad někteří z těch, co zde dříve projevili extrémní nechuť nad XSLT, mají přece jen hlavu otevřenou, možná se můžou zamyslet nad tím, jak by se v jejich oblíbených nástrojích dělaly úlohy typické pro XSLT, např.:

        Mám strukturovaný dokument v nějakém XML formátu (např. DocBook) a potřebuji z něj vygenerovat statický web včetně obsahu, odkazů, číslování objektů, rejstříku, …
        Něco jako http://www.kosek.cz/xml/xslt/

        Mám v XML nějakou komplexní datovou strukturu (např. kompletní informace o studijním systému nějaké školy) a potřebuji z toho udělat web, něco ve stylu http://studijniplany.amu.cz/

        Mám rozsáhlou kolekci článků v XML a potřebuji to dát na web, např. http://www.balisage.net/Proceedings/index.html

        Řekl bych, že znám poměrně mnoho nástrojů, ale pro takovéto úlohy mi XSLT přijde jako nejvhodnější nástroj.

        Nadruhou stranu chápu nechuť některých pro XSLT — v praxi jsem už viděl tolik špatných příkladů použití XSLT, kdy to psal nějaký člověk, co vůbec nepochopil základní principy jazyka. Ale to je klasický problém — když někdo používá technologii, kterou dobře neovládá, nedopadne to dobře. Ale není to chyba technologie, ale té osoby mezi klávesnicí a židlí.

        1. Pepa

          Re: Zajímavá ukázka

          Tam je otázka, pro koho je ten článek vlastně určen.

          Asi ne pro pokročilého developera s nějakou znalostí XSLT, který dělá věci co vy popisujete – ten už tyhle principy obvykle zná.

          Pro méně pokročilého developera, který si chce udělat opravdu jednoduchý téměř statický web (jak se o tom píše v úvodu článku) bude ta volba XSLT asi dost nešťastná. Konec konců sám píšete „když někdo používá technologii, kterou dobře neovládá, nedopadne to dobře“.

          1. Opravdový odborník :-)

            Re: Zajímavá ukázka

            Začít se dá s málem a učit se postupně – pokud jsem článek dobře pochopil, tak generátor je v podstatě hotový nástroj a uživatel ho může hned použít + si případně dopíše nějaké to makro nebo upraví šablonu.

          2. Pavel

            Re: Zajímavá ukázka

            Nicméně pokud se někdo chce seznámit s xslt tak je tohle myslím docela přístupná cesta, vyzkoušet si novou technologii ve spojení s něčím co už zná jinak (tvorbou jednoduchého webu)….

      2. Opravdový odborník :-)

        Re: Zajímavá ukázka

        Proto je to nejspíš svobodný software – aby to mohl používat i ten, kdo si to sám nenapsal, ne?

      3. František KučeraAutor příspěvku

        Objektové vs. značkovací jazyky

        A skutečně je to minomet? Ta XSL šablona je z velké části totožná s výstupním dokumentem – ve kterém jsou sem tam značky, co se má vložit ze vstupu. To samozřejmě umožňují i jiné šablonovací nástroje, jenže v nich se šablona typicky plní daty ve formě objektů daného programovacího jazyka – což je na jednu stranu fajn, na druhou stranu těžko se tam míchá text a značky a těžko se tam udělá to, co jsem tady nazval „makra“. Proto jsem zvolil XSLT. Navíc ty objekty (nic proti OOP) musí člověk někde vzít, znamená zase nějakou deserializaci/ma­pování z tvaru, ve kterém jsou data v souborech na disku.

        1. xx

          Re: Objektové vs. značkovací jazyky

          Ta XSL šablona je z velké části totožná s výstupním dokumentem – ve kterém jsou sem tam značky, co se má vložit ze vstupu.

          Je otázka, jestli je to výhoda.

  5. j

    transformace prohlizecem

    Mimochodem, castecne (ne kompletni specifikaci) umi transformace primo napriklad firefox => posle se mu xml + xsl a on to aplikuje. Vyhoda toho je, ze uzivatel ma k dizpozici primo netransformovana zdrojova data a muze snimi tedy nalozit dle libosti. S vyhodnou pouzitelne napriklad pro rss – pokud prijde na stranku s rss nekdo bez ctecky, zobrazi se mu to „nejak hezky“ (pokud to jeho prohlizec umi, samozrejme), pricemz ctecka proste pouzije jen ta data a transformacni sablona ji nijak nevadi.

    Naprosto idealni je to pak pro ruzne statistiky – napr hernich serveru, kde vznikaji vsemozne weby hracu, kteri si chteji na svuj web vytahnout trebas sve vysledky/informace o postavach/… nemuseji pak parsovat hnusne html, ktere se navic muze menit.

    1. fos4

      Re: transformace prohlizecem

      Transformaci v prohlizeci například hodne použival blizzard na svych webech.
      Nevim proc, ale nyni uz to serviruje hotove.

      1. Jiří Kosek

        Re: transformace prohlizecem

        Podpora XSLT 1.0 v desktopových prohlížečích je dneska už celkem slušná (tj. umějí ji všechny hlavní prohlížeče). Nicméně v mobilních zařízení tomu tak není — pokud chcete, aby stránky fungovaly i tady, je potřeba ještě na serveru vyrobit HTML, které se pošle klientovi.

        Problém prohlížečů je v tom, že podporují pouze XSLT 1.0. V XSLT 2.0 se přitom píše mnohem produktivněji. Nicméně už existuje implementace XSLT 2.0 v Javascriptu, takže XSLT 2.0 lze používat na mnohem širším spektru prohlížečů, viz: http://www.saxonica.com/html/ce/doc/contents.html

  6. ptica

    vyhrady k datum v xml a k transformacim

    ukladani vetsich dat do xml dokumentu nasadili na mff lingvistice pred lety
    a prineslo to podle meho tyhle nevyhody:

    1] vetsi velikost souboru
    2] pomale dotazovani, pametova narocnost: treba ziskat slovnikove heslo ze slovniku; tehdy neexistoval eXist, ale stejne, jak si i dneska stoji v porovnani s zaindexovanymi daty v sql?
    3] xslt je v jadru pattern matching – vidim vyhody jako optimalizace na rychlost zadarmo atd, ale vsechny moje sablony jsou dneska nepouzivane, protoze se vyvojem formatu vstupnich dat je proste nikdo neumi aktualizovat, xslt sablona je z definice obtizne prepouzitelna, pokud Vam nekdo zasadne zamicha se vstupem pisete novou. xstl je snad jeste vice write-only nez perl
    4] pouzit off-shelf nastroje na xml predavane socketem taky nejde, vsechny knihovny buffrujou, prijde msg a oni cekaji az se naplni buffer! ke vsemu xml data musi mit jeden root element – coz ma mozna smysl u dokumentu ale u protokolu jako jabber uz me to teda netesi.

    1. František KučeraAutor příspěvku

      Re: vyhrady k datum v xml a k transformacim

      XML je skvělý pro komunikaci, předávání dat z jednoho systému do jiného, pro konfiguráky nebo dokumenty (docbook atd.), ale pro ukládání dat, jako náhrada databáze, je to otázka — tam hodně záleží na struktuře dat a jejich variabilitě. Ačkoli mám XML hodně rád, musím říct, že většinou je pořád nejlepší volbou relační databáze.

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=3486