home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 April / Chip_2003-04_cd1.bin / tema / krypta / articles.php@ID=228 < prev    next >
Text File  |  2003-02-02  |  24KB  |  392 lines

  1. <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html>
  3. <head>
  4.  <title>Krypta.cz - X kam se podφvßÜ</title>
  5.  <link rel="StyleSheet" href="server/main.css" type="text/css">
  6.  <link rel="SHORTCUT ICON" href="server/favicon.ico">
  7.  <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
  8.  <meta http-equiv="Cache-control" content="no-cache">
  9.  <meta http-equiv="Pragma" content="no-cache">
  10.  <meta http-equiv="Expires" content="0">
  11.  <meta name="robots" content="ALL,FOLLOW">
  12.  <meta http-equiv="Content-language" content="cs">
  13.  <meta name="description" content="Internetov² bezpeΦnostnφ portßl, zab²vajφcφ se kryptografiφ (Üifrovßnφm), ochranou dat, internetovou bezepeΦnostφ a poΦφtaΦov²mi viry">
  14.  <meta name="keywords" content="Üifrovßnφ cryptography pgp des aes rsa dss digital signatures pki linux free bezpeΦnost ochrana hacking cracking virus worm">
  15.  <meta name="copyright" content="Copyright (C) 2000-2002 Krypta.cz - <a href=mailto:michal.till@krypta.cz>Michal Till</a> a <a href=mailto:jan.kulveit@krypta.cz>Jan Kulveit</a>.">
  16.  <!-- No caching for this document.Trying to write to art228.html. ?> -->
  17.  
  18.  <!-- output.php -->
  19.  
  20.   <script language="JavaScript">
  21.   <!-- 
  22. //    if(top != self) { window.top.location.href=document.location; }  -->
  23.   </script>
  24.  
  25.  
  26. <!-- NAVRCHOLU.cz -->
  27. <script language="JavaScript" type="text/javascript">
  28. <!--
  29. pxDepth = screen.pixelDepth;
  30. if (!(pxDepth > 0))
  31.     pxDepth = screen.colorDepth;
  32. if (!(pxDepth > 0))
  33.     pxDepth = 0; 
  34. document.write("<img style=\"position:absolute; top:0px; left: 0px;\" src=\"../hit.navrcholu.cz/hit@id=00039669;n=1;screenx=" + screen.width + ";screeny=" + screen.height + ";cdepth=" + pxDepth + ";ref=" + escape(top.document.referrer) + "\" width=\"1\" height=\"1\" alt=\"\">");
  35. // -->
  36. </script>
  37. <noscript>
  38. <img style="position:absolute; top:0px; left: 0px;" src="../hit.navrcholu.cz/hit@id=00039669;n=1" width="1" height="1" alt="" border="0">
  39. </noscript>
  40. <!-- NAVRCHOLU.cz - konec -->
  41.  
  42. <STYLE Type=text/css>
  43.     BODY                { font-size:110%; background-color: #ffffff; color: #000000; margin: 0px;   background-image: url(images/backgr.gif); }
  44.  
  45.  
  46.  
  47.     .Copyright        { color: #000000; }
  48.     .Copyright A    { color: #000000; }
  49. </STYLE>
  50. </head>
  51. <SCRIPT>
  52. </SCRIPT><SCRIPT Src=charts.php@version=1621></SCRIPT><SCRIPT>
  53.  // Nalezeno  1 polozek. 
  54. var SectionTitles=new Array( "X kam se podφvßÜ" , "    XML schΘmata" , "    Je libo prostor?" , "    Tφm jsme prostor stromy definovali a ny" , "    Kudy k dat∙m?" , "    Adresujeme data" , "    S XML na web" , "    XOdkazy" , "    Zßv∞rem" );
  55. var SectionURLs=new Array( "228" , "228#Title1" , "228#Title2" , "228#Title3" , "228#Title4" , "228#Title5" , "228#Title6" , "228#Title7" , "228#Title8" );
  56.  
  57. var BrothersNames = new Array("X kam se podφvßÜ","Memy: infekΦnφ informace","");
  58. var BrothersIDs = new Array("228","229","");
  59. //=====INFO======
  60. ItemName='Article228';
  61.  
  62. InIFrame='No';
  63. TableNum=2; 
  64. ItemID=228; 
  65. ArticleType='1'; 
  66. Action='articles'
  67. ItemTitle='X kam se podφvßÜ';
  68. ItemComment='X kam se podφvßÜ';
  69. TabName='Articles'
  70. Parent1Title='Ostatnφ' ;
  71. Parent2Title='Domßcφ strßnka' ;
  72. Parent1ID='18' ;
  73. Parent2ID='1' ;
  74. ParentTitle='Ostatnφ' ;
  75. AuthorName='Michal Till' ;
  76. AuthorDesc='' ;
  77. AuthorEMail='Michal.Till@Seznam.cz' ;
  78. AuthorID='1' ;
  79. ItemDate='11.11.2002';
  80. Views='238' ;
  81. Average='2.00' ;
  82. Grade='2' ;
  83. NumVotes='0' ;
  84. SourceName='' ;
  85. SourceURL='' ;
  86. SourceLink='' ;
  87. Ref1URL='' ;
  88. Ref2URL='' ;
  89. Ref3URL='' ;
  90. Ref4URL='' ;
  91. Ref5URL='' ;
  92. Ref1Link='' ;
  93. Ref2Link='' ;
  94. Ref3Link='' ;
  95. Ref4Link='' ;
  96. Ref5Link='' ;
  97. Ref1Desc='' ;
  98. Ref2Desc='' ;
  99. Ref3Desc='' ;
  100. Ref4Desc='' ;
  101. Ref5Desc='' ;
  102. Possible=1 ;
  103. Answer1='' ;
  104. Answer2='' ;
  105. Answer3='' ;
  106. Answer4='' ;
  107. Answer5='' ;
  108. Num1='';
  109. Num2='';
  110. Num3='';
  111. Num4='';
  112. Num5='';
  113. Type= ''; //def
  114. WebName='Krypta.cz';
  115. //====ENDINFO======
  116.  
  117. </SCRIPT>
  118.  
  119. <BODY>
  120. </SCRIPT>
  121. <SCRIPT Language=JavaScript Src="server/startfeatures.php@Rand=ddd "> </SCRIPT><SCRIPT Language=JavaScript Src="server/features.php"> </SCRIPT><!-- Rozdeleni na sloupce -->
  122.  
  123. <TABLE cellspacing="0" cellpadding="0" border="0" width="100%">
  124. <tr>
  125.  
  126. <!-- Levy sloupec -->
  127.  
  128.  
  129.  
  130. <td  width="161" align="center" valign="top">
  131.  
  132. <img src=space.gif height=1 width=161>
  133. <SCRIPT SRC=server/left_js.php@version=1621></SCRIPT></td>
  134.  
  135. <!-- /Levy sloupec -->
  136.  
  137. <!-- Mezera 1-->
  138. <td width=13 bgcolor="#006792" ><img src="images/spacer.gif" width="13" height="1" border="0" alt=""></td>
  139. <!-- /Mezera 1-->
  140.  
  141. <!-- Mezera 2 -->
  142. <td width=1 bgcolor=#1063A5><img src="images/spacer.gif" width="1" height="1" border="0" alt=""></td>
  143. <!-- /Mezera 2-->
  144.  
  145. <!-- Mezera 3 -->
  146. <td width=10><img src="images/spacer.gif" width="10" height="1" border="0" alt=""></td>
  147. <!-- /Mezera 3-->
  148.  
  149.  
  150. <!-- Prostredni sloupec -->
  151. <td align="center" valign="top">
  152.  
  153. <!-- Hlavicka -->
  154. <!-- Horni lista s reklamou -->
  155.  
  156. <TABLE cellspacing="0" cellpadding="0" border="0" width="100%" class="hrlista">
  157. <tr>
  158.  
  159. <!-- Logo-->
  160. <td VAlign=Top>
  161. <a href="default.htm"><img src="images/logo.gif"  style="z-index:100;" vspace=0 cwidth="222" cheight="48" border="0" alt="Krypta.cz - Magazφn o informaΦnφ bezpeΦnosti"></a>
  162. </td>
  163. <!-- /Logo -->
  164.  
  165. <td align=center>
  166. </td></tr></table>
  167. <!-- /Horni lista s reklamou-->
  168. <!-- /Hlavicka -->
  169.  
  170. <TABLE Width=100% Border=0><TD><SCRIPT>
  171. </SCRIPT><SCRIPT>
  172. ArticleHead('X kam se podφvßÜ', 'Michal Till', 'Michal.Till@Seznam.cz', '11.11.2002', '00:03:17', '╚lßnek');
  173. Intro('V minulΘm dφle naÜeho povφdßnφ o XML jsme si vysv∞tlili zßkladnφ principy metajazyka. Ukßzali jsme si na jednoduch²ch p°φkladech, proΦ je vytvo°enφ vlastnφho datovΘho formßtu na zßklad∞ XML jednoduÜÜφ, rychlejÜφ a celkov∞ v²hodn∞jÜφ. Nynφ je na Φase, pov∞d∞t si vφce o technologiφch, kterΘ d∞lajφ tento koncept jeÜt∞ siln∞jÜφm.');
  174. ArticleBanner_smallres('margin-bottom:10px;margin-top:-3px;');
  175. </SCRIPT>
  176. <DIV Class=Article><SCRIPT>
  177. AuthorData();
  178. if (Type != 'Pure') if ((ArticleType!=19) && (ArticleType!=20)) ShowSections();
  179. ArticleBanner_bigres('margin-top:12px;margin-bottom:-3px;');
  180. </SCRIPT><FONT Size=2><DIV Align=Justify Class=Paragraph>
  181.     Obsahem druhΘ Φßsti minulΘho dφlu bylo z velkΘ Φßsti povφdßnφ o DTD - formßtu na popisovßnφ vlastnφch jazyk∙ na bßzi XML. Na DTD se nejv²sti₧n∞ji ukß₧e celß myÜlenka XML, ovÜem v praxi se od nich stßle vφce ustupuje a mφsto nich se pou₧φvß standard nov² - takzvanß XML SchΘmata.
  182. </DIV></FONT></b></i>
  183. <A Name="Title1"><FONT Size=3><DIV Class=Headline>XML schΘmata</DIV></font>
  184. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  185.     Migrace na nov² zp∙sob zßpisu mß n∞kolik d∙vod∙ a v²hod. Za prvΘ je t°eba si uv∞domit, ₧e vlastnφ formßt DTD nenφ ·pln∞ Φist²m XML - zßpis se vymykß standardnφ struktu°e ostatnφch XML dokument∙, co₧ nenφ ₧ßdoucφ. Naopak takovΘ schΘma je samo o sob∞ dokument tφmto standardem popsan². Zdß se to trochu zvlßÜtnφ, dostßvßme se ke klasickΘ kruhovΘ definice "Abychom mohli definovat rekurzi, musφme definovat rekurzi. Abychom mohli definovat...". Ale na druhΘ stran∞ uva₧te jen p°φnos programßtor∙m p°i prßci se schΘmatem. Nenφ pot°eba psßt cokoliv novΘho, XML procesor u₧ mßme a jeliko₧ schΘma je XML, je o starost mΘn∞. 
  186. </DIV></FONT></b></i>
  187. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  188.     Dßle, DTD nedisponovalo takov²mi mo₧nostmi popisu typ∙ atribut∙ a element∙. Vzpome≥te si na ukßzkov² soubor z minulΘho dφlu, kde byly jednotlivΘ atributy popsßny velmi stroze, aΦkoliv Ülo evidentn∞ o hodnoty naprosto odliÜn²ch struktur. Standard, kter² popisuje XML schΘmata definuje taktΘ₧ dlouhou °adu vÜech mo₧n²ch typ∙ a podtyp∙, kterΘ m∙₧e programßtor pou₧φvat. Jenom popis t∞ch Φφseln²ch by vydal na samostatn² odstavec, nebo¥ celΘ v∞c je skuteΦn∞ dota₧enß do dokonalosti : Φφsla kladnß, zßpornß, celß, reßlnß, velk² poΦet mφst... Dßle je k pou₧itφ velkß Ükßla formßt∙ data a Φasu, °et∞zc∙ apod. Programßtor si m∙₧e navφc vytvß°et typy vlastnφ, pomocφ odvozovßnφ od typ∙ stßvajφcφch a/nebo pomocφ vzor∙.
  189. </DIV></FONT></b></i>
  190. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  191.     Do t°etice vÜeho dobrΘho nesmφm opomenout podstatnou principielnφ zm∞nu v chßpßnφ zßvislosti element∙. Z DTD jsme zvyklφ, ₧e elementy stejnΘho jmΘna p°edstavujφ stejn² objekt a jako₧to d∞tskΘ elementy jsou jednoznaΦnΘ. Nynφ tomu tak nenφ - urΦit∞ se shodneme, ₧e nap°φklad titul knihy a titul p°ed jmΘnem jsou dv∞ s sebou nesouvisejφcφ v∞ci. Tuto skuteΦnost lze schΘmatem v∞rohodn∞ postihnout, ani₧ by bylo t°eba rozliÜovat elementy v nßzvu.
  192. </DIV></FONT></b></i>
  193. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  194.     Zb²vß dodat, ₧e do ΦeÜtiny p°elo₧enß nebo Φesky psanß literatura v tomto ohledu mφrn∞ zaostßvß - v souΦasnΘ dob∞ se touto formou vydala vÜehovÜudy jedna publikace (Elizabeth Castro, XML pro WWW, SoftPress 2001, Brno). Na druhou stranu ve v²vojov²ch nßstrojφch se do budoucna prakticky s niΦφm jin²m nepoΦφtß a na internetu jsou k dispozici i jedno·ΦelovΘ nßstroje pro prßci s XML schΘmaty (typicky programy pro p°evod z DTD).
  195. </DIV></FONT></b></i>
  196. <A Name="Title2"><FONT Size=3><DIV Class=Headline>Je libo prostor?</DIV></font>
  197. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  198.     P°i pou₧φvßnφ vφce DTD a/nebo schΘmat se m∙₧e lehce stßt, ₧e nßzvy n∞kter²ch atribut∙ Φi element∙ budou kolidovat a tφm se jejich vzßjemnΘ pou₧itφ bude vyluΦovat - parser by m∞l v celΘ situaci zmatek. Proto p°iÜli v²vojß°i s metodou tzv. jmenn²ch prostor∙ (XML NameSpace).
  199. </DIV></FONT></b></i>
  200. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  201.     Ka₧d² element je implicitn∞ v kontextu n∞jakΘ XML aplikace - tj. t²kß se n∞jakΘho tΘmatu. Ne₧ tuto aplikaci (DTD, schΘma) zaΦn∞me v naÜem datovΘm souboru pou₧φvat, je vhodnΘ jφ p°i°adit n∞jak² jmenn² prostor, ve kterΘm budou nßzvy element∙ a atribut∙ unikßtnφ. JednoznaΦnosti v celΘm dokumentu pak dosßhneme jednoduÜe spojenφm prostru a nßzvu. 
  202. </DIV></FONT></b></i>
  203. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  204.     P°edstavme si nap°φklad XML dokument, kter² pracuje stromy a s platidly. Abychom rozliÜili elementy koruna v kontextu stromu a v kontextu pen∞z, musφme pou₧φt jmennΘ prostory. 
  205. </DIV></FONT></b></i>
  206. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  207.     <SPAN Class=CODE><STROM xmlns:stromy="http://www.les.cz/2002/les"/></SPAN>
  208. </DIV></FONT></b></i>
  209. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  210.     Tφm jsme prostor stromy definovali a nynφ je mo₧nΘ jeho obsah pou₧φvat. Zapisujeme v tomto p°φpad∞ obrßcenou dvojteΦkovou notacφ : zatφmco v definovßnφ atribut xmlns:a znamenß definovßnφ prostoru "a", v n∞m obsa₧en² element "b" se zapisuje jako a:b (tedy element "b" v jmennΘm prostoru "a"). Popis koruny stromu bude vypadat nßsledovn∞:
  211. </DIV></FONT></b></i>
  212. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  213.     <SPAN Class=CODE><stromy:KORUNA stromy:POCET_VETVI="hodn∞"/></SPAN>
  214. </DIV></FONT></b></i>
  215. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  216.     Tφm je nßÜ problΘm vy°eÜen.
  217. </DIV></FONT></b></i>
  218. <A Name="Title3"><FONT Size=3><DIV Class=Headline>Kudy k dat∙m?</DIV></font>
  219. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  220.     Samotnß data ovÜem nemajφ velk² smysl, pokud nemßme v ruce nßstroj, kter² nßm umo₧nφ jejich adresovßnφ. K Φemu by nßm nap°φklad bylo tisφce soubor∙ na r∙zn²ch internetov²ch serverech po celΘm sv∞t∞, kdyby neexistoval nßstroj jednoznaΦn∞ popisujφcφ jejich ulo₧enφ. Tedy kdyby nebylo schΘma URI (Uniform Resource Identifier), resp. URL (Locator) adresy. Ten teprve dßvß mo₧nost odvolat se na n∞jak² obsah (tj. bez nutnosti jej kopφrovat) krßtk²m, ale v²sti₧n²m identifikßtorem. 
  221. </DIV></FONT></b></i>
  222. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  223.     Zßkladnφ syntaxe standardnφ URL adresy je dob°e znßmß. Sklßdß se z pou₧itΘho protokolu, poΦφtaΦe (+ portu), cesty a zdroje, tj. souboru. Äe se dßle v HTTP GET hlaviΦce dajφ posφlat jednotlivΘ prom∞nnΘ a jejich hodnoty je v∞c jinß (slou₧φ k p°edßnφ informacφ zpracujφcφm skript∙m), datov² zdroj je jednoznaΦn∞ identifikovßn i bez nich. 
  224. </DIV></FONT></b></i>
  225. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  226.     Stejn∞ jako v tomto schΘmatu, kter² adresuje data na ·rovni soubor∙ (Φi alespo≥ navenek na ·rovni souborovΘho systΘmu), pou₧φvß v∞tÜina podobn²ch "jazyk∙" absolutnφ a relativnφ adresovßnφ. V prvΘm p°φpad∞ jde o p°esnou specifikaci "mφsta", kde se data nachßzφ, v druhΘm se jednß pouze o zapsßnφ vztahu mezi aktußlnφm a cφlov²m dokumentem. Zcela v²sti₧n∞ vysv∞tφ celou situaci p°φpad urΦenφ domu poÜtovnφ adresou (absolutnφ adresovßnφ) a slovnφm popisem "d∙m o dva bloky vedle naproti" (relativnφ adresovßnφ - vztahuje se k aktußlnφ budov∞).
  227. </DIV></FONT></b></i>
  228. <A Name="Title4"><FONT Size=3><DIV Class=Headline>Adresujeme data</DIV></font>
  229. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  230.     Jeliko₧ ale pou₧φvßme pro prßci s daty jazyk definovan² pomocφ XML, pot°ebujeme n∞co jemn∞jÜφho. Bylo by vhodnΘ najφt nßstroj, kter² dokß₧e jednoznaΦn∞ ukßzat na jednotlivΘ v²znamovΘ Φßsti dokumentu - na elementy. 
  231. </DIV></FONT></b></i>
  232. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  233.     Adresovßnφ jednotliv²ch datov²ch slo₧ek je mimochodem znßmΘ i z HTML, urΦit∞ si vzpomenete na dvojk°φ₧ek (#), kter² se Φasto objevuje v internetovΘ adrese. V HTML lze toti₧ definovat nßzev n∞kterΘ "kotvy" (anchor, <SPAN Class=CODE><A name="jmΘno"></SPAN>) a p°i naΦtenφ souboru s tzv. identifikßtorem fragmentu "jmΘno" (soubor.html#jmΘno) prohlφ₧eΦ automaticky odroluje na Φßst v k≤du takto oznaΦenou.
  234. </DIV></FONT></b></i>
  235. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  236.     Standard XPath tuto pot°ebu °eÜφ komplexn∞ a nabφzφ mechanizmus, pomocφ n∞ho₧ m∙₧ete nahlφ₧et do dokumentu skuteΦn∞ ze vÜech stran. M∙₧ete p°esn∞ vybrat jeden element a to jak absolutn∞ (tj. v kontextu celΘho souboru), tak relativn∞ (tj. "od" souΦasnΘho elementu). M∙₧ete vybrat jakΘkoliv mno₧stvφ element∙, jak t°eba vÜechny (r∙znΘ) d∞tskΘ elementy elementu jinΘho, tak vÜechny (stejnΘ) bez ohledu na "hloubku" jejich polo₧enφ. Do XPath dotaz∙ m∙₧ete navφc vklßdat spousty dalÜφch aktivnφch informacφ. Za zmφnku stojφ urΦit∞ klasickΘ wildcardy neboli ₧olφky (*), tj. zßstupnΘ symboly pro blφ₧e nespecifikovanΘ °et∞zce, podmφnky po₧adujφcφ urΦitΘ hodnoty atribut∙ nebo element∙, prßce s klasick²mi booleovsk²mi v²razy a dalÜφ. K dispozici jsou takΘ klasickΘ funkce pro prßci s °et∞zci jak nap°φklad vyhledßvßnφ pod°et∞zc∙, konverze up/downcase, zßm∞na, znak na n-tΘm mφst∞, dΘlka °et∞zce apod.
  237. </DIV></FONT></b></i>
  238. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  239.     Pokud se vßm zdß, ₧e XPath mß blφzko k SQL, mßte pravdu, v principu jde o nßstroj, kter² byl vyvinut² pro stejn² ·Φel - odkazovßnφ a vyhledßvßnφ dat. Tam, kde musφte pou₧φt velkΘ mno₧stvφ JOIN∙ zleva zprava, stojφ mo₧nß za to podφvat se na celou situaci z pohledu XML a pop°em²Ület nad mo₧nostφ jednoduchΘho filtru na bßzi XPath.
  240. </DIV></FONT></b></i>
  241. <A Name="Title5"><FONT Size=3><DIV Class=Headline>S XML na web</DIV></font>
  242. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  243.     O u₧iteΦnosti odd∞lenφ informacφ od vzhledu asi nikdo nepochybuje a prßv∞ proto obliba datov²ch formßt∙ popsan²ch pomocφ XML roste. Jednou z hlavnφch aktivit konsorcia W3C v tΘto oblasti je prßce na standardu XHTML - aktußln∞ ve verzi 2.0 (vydßno v polovin∞ °φjna).
  244. </DIV></FONT></b></i>
  245. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  246.     Ka₧d² webov² programßtor, kter² mß alespo≥ minimßlnφ zkuÜenosti s tvorbou WWW strßnek jist∞ zaznamenal "chaos", kter² obklopuje klasickΘ HTML. Abych to up°esnil. FunkΦnφch HTML tag∙ je podstatn∞ vφce ne₧ je pot°eba, kv∙li kompatibilit∞ je zachovßvßna podpora skuteΦn∞ archaick²ch konstrukcφ, jednotlivΘ browsery si do pou₧φvan²ch programovacφch jazyk∙ p°idßvajφ svoje "vylepÜenφ" a ty syntaxe, ve kter²ch panuje relativnφ shoda, si zase Φasto r∙zn∞ vyklßdajφ.
  247. </DIV></FONT></b></i>
  248. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  249.     Sjednocenφ hypertextovΘho znaΦkovacφho jazyka do standardizovanΘ formy si klade za cφl prßv∞ XHTML. A proΦ to X na zaΦßtku? Jak asi tuÜφte, vÜe je popsßno pomocφ XML.
  250. </DIV></FONT></b></i>
  251. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  252.     On to sßm o sob∞ nenφ v∙bec Üpatn² nßpad - nehled∞ na fakt, ₧e p∙vodnφ verze HTML vychßzely jeÜt∞ z definic postaven²ch na SGML (tento "rodiΦ" XML bude asi pro b∞₧nΘ pou₧itφ sv²m potomkem p°evßlcovßn, nebo¥ prßce s nφm je pro programßtory podstatn∞ t∞₧Üφ a mßlokde je skuteΦn∞ do detail∙ implementovßn). Jen₧e postupem Φasu se od striktnφho v²kladu upouÜt∞lo a prohlφ₧eΦe zaΦaly tolerovat i ty nejhrubÜφ proh°eÜky. Vlßdl, jak jsem ji₧ °ekl,  chaos. Tagy se neuzavφraly, k°φ₧ily se, atributy nem∞ly hodnoty atd. XHTML °adφ zpßteΦku a pokouÜφ se o prav² opak : uzavφrejte vÜechny tagy, nek°i₧te elementy, atribut∙m dßvejte v₧dy hodnoty do uvozovek apod.
  253. </DIV></FONT></b></i>
  254. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  255.     VÜe je ale podstatn∞ slo₧it∞jÜφ ne₧ by se mohlo zdßt.
  256. </DIV></FONT></b></i>
  257. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  258.     M∙j osobnφ nßzor je, ₧e XHTML tlaΦφ HTML n∞kam, kde nemß co pohledßvat a d∞lß z n∞j n∞co co nenφ. A¥ standard °φkß to Φi ono, a¥ se v moudr²ch knihßch pφÜφ o XHTML r∙znΘ op∞vnΘ glosy, faktem z∙stßvß, ₧e HTML v pov∞domφ ÜirokΘ ve°ejnosti mß podstatn∞ blφ₧e k formßtovacφmu jazyku ne₧ k datovΘmu metajazyku. Podφvßme-li se na v²voj nßzv∙ tag∙, bude tato skuteΦnost daleko jasn∞jÜφ. Zabydlely se prost∞ ve svΘ vizußlnφ podob∞ : odd∞lovaΦ (horizontßlnφ Φßra), tabulka, obrßzek atd. a nad∞je, ₧e novß norma p°ed∞lß toto pojetφ tvorby strßnek do novΘho - v²znamovΘho, mß podle m∞ jen omezenΘ Üance na ·sp∞ch. 
  259. </DIV></FONT></b></i>
  260. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  261.     Ztrßcφme toti₧ rozmanitost a detailnost HTML a zφskßvßme jen velmi mßlo ze sφly strukturovanΘho pojetφ XML. Jakkoliv odd∞lφme myÜlenku a vzhled, po°ßd budeme u starΘho znßmΘho formßtovacφho jazyka na www prezentace. M∙₧eme zakßzat programßtor∙m pou₧φvat sto a jeden tag, m∙₧eme je donutit pou₧φvat <SPAN Class=CODE><OBJECT/></SPAN>mφsto <SPAN Class=CODE><IMG/></SPAN> na ka₧d² obrßzek (XHTML 2.0), ale pojetφ prostΘho formßtovßnφ textu bude v k≤du zako°en∞nΘ nadßle.
  262. </DIV></FONT></b></i>
  263. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  264.     Jinß v∞c je ovÜem psanφ webov²ch aplikacφ pomocφ ΦistΘho XML k≤du za pou₧itφ n∞kter²ch technik pokroΦil²ch styl∙ a transformacφ - tento sm∞r bych zvolil jß (samoz°ejm∞, jen pokud to situace dovoluje). Jedin∞ tak m∙₧eme provΘst skuteΦnou anal²zu aplikace ve sv∞tle XML. Pokud to jde, komunikujme p°es elementy a vzhled nechme obrßzk∙m.
  265. </DIV></FONT></b></i>
  266. <A Name="Title6"><FONT Size=3><DIV Class=Headline>XOdkazy</DIV></font>
  267. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  268.     Jak²m zp∙sobem se adresujφ data uvnit° XML dokumentu jsme si ji₧ °ekli. Bylo by to ale dost zbyteΦnΘ, kdybychom nedokßzali ukßzat na n∞jak² objekt mino - tj. v souboru jinΘm. 
  269. </DIV></FONT></b></i>
  270. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  271.     Odkazovßnφ dokument∙ v prost°edφ HTML slou₧ilo p°edevÜφm dv∞ma ·Φel∙m. Prvnφ z nich znamenal jednoduÜe °eΦeno "p°ilo₧enφ" cφlovΘho objektu k dokumentu prßv∞ zpracovßvanΘmu, typicky Ülo o obrßzek. V druhΘm p°φpad∞ jde o "odkaz" v klasickΘm slova smyslu, tedy "kliknu sem a dostanu se tam". AΦkoliv je ·Φel psanφ URL v t∞chto p°φpadech r∙zn², v principu se jednß o stejnou akci. 
  272. </DIV></FONT></b></i>
  273. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  274.     To je jeden z aspekt∙ standardu XLink. NejjednoduÜeji si zm∞nu vysv∞tlφme na srovnßnφ klasickΘho a novΘho pojetφ. Uve∩me p°φklad.
  275. </DIV></FONT></b></i>
  276. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  277.     <SPAN Class=CODE><ZDROJ xlink:type="simple" xlink:href="http://connect.cpress.cz" xlink:title="╚asopis" xlink:show="replace" xlink:actuate="onRequest" /></SPAN>
  278. </DIV></FONT></b></i>
  279. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  280.     Atribut type znaΦφ jednoduch² typ XLink odkazu a href mß zde stejnou funkci jako v HTML - URL cφlovΘho objektu. Description je jednoduch² popis, kter² m∙₧e slou₧it nap°φklad jako alternativnφ text k nezobrazenΘmu obrßzku (<SPAN Class=CODE><IMG Alt="..."></SPAN>). Mφsto zobrazenφ zadßme parametrem show, replace, jak asi tuÜφte, nahradφ aktußlnφ dokument v prohlφ₧eΦi nov²m. Vedle toho hodnota "embedded" zobrazφ objekt p°φmo v dokumentu a "new" by znamenalo otev°enφ novΘho okna. KoneΦn∞ actuate znaΦφ KDY bude externφ soubor zavolßn (onRequest = p°i vy₧ßdßnφ (typicky klik), onLoad = p°i nahrßnφ (automatickΘ vlo₧enφ nap°. obrßzku) ). Nesmφme zapomenout uzav°φt tag lomφtkem.
  281. </DIV></FONT></b></i>
  282. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  283.     Jak je vid∞t, mß to °ßd.
  284. </DIV></FONT></b></i>
  285. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  286.     DalÜφ novou v∞cφ je mo₧nost odkazovßnφ na vφce zdroj∙ najednou. Typ elementu dejme "extended" a jeho do jeho obsahu vpiÜme (XLink) elementy dalÜφ, tentokrßt s typem "locator". Pareser pochopφ, ₧e se odkazujeme na vÜechny "locator"s v "extended" obsa₧enΘ.
  287. </DIV></FONT></b></i>
  288. <A Name="Title7"><FONT Size=3><DIV Class=Headline>Zßv∞rem</DIV></font>
  289. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  290.     Jak je vid∞t, "podp∙rnΘ" standardy dßvajφ XML tu pravou sφlu, jakß programßtor∙m chyb∞la. Nehled∞ na to, ₧e jsem na poskytnutΘm prostoru pokryl slabou polovinu z nich a to jeÜt∞ velmi struΦn∞. Pro dneÜek bych povφdßnφ o XML ukonΦil. Po prvnφ ukßzkovΘ Φßsti jste dnes absolvovali krßtk² rychlokurz po p°φbuzn²ch technologiφch a standardech. O dalÜφch mo₧nostech si povφme v n∞kterΘm z dalÜφch, voln∞ navazujφcφch Φlßnk∙. 
  291. </DIV></FONT></b></i>
  292. </DIV>
  293. <SCRIPT>
  294. TextEnd('')
  295. </SCRIPT><OL Class=None Type=Disc></OL><SCRIPT>
  296. nie('<br>');AdditionalTablesBegin();
  297.  
  298. CommentsBegin('X kam se podφvßÜ',0);
  299. NoComments()
  300. CommentsEnd();
  301. </SCRIPT><SCRIPT>
  302. ArticleEnd()
  303. </SCRIPT></TABLE>
  304. <!-- /Prostredni sloupec -->
  305.  
  306.  
  307. <!-- Mezera 3 -->
  308.  
  309. <td width=5><img src="images/spacer.gif" width="5" height="1" border="0" alt=""></td>
  310. <!-- /Mezera 3-->
  311.  
  312. <!-- Mezera 2 -->
  313. <td width=1 bgcolor=#1063A5><img src="images/spacer.gif" width="1" height="1" border="0" alt=""></td>
  314. <!-- /Mezera 2-->
  315.  
  316. <!-- Mezera 1-->
  317. <td width=13 bgcolor="#006792" ><img src="images/spacer.gif" width="13" height="1" border="0" alt=""></td>
  318. <!-- /Mezera 1-->
  319.  
  320. <!-- Pravy sloupec -->
  321. <td bgcolor=#006792 width="0" align="center" valign="top">
  322. <SCRIPT SRC=server/right_js.php@version=1621></SCRIPT><br>
  323. </td>
  324. <!-- /Pravy sloupec -->
  325.  
  326.  
  327. </tr>
  328.  
  329. <!-- Bilo -->
  330. <tr>
  331. <td bgcolor=#000000><img src=space.gif height=1 width=1></td>
  332. <td bgcolor=#000000></td>
  333. <td bgcolor=#000000></td>
  334. <td bgcolor=#FFFFFF></td>
  335. <td bgcolor=#FFFFFF></td>
  336. <td bgcolor=#FFFFFF></td>
  337. <td colspan=5 bgcolor=#000000></td>
  338. </tr>
  339. <tr  bgcolor=#FFFFFF>
  340. <td><img src=space.gif height=20 width=1></td>
  341. <td></td>
  342. <td></td>
  343. <td></td>
  344. <td></td>
  345. <td></td>
  346. <td colspan=5></td>
  347. </tr>
  348. <!-- /Bilo-->
  349.  
  350.  
  351.  
  352. </table>
  353. <!-- /Rozdeleni na sloupce -->
  354.  
  355. <SCRIPT>
  356.     Exec(ToExecute);
  357.     ToExecute="";
  358. </SCRIPT>
  359.  
  360. <!-- Dolni lista -->
  361.  
  362.  
  363. <!-- Paticka -->
  364. <TABLE cellspacing="0" cellpadding="0" border="0" width="100%" bgcolor=#ffffff>
  365. <TR><td colspan=5 align="center" bgcolor=#000000><img src=space.gif height=1 width=1></td></TR>
  366. <TR bgcolor=#f0f0f0>
  367. <td align="center">
  368. <IMG Src=images/logo2.gif hspace=10 vspace=5>
  369. </td>
  370. <td>
  371. <DIV Style="margin-top:4px;margin-bottom:4px;" Class=Copyright><FONT Face=Arial Size=1>
  372.  
  373. <b><u>Krypta.cz</u></b> -  Magazφn o informaΦnφ bezpeΦnosti.<br>
  374. Copyright (C) 2000-2002 Krypta.cz - <a href=mailto:michal.till@krypta.cz>Michal Till</a> a <a href=mailto:jan.kulveit@krypta.cz>Jan Kulveit</a>. VÜechna prßva vyhrazena. <br>
  375. Tento server dodr₧uje prßvnφ p°edpisy o ochran∞ osobnφch ·daj∙, vΦetn∞ standardu P3P (<a href=server/policy.xml>policy</a>). </FONT></DIV>
  376. </td>
  377. <td>
  378. <IMG Src=geronimo.gif hspace=10 vspace=5>
  379. </td>
  380. <td>
  381. <DIV Style="margin-top:4px;margin-bottom:4px;" Class=Copyright><FONT Face=Arial Size=1>
  382. RedakΦnφ systΘm Geronimo<br>
  383. Copyright (C) 2001-2002 <a href=mailto:michal.till@krypta.cz>Michal Till</a>
  384. </FONT></DIV>
  385. </td>
  386. </td></tr></table>
  387. <!-- Paticka -->
  388.  
  389. <!-- /Dolni lista -->
  390.  
  391. </body>
  392. </html>