Extensible Markup Language
È un metalinguaggio per la definizione di linguaggi di markup, ovvero un linguaggio basato su un meccanismo sintattico che consente di definire e controllare il significato degli elementi contenuti in un documento o in un testo
Dichiarazione del file XML e del relativo DTD
Nella prima riga di ogni file XML va sempre inserita la dichiarazione, sotto di essa andiamo anche adggiungere la dichiarazione del DTD che il nostro file XML deve rispettare
<xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Catalogo SYSTEM "catalogo.dtd">
Struttura di un file XML
La sintassi XML è facilmente leggibile anche dall'occhio umano dato che è realizzata tramite dei tag che vengono aperti (marcatore di inizio) e chiusi (marcatore di fine). Inoltre, grazie alle tabulazioni, è possibile individuare anche la struttura ad "albero" ovvero i tag che contengono a loro volta degli altri tag
<misurazioni>
<49947>
<lora_device_id>6</lora_device_id>
<measure_type_id>10</measure_type_id>
<lora_message_id>11577</lora_message_id>
<valid_timestamp>true</valid_timestamp>
<data>
<sht30n1>
<lowres>
<humidity>46</humidity>
<temperature>241</temperature>
</lowres>
<sht30n1>
<cpuTemperature>26</cpuTemperature>
<supercapVoltage>446</supercapVoltage>
</data>
<measured_at>2022-09-10T17:10:00.000000</measured_at>
<created_at>2022-09-10T18:00:56.000000</created_at>
<updated_at>2022-09-10T18:00:56.000000</updated_at>
</misurazioni>
Utilizzo degli attributi
Ad un elemento possono essere associate informazioni descrittive chiamate attributi.Nell'esempio che segue gli attributi indicano per esempio il genere, l'anno, il nome del regista, i nomi degli attori ma anche il voto della recensione e il formato del film
<film id="l041">
<titolo>La donna che visse due volte</titolo>
<generi>
<genere value="thriller"/>
</generi>
<anno value="1958"/>
<registi>
<regista nome="Alfred Hitchcock"/>
</registi>
<attore nome="Kim Novak"/>
<attore nome="James Stewart"/>
<attore nome="Barbara Bel Geddes"/>
<attore nome="Tom Helmore"/>
<attore nome="Ellen Corby"/>
<originale />
<formato value="VHS"/>
<voto value="1"/>
</film>