2015-09-30 20:24:36 +03:00
|
|
|
---
|
|
|
|
language: xml
|
2015-09-30 20:26:20 +03:00
|
|
|
filename: learnxml-ro.xml
|
2015-09-30 20:24:36 +03:00
|
|
|
contributors:
|
|
|
|
- ["João Farias", "https://github.com/JoaoGFarias"]
|
2015-09-30 20:26:20 +03:00
|
|
|
translators:
|
|
|
|
- ["Serban Constantin", "https://github.com/fuzzmz"]
|
|
|
|
lang: ro-ro
|
2015-09-30 20:24:36 +03:00
|
|
|
---
|
|
|
|
|
2015-09-30 20:53:45 +03:00
|
|
|
XML este un limbaj de markup ce are ca scop stocarea si transportul de date.
|
2015-09-30 20:24:36 +03:00
|
|
|
|
2015-09-30 20:53:45 +03:00
|
|
|
Spre deosebire de HTML, XML nu specifica cum sa fie afisata sau formatata
|
|
|
|
informatia, ci doar o transporta.
|
2015-09-30 20:24:36 +03:00
|
|
|
|
2015-09-30 20:53:45 +03:00
|
|
|
* Sintaxa XML
|
2015-09-30 20:24:36 +03:00
|
|
|
|
|
|
|
```xml
|
2015-09-30 20:53:45 +03:00
|
|
|
<!-- Comentariile in XML arata asa -->
|
2015-09-30 20:24:36 +03:00
|
|
|
|
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
2015-09-30 20:53:45 +03:00
|
|
|
<librarie>
|
|
|
|
<carte categorie="GATIT">
|
|
|
|
<titlu limba="ro">Mancaruri italiene</titlu>
|
|
|
|
<autor>Giada De Laurentiis</autor>
|
|
|
|
<an>2005</an>
|
|
|
|
<pret>30.00</pret>
|
|
|
|
</carte>
|
|
|
|
<carte categorie="COPII">
|
|
|
|
<titlu limba="ro">Harry Potter</titlu>
|
|
|
|
<autor>J K. Rowling</autor>
|
|
|
|
<an>2005</an>
|
|
|
|
<pret>29.99</pret>
|
|
|
|
</carte>
|
|
|
|
<carte categorie="WEB">
|
|
|
|
<titlu limba="ro">Invata XML</titlu>
|
|
|
|
<autor>Erik T. Ray</autor>
|
|
|
|
<an>2003</an>
|
|
|
|
<pret>39.95</pret>
|
|
|
|
</carte>
|
|
|
|
</librarie>
|
|
|
|
|
|
|
|
<!-- Deasupra este un fisier XML obisnuit.
|
|
|
|
Incepe cu o declaratie ce adauga niste metadata (optional).
|
2015-09-30 20:24:36 +03:00
|
|
|
|
2015-09-30 20:53:45 +03:00
|
|
|
XML foloseste o structura arborescenta. Deasupra, nodul de baza este
|
|
|
|
'librarie', care are trei noduri copil, toate 'carti'. Acele noduri au la
|
|
|
|
randul lor noduri copii si asa mai departe...
|
|
|
|
|
|
|
|
Nodurile sunt create folosind taguri deschise/inchise, iar copii sunt doar
|
|
|
|
noduri intre tagurile de deschis si inchis.-->
|
|
|
|
|
|
|
|
|
|
|
|
<!-- XML transporta doua tipuri de date:
|
|
|
|
1 - Atribute -> Metadata despre un nod.
|
|
|
|
In general, parserul XML foloseste aceasta informatie sa stocheze
|
|
|
|
proprietatile datelor.
|
|
|
|
Este caracterizat de aparitia in paranteze in cadrul tagului deschis
|
|
|
|
2 - Elemente -> Date pure.
|
|
|
|
Asta este ceea ce parserul va extrage din documentul XML.
|
|
|
|
Elementele apar intre tagurile deschis si inchis, fara paranteze. -->
|
2015-09-30 20:24:36 +03:00
|
|
|
|
|
|
|
|
2015-09-30 20:53:45 +03:00
|
|
|
<!-- Dedesubt, un element cu doua atribute -->
|
2015-09-30 20:24:36 +03:00
|
|
|
<file type="gif" id="4293">computer.gif</file>
|
|
|
|
```
|
|
|
|
|
2015-09-30 20:53:45 +03:00
|
|
|
* Document bine formatat x Validare
|
2015-09-30 20:24:36 +03:00
|
|
|
|
2015-09-30 20:53:45 +03:00
|
|
|
Un document XML este bine formatat daca este corect sintactic.
|
|
|
|
Cu toate astea este posibil sa injectam mai multe constrangeri in document
|
|
|
|
folosind definitii precum DTD si XML Schema.
|
2015-09-30 20:24:36 +03:00
|
|
|
|
2015-09-30 20:53:45 +03:00
|
|
|
Un document XML ce foloseste o definitie de document este numit valid in
|
|
|
|
contextul documentului.
|
2015-09-30 20:24:36 +03:00
|
|
|
|
2015-09-30 20:53:45 +03:00
|
|
|
Cu acest tool poti verifica datele XML in afara codului aplicatiei.
|
2015-09-30 20:24:36 +03:00
|
|
|
|
|
|
|
```xml
|
2015-09-30 20:53:45 +03:00
|
|
|
<!-- Dedesubt este o versiune simplificata a documentului librarie,
|
|
|
|
cu aditia definitiei DTD.-->
|
2015-09-30 20:24:36 +03:00
|
|
|
|
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
2015-09-30 20:53:45 +03:00
|
|
|
<!DOCTYPE note SYSTEM "Librarie.dtd">
|
|
|
|
<librarie>
|
|
|
|
<carte categorie="GATIT">
|
|
|
|
<titlu >Everyday Italian</titlu>
|
|
|
|
<pret>30.00</pret>
|
|
|
|
</carte>
|
|
|
|
</librarie>
|
2015-09-30 20:24:36 +03:00
|
|
|
|
2015-09-30 20:53:45 +03:00
|
|
|
<!-- DTD-ul poate fi ceva similar cu:-->
|
2015-09-30 20:24:36 +03:00
|
|
|
|
|
|
|
<!DOCTYPE note
|
|
|
|
[
|
2015-09-30 20:53:45 +03:00
|
|
|
<!ELEMENT librarie (carte+)>
|
|
|
|
<!ELEMENT carte (titlu,pret)>
|
|
|
|
<!ATTLIST carte categorie CDATA "Literatura">
|
|
|
|
<!ELEMENT titlu (#PCDATA)>
|
|
|
|
<!ELEMENT pret (#PCDATA)>
|
2015-09-30 20:24:36 +03:00
|
|
|
]>
|
|
|
|
|
|
|
|
|
2015-09-30 20:53:45 +03:00
|
|
|
<!-- DTD-ul incepe cu o declaratie.
|
|
|
|
Dupa, nodul de baza este declarat, cerand unul sau mai multe noduri copii
|
|
|
|
de tipul 'carte'.
|
|
|
|
Fiecare 'carte' trebuie sa contina exact un 'titlu' si 'pret' si un atribut
|
|
|
|
numit 'categorie', cu "Literatura" ca valoare implicita.
|
|
|
|
Nodurile 'titlu' si 'pret' contin parsed character data.-->
|
2015-09-30 20:24:36 +03:00
|
|
|
|
2015-09-30 20:53:45 +03:00
|
|
|
<!-- DTD-ul poate fi declara si in interiorul fisierului XML.-->
|
2015-09-30 20:24:36 +03:00
|
|
|
|
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
|
|
|
<!DOCTYPE note
|
|
|
|
[
|
2015-09-30 20:53:45 +03:00
|
|
|
<!ELEMENT librarie (carte+)>
|
|
|
|
<!ELEMENT carte (titlu,pret)>
|
|
|
|
<!ATTLIST carte categorie CDATA "Literatura">
|
|
|
|
<!ELEMENT titlu (#PCDATA)>
|
|
|
|
<!ELEMENT pret (#PCDATA)>
|
2015-09-30 20:24:36 +03:00
|
|
|
]>
|
|
|
|
|
2015-09-30 20:53:45 +03:00
|
|
|
<librarie>
|
|
|
|
<carte categorie="GATIT">
|
|
|
|
<titlu >Everyday Italian</titlu>
|
|
|
|
<pret>30.00</pret>
|
|
|
|
</carte>
|
|
|
|
</librarie>
|
2015-09-30 20:24:36 +03:00
|
|
|
```
|