<?xml version="1.0" encoding="ISO-8859-15"?>
<rss version="2.0"><channel>
<title>xml</title>
<link>http://sange.fi/~atehwa/cgi-bin/piki.cgi/</link>
<description>Recent changes in xml</description>
<item><title>xml</title>
<link>http://sange.fi/~atehwa/cgi-bin/piki.cgi/xml</link>
<guid>http://sange.fi/~atehwa/cgi-bin/piki.cgi/#1119876100</guid>
<description>&lt;p&gt;&lt;ins&gt;Extensible markup language.&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;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.&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;[kategoria: työkalut] (huonot sellaiset)&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;----&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;Valitse tästä, mikä vaikuttaa helpoimmalta kirjoittaa, lukea ja 
konelukea:&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;(1)&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;{{{ Section: foo Parameter1: bar&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;Section: foo/sub1 Parameter2: ips, ops, öps&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;Section: ez }}}&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;(2)&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;{{{ (conf '((foo (param1 . bar) (sub1 (param2 ips ops öps))) 
(ez))) }}}&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;(3)&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;{{{ &lt;myconf:conf xmlns:myconf="http://blahblah.com/myconf.dtd"&gt; 
&lt;myconf:section name="foo"&gt; &lt;myconf:parameter name="Parameter1" 
value="bar"/&gt; &lt;myconf:subsection name="sub1"&gt; &lt;myconf:parameter 
name="Parameter2"&gt; &lt;myconf:listitem&gt;ips&lt;/myconf:listitem&gt; 
&lt;myconf:listitem&gt;ops&lt;/myconf:listitem&gt; 
&lt;myconf:listitem&gt;öps&lt;/myconf:listitem&gt; &lt;/myconf:parameter&gt; 
&lt;/myconf:subsection&gt; &lt;/myconf:section&gt; &lt;myconf:section name="ez"/&gt; 
&lt;/myconf:conf&gt; }}}&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;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ä)...&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;(Metajuttu: tätä sivua kirjoitettaessa jouduin kakkosesimerkkiä 
varten jo hidastamaan kirjoittamista, mutta vasta kolmosesimerkissä 
onnistuin tekemään virheitä.)&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;(4)&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;{{{ conf = { 'foo': { 'param1': 'baz', 'sub1': { 'param2': 
['ips', 'ops', 'öps'|] }}, 'ez': None } }}}&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;yllä [hakasuljeongelma] -^.&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;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):&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;{{{ print "&lt;dl&gt;\n"; while (&lt;&gt;) { ( $tagname, $args ) = 
/&lt;myconf:([A-Za-z|]*) ([^&gt;]*)&gt;/; print "&lt;dt&gt;$tagname&lt;/dt&gt; 
&lt;dd&gt;$args&lt;/dd&gt;\n" if $tagname; } print "&lt;/dl&gt;\n"; }}}&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;(mielenkiintoista. En osaa perliä kunnolla mutta tässä 
ohjelmassa ei ollut yhtäkään virhettä ensimmäisellä yrittämällä.)&lt;/ins&gt;

</description>
<pubDate>Mon, 27 Jun 2005 12:41:40 +0000</pubDate>
</item>

</channel></rss>
