XHTML pieraksta likumi

Last modified by superadmin on 2018-01-12 20:39

XHTML pieraksta likumi

Visas birkas ir jāaizver

HTML, atšķirībā no XHTML, atļauj nerakstīt dažas aizverošās birkas, piemēram, </p>, </li>, </tr>, </td>. (Tika uzskatīts, ka aizverošo birku var izsecināt no tā, kāda birka tika atvērta, piemēram, iepriekšējā rindkopa beidzās tur, kur sākās nākošā rindkopa/tabula/saraksts, utml.) Pēc XML sintakses visas birkas ir jāaizver atklāti.

<p>Es eju pār robežām...</p>
<p>paceltu galvu</p>

Atklāti jāapzīmē tukšās birkas

Arī tukšajām birkām (kas ir lapas XML kokā) ir jāraksta aizverošā birka tūlīt aiz atverošās birkas, vai - vēl labāk - jālieto parastā daļsvītra birkas beigās. Izplatītākie piemēri ir <br/>, <hr/>, <input/>, <img/>.

<img src="sample.gif"
     width="10" height="20" />

Birkas nedrīkst pārklāties

Viena elementa saturs, kas ietverts starp atbilstošām sākuma un beigu birkām nedrīkst daļēji pārklāties ar cita elementa saturu (t.i. divi elementi vai nu vispār nepārklājas viena ar otru, vai arī viena birka atrodas stingri otras birkas iekšpusē. T.i. XML prasa stingru dokumenta hierarhiju.

<b>Viens, <i>divi
</b>, trīs</i>
Nepareizs piemērs

<b>Viens,</b> <i><b>
divi</b>, trīs</i>
Izlabots piemērs

Birku un atribūtu nosaukumos lielie un mazie burti ir atšķirami

Ikvienā XML dialektā birku un atribūtu nosaukumos lielo/mazo burtu lietojums jāizvēlas un jālieto konsekventi. XHTML standarts paredz visas birkas un visus atribūtus rakstīt tikai ar mazajiem burtiem.

<B><I>Slava PSKP!</i></B>
Nepareizs piemērs

<b><i>Slava PSKP!</i></b>
Izlabots piemērs

Atribūti jāliek pēdiņās vai apostrofos

Atšķirībā no HTML, kur atribūtu vērtības nebija jāliek pēdiņās tad, ja atribūta nosaukums nesatur tukšumus, XMLā pēdiņās liek visus atribūtus

<img src=sample.gif 
     width=10 height=20 >
Nepareizs piemērs

<img src='sample.gif'
     width="10" height="20" />
Izlabots piemērs

Dažreiz HTMLā varēja vispār nenorādīt atribūta vērtību. Piemēram, varēja rakstīt <table border> vai <option value="a" selected>. XHTML prasa norādīt atribūtu vērtības vienmēr:

<table border="1"> ... </table>
...
<option value="a" selected="true">

Dokumentam ir viena sakne

Viss dokuments obligāti jāiekļauj birkās <html> un </html> - tas XHTMLā vienmēr ir augšējā līmeņa elements.

<title>Slikts marķējums</title>
<body>
  <p>Nesakarīgie elementi</p>
</body>
Nepareizs marķējums

<html>
<head>
<title>Pareizi formatēts dokuments
</title>
</head>
<body>
<p>Elementi dzīvo kokā</p>
</body>
</html>
Izlabots marķējums

Ir tikai nedaudzas iebūvētās entītes.

XML definē tikai mimālu kopu ar iebūvētajām simboliskajām entītēm. Ja vēlaties lietot, piemēram, "&nbsp;" (atstarpe, neatļaujot rindas pārnesumu) vai "&Auml;" (A-umlaut simbols), tad rakstiet šo simbolu Unikodiskos numurus, piemēram, "&#160;" un "&#196;". Vienīgās nosauktās entītes, kuras paredz XML specifikācija ir sekojošās:

&lt;<
&gt;>
&amp;&
&quot;"
&apos;'

Skriptos "jāapiet" XML specsimboli

Skripti (JavaScript, VBScript, utml.) HTMLā var saturēt neparsējamus simbolus, piemēram, < un &. Šie simboli ir jāapiet strukturāli pareizā HTML dokumentā, lietojot simboliskās entītes (&lt; un &amp;), vai arī visu skriptu bloku iekļaujot CDATA blokā.

Turklāt JavaScript bieži satur komentārus, kuri sākas ar "//" un turpinās līdz rindas beigām. Ja XML normalizē tukšumus šādā JavaScript gabalā (t.i. attiecīgajam elementam script nostrādā xml:space='default', nevis xml:space='preserve' atribūts), tad vairs nevarēs pateikt, kur beidzas rinda - viss skripts būs kļuvis par vienu ļoti garu rindu, kuru sākot no kādas vietas atkomentēs komentārs "//", kurš nepareizi izplatīsies līdz pat skripta beigām.

<script>
    // checks a number against 7
    function saki_jaa(x) {
        alert("Jā, " + x); 
    }
</script>
Nepareizs piemērs

<script type="text/javascript">
<![CDATA[
    // checks a number against 7
    function saki_jaa(x) {
        alert("Jā, " + x); 
    }
]]></script>
Izlabots piemērs Ne visi skripti sabojāsies, ja tos neapzīmēs ar CDATA. Tomēr pat tad, ja skriptā nav XML speciālo simbolu, mēs to apstrādājam nevis kā XML elementa saturu, bet gan kā fiksētu teksta gabalu, kurš izveidots ar XML pilnīgi nesaistītā valodā. Tāpēc skripti ir šādi jācitē, ja mēs nevēlamies, ka XML šīs programmas tekstā normalizē tukšumus ("izēd" atkāpes) vai kādā nākotnes XML rīka versijā izrādās, ka rodas konflikts ar kādu JavaScript specsimbolu, ar kuru līdz šim viss bija labi.

Literatūra

[HTMLSpec]
HTML4.01 specifikācija
[XHTMLSpec]
XHTML1.0 specifikācija
Tags:
Created by Kalvis Apsītis on 2008-05-01 17:19
    
This wiki is licensed under a Creative Commons 2.0 license
XWiki Enterprise 6.4 - Documentation