(toiminnot)

hwechtla-tl: Xml: viime muutokset

Extensible markup language.

Minä väitän, että XML ei ole paras ratkaisu oikeastaan mihinkään. Se ei tuota lisäarvoa, mutta sen käytön opetteleminen tuottaa lisää vaivaa.

[kategoria: työkalut] (huonot sellaiset)

----

Valitse tästä, mikä vaikuttaa helpoimmalta kirjoittaa, lukea ja konelukea:

(1)

{{{ Section: foo Parameter1: bar

Section: foo/sub1 Parameter2: ips, ops, öps

Section: ez }}}

(2)

{{{ (conf '((foo (param1 . bar) (sub1 (param2 ips ops öps))) (ez))) }}}

(3)

{{{ ips ops öps }}}

Ja hei, tässä ei vielä edes käytetty mitään epäilyttävää. Ettekä ole joutuneet katsomaan DTD:a tai schemaa... ja katsokaapa huviksenne, kuinka monen sadan kilon kirjastoja on olemassa "ratkaisuna" tähän, mikä hoituisi noin 5 linjalla Perliä (josta en muuten pidä)...

(Metajuttu: tätä sivua kirjoitettaessa jouduin kakkosesimerkkiä varten jo hidastamaan kirjoittamista, mutta vasta kolmosesimerkissä onnistuin tekemään virheitä.)

(4)

{{{ conf = { 'foo': { 'param1': 'baz', 'sub1': { 'param2': ['ips', 'ops', 'öps'|] }}, 'ez': None } }}}

yllä [hakasuljeongelma] -^.

XML:n standardi [makroprosessori], XSLT, on vielä pahempi. Mutta ehkä siitä voipi olla jotain iloa. Itse en osaa XSLT:a kunnolla, jotta voisin demonstroida sitä, mutta haastan kenet tahansa sitä taitavan kirjoittamaan tämän skriptin (sama idea, ei tarkalleen sama funktionaliteetti):

{{{ print "

\n"; while (<>) { ( $tagname, $args ) = /]*)>/; print "
$tagname
$args
\n" if $tagname; } print "
\n"; }}}

(mielenkiintoista. En osaa perliä kunnolla mutta tässä ohjelmassa ei ollut yhtäkään virhettä ensimmäisellä yrittämällä.)


(viimeksi muutettu 27.06.2005 15:41)