Uno degli argomenti più spinosi relativi a XHTML è la gestione dei linguaggi di programmazione, tradizionalmente incorporati nel documento con il tag <script>. Procediamo con ordine.
Uso di <script>
In HTML il tag <script> serve a incorporare nel documento codice di programmazione. Il linguaggio più comunemente usato è Javascript. Il tag è supportato anche in XHTML e va ugualmente inserito nella sezione <head>....</head>. L'elemento <script> supporta i seguenti attributi:
charset | Specifica la codifica dei caratteri |
defer | Dice al browser che lo script non genera documenti |
langauage | Specifica il linguaggio di scripting. È obbligatorio quando l'attributo src non è specificato. |
src | Contiene l'URL di uno script contenuto in un file esterno |
type | Obbligatorio. Indica il tipo MIME dello script: es "text/javascript" |
xml:space | Usato per mantenere la spaziatura del codice |
Dunque, uno script può essere direttamente incorporato nella pagina oppure inserito in un file esterno e richiamato:
Script incorporato |
<script type="text/javascript" language="javascript"> |
Script collegato |
<script type="text/javascript" </script> |
Caratteri pericolosi
Fin qui niente di nuovo. Il problema sorge quando nello script si utilizzano caratteri "pericolosi" (sensitive characters nella definizione XHTML). Si tratta di caratteri che possono ingenerare confusione e fraintendimenti perchè il processore XML li interpreta in un modo, nel linguaggio di scripting hanno tutt'altro significato. In Javascript > significa "maggiore di"; in XML indica la chiusura di un tag. Che fare? Il W3C suggerisce due vie, ma entrambe presentano punti deboli.
Usare le sezioni CDATA
Nella specifica si suggerisce di racchiudere gli script all'interno di una sezione CDATA. Esse vengono usate in documenti XML per racchiudere blocchi di testo contenenti caratteri che potrebebro essere interpretati come elementi di marcatura.
Una sezione CDATA inizia con la stringa <![CDATA[ e termina con ]]>. Ecco come lo script visto in precedenza apparirebbe:
<script type="text/javascript" language="javascript"> |
Il punto debole di questo approccio è che i nostri browser non gestiscono affatto bene le sezioni CDATA.
Usare script esterni
Si potrebbe ovviare scrivendo gli script in un file esterno e collegandolo al documento. Tutto bene. Ma se bisogna modificare lo script, magari con ASP o comunque con variazioni lato server? Non è possibile farlo.
E allora? In effetti, se la situazione è quella appena prospettata, non rimane che usare il vecchio metodo. Avremo un documento non conforme al 100% in attesa che XHTML sia in grado di incorporare i linguaggi di scripting diversamente.