Êîìåíòàðè
Êîãàòî ñå ïèøå íÿêàêúâ êîä, íåçàâèñèìî íà êàêúâ åçèê, âàæíî å òîé äà
áúäå êîìåíòèðàí. Êîìåíòàðèòå ñà ÷àñòè îò êîäà, êîèòî ñå èãíîðèðàò îò
ïðîöåñîðà è ñëóæàò åäèíñâåòíî çà óëåñíåíèå íà õîðàòà - òå ïðÿâÿò êîäà
ïî-ðàçáèðàåì è ëåñåí çà îáðàáîòâàíå. Îñâåí òîâà ïîíÿêîãà ñà ïîëåçíè çà
îòêðèâàíå íà ãðåøêè - ïðîñòî êîìåíòèðàòå ÷àñòè îò êîäà, äîêàòî îòêðèåòå
ïðîáëåìíàòà ÷àñò. XML çàïàçâà ñòèëà íà HTML çà êîìåíòàðèòå: íà÷àëîòî íà
êîìåíòàð ñå äåêëàðèðà ñ <!-- , à íåãîâèÿ êðàé ñ -->
È çà äà çàâúðøèì ðàçãëåæäàíåòî íà DTD íåêà ñå âúðíåì êúì âúíøíèòå DTD
ôàéëîâå. Ñëåä êàòî çíàåòå êàê äà íàïèøåòå åäíà äåôèíèöèÿ è êàê äà
èçïîëçâàòå âúíøåí .dtd ôàéë êàòî òàêàâà, îñòàâà äà íàó÷èòå êàê äà
íàïèøåòå ñàìèÿ .dtd ôàéë.  íåãî òðÿáâà äà âêëþ÷èòå ñàìî òàãîâåòå íà
ñàìàòà äåôèíèöèÿ, áåç áëîêà <!DOCTYPE [ ... ]>. È, ðàçáèðà ñå,
äîêóìåíòà òðÿáâà äà çàïî÷âà ñ <?xml version="1.0"?>
DTD å ñòàðèÿ ñòàíäàðò çà äåôèíèðàíå íà XML äîêóìåíòè, âñå ïî-ìàñîâî íàâëèçà ò.íàð. Shema.
Íÿêîëêî äóìè çà XHTML
Âñå ïîâå÷å íàâëèçà XHTML êàòî çàìåñòèòåë íà HTML. Çà ðàçëèêà îò HTML,
òîé èìà ñòðîãè èçèñêâàíèÿ êúì ñèíòàêñèñà. Àêî íå çàòâîðèòå íÿêîé òàã
äîêóåìíòà íÿìà äà å âàëèäåí è íÿìà äà ñå çàðåæäà îò áðàóçúðèòå

Òîâà îçíà÷àâà, ÷å òàãîâåòå <img>img> ùå èçãëåæäàò òàêà:
Êîä:
<img src="someimage.gif" />
Íà âñåêè òàã ñúîòâåòñòâà çàòâàðÿù òàã. Òàãà çà íîâ ðåä å
XML â Web - êàê äà ïðåâúðíåòå XML äîêóìåíòà â äîáðå èçãëåæäàù HTML
Êàêòî âå÷å íåâåäíúæ îòáåëÿçàõìå, XML îïèñâà äàííèòå, à òÿõíîòî
ïðåäñòàâÿíå íà åêðàíà å ðàáîòà íà ïðîãðàìàòà. Ñàìèÿ Internet Explorer
èìà âãðàäåí XML ïðîöåñîð, êîéòî ïðîâåðÿâà äàëè äàííèòå ñà âàëèäíè è àêî
ñà, èçâåæäà ãè â äúðâîâèäíà ñòðóêòóðà. Òîâà ñàìî ïî ñåáå ñè ðÿäêî å
ïîëåçíî.  Web ÷åñòî ñå èçïîëçâà ñòèëîâà äåôèíèöèÿ çà îïðåäåëÿíåòî íà
âèäà íà âñåêè åäèí òàã. Òîâà ñå îñúùåñòâÿâà ÷ðåç åäèí îò XML åçèöèòå -
XSL (Extensible Stylesheet Language). Ìàêàð XSL äà ïðèëè÷à íà CSS ïî
âúçìîæíîñòòà äà ñå îïðåäåëè âèäà íà âñåêè åäèí òàã, òîé å çíà÷èòåëíî
ïî-ìîùåí. Íà ïúðâî ìÿñòî, XSL ìîæå äà íàïðàâè ðàçëèêà ìåæäó äâà åäíàêâè
òàãà, êîèòî äà äúùåðíè åëåìåíòè íà ðàçëè÷íè òàãîâå. Îñâåí òîâà ñ XSL
ìîãàò äà ñå ïðîâåðÿâàò ñòîéíîñòèòå íà àòðèáóòèòå è äà ñå ôîðìàòèðàò ïî
ðàçëè÷åí íà÷èí òàãîâå, â çàâèñèìîñò îò äàäåí àòðèáóò. XSL íå ïðîñòî
äàâà ñòèëîâàòà äåôèíèöèÿ íà äàäåí òàã; òîé îïðåäåëÿ HTML êîä, êîéòî äà
ñå èçïîëçâà çà âñåêè åäèí òàã, êàòî ïðåäîñòàâÿ ìåòîäè çà ëåñíî è áúðçî
îáðàáîòâàíå íà ãîëåìè XML äîêóðàêî òîâà ñå îñúùåñòâÿâà ÷ðåç ïîðåäèöà
ñëóæåáíè òàãîâå, ïðåäîñòàâÿíè îò XSL. Â îñíîâàòà ñè, ñèíòàêñèñà ìó å
ñúùèÿ, êàêòî íà XML.
XSL äîêóìåíòà äåôèíèðà íàáîð ñòèëîâå. Òîé ñå ñúñòîè îò åäèí èëè ïîâå÷å
øàáëîíà. Òåçè øàáëîíè ñå ïðèëàãàò âúðõó åëåìåíòè, êîèòî ñúâïàäàò ñ
íÿêàêúâ îáðàçåö - íàïðèìåð òàãîâå <book>, êîèòî ñà äúùåðíè íà òàã
.
Åäèí øàáëîí ñå äåôèíèðà ÷ðåç òàãà <xsl:template>. Òîçè øàáëîí
òðÿáâà äà äåôèíèðà êàê äà ñå èçâåæäà èíôîðìàöèÿòà, êîÿòî ïîêðèâà
íÿêàêâè êðèòåðèè. Ñúîòâåòíî øàáëîíà ñå çàâúðøâà ñ </xsl:template>
Ìåæäó òåçè äâà òàãà ñå ñëàãàò ðàçëè÷íè XSL òàãîâå, êîèòî èçâëè÷àò
èíôîðìàöèÿ çà XML äîêóìåíòà. Òåçè òàãîâå ðàçãëåæäàì ïî-ïîäðîáíî
ïî-íàòàòúê.
Õàðàêòåðíîòî å, ÷å ìåæäó äâà òàãà, èäåíòèôèöèðàùè îïðåäåëåíî XML
ñúäúðæàíèå ñå ñëàãà HTML êîä, äåôèíèðàù êàê äà áúäàò èçâåäåíè òåçè
òàãîâå.
Åäèí îò îñíîâíèòå òàãîâå å êîéòî îïðåäåëÿ íÿêàêúâ
îñíîâåí êðèòåðèé è ïðèëàãà ôîðìàòèðàíåòî êúì âñåêè òàã, îòãîâàðÿù íà
òîçè êðèòåðèé. Êðèòåðèÿ ñå îïðåäåëÿ îò ñòîéíîñòòà íà ñâîéñòâîòî for,
êîåòî îò ñâîÿ ñòðàíà ñëåäâà äåôèíèöèÿòà íà ò.íàð. XPath. Xpath äåôèíèðà
íàáîð ïðàâèëà çà îòêðèâàíå íà åäèí èëè ïîâå÷å åëåìåíòà â XML äîêóìåíòà.
Íàïðèìåð äåêëàðàöèÿòà type/books îçíà÷àâà âñè÷êè òàãîâå <books>,
êîèòî ñà äúùåðíè íà òàãà <type>. * îçíà÷àâà âñåêè òàã, |
èäåíòèôèöèðà àëòåðíàòèâè, à // îçíà÷àâà âñåêè ïúò (ò.å. //books
îçíà÷àâà âñåêè òàã <books> íåçàâèñèìî îò ðîäèòåëñêèòå ìó òàãîâå,
òåõíèòå ðîäèòåëñêè òàãîâå è ò.í.
Äðóã âàæåí òàã å <xsl:value=of/> êîéòî ñúùî èìà åäèí àðãóìåíò
for. Òîçè àòðèáóò îïðåäåëÿ äúùåðåí òàã, à â ðåçóëòàò ñå âðúùà òåêñòà,
ñúäúðæàù ñå ìåæäó îòâàðÿùèÿ è çàòâàðÿùèÿ òàã, îïðåäåëåíè îò àòðèáóò.
Àêî âçåìåì îòíîâî XML äîêóìåíòà ñ êíèãèòå è èñêàìå äà èçâåäåì àâòîðà íà
âñÿêà êíèãà â ïîëó÷åðåí øðèôò, à òîâà çà êàêâî ñå îòíàñÿ òÿ ñ íîðìàëåí,
íà äâà ñúñåäíè ðåäà, êàòî îñòàâÿìå åäèí ïðàçåí ìåæäó âñÿêà äâîéêà, òî
ìîæåì äà íàïèøåì ñëåäíèÿ êîä:
Êîä:
<?xml version="1.0"?>
<xsl:template>
<HTML>
<BODY>
<xsl:repeat for="//style/name">
<P><B><xsl:value-of select="author"/></B>
<BR><xsl:value-of select="subject"/>
</xsl:repeat>
</BODY>
</HTML>
</xsl:teplate>
Çàáåëåæêà: àêî òåñòâàòå íÿêîé .xsl êîä ñ áðàóçúð, òî òîé íÿìà äà
äîâåäå äî î÷àêâàíèÿ ðåçëóòàò. Ïðè÷èíàòà å â ëèïñàòà íà âãðàäåì
ïðîöåñîð. Internet Explorer ñúäúðæà âãðàäåíà êîíòðîëà, êîÿòî ìîæåòå äà
èçïîëçâàòå ÷ðåç JavaScript. Çà äà èçâåäåòå XML äîêóìåíò, ôîðìàòèðàí îò
XSL, òðÿáâà äà ñúçäàäåòå åäèí ôàéë ñ XML äîêóåìòà, åäèí ñ XSL äîêóìåíòà
è åäèí HTML ôàéë, ñúäòðæàù ñëåäíèÿ êîä (òóê ñúì ïðèåë, ÷å äîêóìåíòèòå
ñå êàçâàò ñúîòâåòíî xmldocument.xml è xsldocument.xsl):
Êîä:
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript" FOR="window" EVENT="onload">
var source = new ActiveXObject("Microsoft.xmldom");
source.load("xmldocument.xml");
var style = new ActiveXObject("Microsoft.xmldom");
style.load("xsldocument.xsl");
document.all.item("xslContainer").innerHTML =
source.transformNode(style.documentElement);
</SCRIPT>
</HEAD>
<BODY>
<DIV ID="xslContainer"></DIV>
</BODY>
</HTML>
XSL îáà÷å ìîæå äà äåôèíèðà ðàçëè÷íè ñòèëîâå çà ðàçëè÷íèòå òàãîâå. Òîâà
å îñîáåíî ïîëåçíî ïðè ãîëåìè XML äîêóìåíòè. Çà öåëòà ñå èçïîëçâà
àòðèáóòà match íà òàãà <xsl:template>, êîéòî îïðåäåëÿ óñëîâèÿòà
(ïî ñúùèÿ íà÷èí, ïî êîéòî ãî ïðàâè è àòðèáóòà for íà òàãà xml:repeat),
íà êîèòî òðÿáâà äà îòãîâàðÿ åäèí òàã çà äà áúäå ïðèëîæåí äàäåí ñòèë. È
òúé êàòî ùå èçïîëçâàìå ïîâå÷å îò åäèí òàã <xsl:template> à XML
ðàçðåøàâà ñàìî åäèí ïúðâè÷åí òàã (êîðåí íà ñòðóêòóðàòà èëè îùå root),
òî ïúðâèÿ òàã âå÷å íÿìà äà å <xsl:template>, à
<xsl:stylesheet>