De ce sunt necesare formatele de text?

Formatele de text sunt convenabile pentru stocarea informațiilor, deoarece pot fi create și procesate atât de programe, cât și de oameni.

Fișierele text (fișiere în format text) pot fi deschise, citite și editate într-o mare varietate de editoare de text.

Multe programe folosesc fișiere de configurare bazate pe text, chiar dacă formatul conține numere și valori binare (da/nu).

Acest lucru face ca programele să fie oarecum mai complicate din cauza necesității de a converti din text într-un format intern și invers, dar face posibilă editarea manuală a configurației fără a utiliza un instrument de configurare în programul însuși.

Unde este folosit XML acum?

XML este utilizat în diferite domenii ale IT. Pot fi fișiere de configurare (cu setări de program) sau fișiere utilizate pentru a transfera date între programe. În Java, unul dintre cele mai frecvente cazuri de utilizare este configurarea Maven, un instrument de automatizare a construcției.

Structura unui document XML

Structurile fizice și logice ale unui document XML sunt păstrate separate. În ceea ce privește structura fizică, documentul este format din entități care se pot referi la alte entități.

Singurul element rădăcină este entitatea document. O entitate este cea mai mică parte dintr-un document. Toate entitățile au un nume și conțin caractere.

La rândul lor, caracterele aparțin uneia dintre cele două categorii: date de caractere sau marcare.

Markup include:

  • etichete, care denotă limitele elementelor;
  • declarații și instrucțiuni de prelucrare, inclusiv atributele acestora;
  • referințe la entități;
  • comentarii;
  • secvențe de caractere care împachetează secțiuni CDATA.

În mod logic, documentul constă din elemente, comentarii, declarații, referințe la entități și instrucțiuni de procesare. Markup este folosit pentru a crea toată această structură într-un document.

Toate părțile constitutive ale unui document sunt împărțite într-un prolog și un element rădăcină. Elementul rădăcină este partea obligatorie, esențială a unui document XML, în timp ce prologul poate să nu existe deloc. Elementul rădăcină poate consta din elemente imbricate, date de caracter și comentarii. Elementele unui document trebuie să fie imbricate corect: orice element care începe în interiorul altui element trebuie să se termine și în interiorul acelui element.

Simboluri de marcare

Marcarea începe întotdeauna cu < și se termină cu > .

Simbolurile < și > (paranteze unghiulare) și & (ampersand) joacă un rol special. Parantezele unghiulare indică limitele elementelor, instrucțiunile de procesare și alte câteva secvențe. Și ampersand ne ajută să înlocuim textul cu entități.

Declarație XML

O declarație XML specifică versiunea limbajului folosit pentru a scrie documentul. Specificația XML spune să începeți un document cu o declarație XML deoarece interpretarea corectă a conținutului documentului depinde de versiunea limbajului.

În prima versiune a limbii (1.0), această declarație era opțională, dar este obligatorie în versiunile ulterioare. Se presupune că o declarație lipsă înseamnă versiunea 1.0. Declarația poate conține și informații despre codificarea documentului.

Exemplu:

<?XML version="1.1" encoding="UTF-8" ?>

Etichete

O etichetă este o construcție de markup care conține numele unui element. Există etichete de început și etichete de final. Există, de asemenea, etichete cu elemente goale care combină elementele de început și de sfârșit.

Exemple:

  • Eticheta de pornire: <tag1>

  • Etichetă de final: </tag1>

  • Etichetă cu element gol: <empty_tag1 />

Atribute

O altă parte a elementelor XML sunt atributele. Un element poate avea mai multe atribute unice. Atributele ne permit să specificăm mai multe informații despre un element. Sau mai precis, atributele definesc proprietățile elementelor.

Un atribut este întotdeauna o pereche nume-valoare:

nume = "valoare"

Exemplu de atribut într-o etichetă:

<tag1 name = "value">element</tag1>

Valoarea unui atribut trebuie inclusă între ghilimele duble ( " ) sau ghilimele simple ( ' ). Atributele sunt folosite numai în etichetele de început și etichetele cu elemente goale.

Escape cinci caractere speciale (<, >, ', ”, &)

Evident, simbolurile < , > și & nu pot fi folosite ca atare în datele caracterelor și valorile atributelor. Aveți nevoie de secvențe speciale de evadare pentru a le reprezenta. Secvențe speciale sunt, de asemenea, folosite atunci când scrieți apostrofe și ghilimele în interiorul valorilor atributelor:

Simbol Înlocuire
< <
> >
& &
' '
" "

De asemenea, pentru a scrie caracterul \ , trebuie să utilizați \\ .

secțiunea CDATA

O secțiune CDATA nu este o unitate logică de text. Acest tip de secțiune poate apărea în cazul în care sintaxa XML ne permite să plasăm date de caractere în document.

Secțiunea începe cu <![CDATA[ și se termină cu ]]> . Datele de caractere sunt plasate între acești biți de marcare, iar simbolurile < , > și & pot fi folosite în forma lor directă.

Comentarii

Comentariile nu sunt considerate date de caractere. Un comentariu începe cu <!-- și se termină cu --> . Secvența de caractere -- nu poate fi folosită în interiorul unui comentariu. De asemenea, în interiorul unui comentariu, caracterul ampersand nu este un marcaj.

Exemplu:

<!-- acesta este un comentariu -->

Nume

În XML, toate numele pot conține numai litere din tabelul cu caractere Unicode, cifre arabe, puncte, două puncte, cratime și litere de subliniere. Numele pot începe cu o literă, două puncte sau liniuță de subliniere. Rețineți că un nume nu poate începe cu șirul XML .

Exemplu

Să ne uităm la o clasă Java și un obiect al acelei clase. Apoi vom încerca să serializeze obiectul în format XML. Codul clasei:


public class Book {
   private String title;
   private String author;
   private Integer pageCount;
   private List<String> chapters;

   public Book(String title, String author, Integer pageCount, List<String> chapters) {
       this.title = title;
       this.author = author;
       this.pageCount = pageCount;
       this.chapters = chapters;
   }
// Getters/setters
}

și crearea de obiecte:


Book book = new Book("My Favorite Book", "Amigo", 999, Arrays.asList("Chapter 1", "Chapter 2", "Chapter 3", "Chapter 4", "Chapter 5", "Chapter 6"));

Iată un exemplu de reprezentare XML validă a unui obiect Java care conține 4 câmpuri, dintre care unul este o colecție (vezi codul Java de mai sus):

<Cartea>
  <title>Cartea mea preferată</title>
  <author>Amigo</author>
  <pageCount>999</pageCount>
 <chapters>
    <chapters>Capitolul 1</chapters>
    <chapters>Capitolul 2</chapters>
    <chapters>Capitolul 3</chapters>
    <chapters>Capitolul 4</chapters>
    <chapters>Capitolul 5</chapters>
    <chapters>Capitolul 6</chapters>
 </chapters>
</Carte>

Schema XML

O schemă XML este descrierea structurii unui document XML. Specificația corespunzătoare (XML Schema Definition, sau XSD) este o recomandare W3C.

XSD a fost conceput pentru a exprima regulile pe care trebuie să le respecte un document XML. Dar cel mai interesant lucru pentru noi este că XSD a fost conceput pentru a fi folosit la dezvoltarea software-ului care procesează documente XML. Ne permite să verificăm corectitudinea unui document XML în mod programatic.

Fișierele care conțin o schemă XML au extensia .xsd. Proiectarea unei scheme XML este dincolo de scopul acestei lecții, așa că deocamdată trebuie să știți că există posibilitatea.