EliteHackers
SALUT 2022!! NE-AM MUTAT PE DISCORD ! Vrei să inviți un prieten? [T]eoria [H]aosului [C]ontrolat - https://discord.com/invite/U4HBCHzm7r Acesta aste link-ul oficial al acestui server.
Lista Forumurilor Pe Tematici
EliteHackers | Reguli | Inregistrare | Login

POZE ELITEHACKERS

Nu sunteti logat.
Nou pe simpatie:
lavinia.monica la Simpatie.ro
Femeie
25 ani
Timis
cauta Barbat
26 - 67 ani
EliteHackers / Windows - Hacking & Tools / tutorial DTD Moderat de Ad_Infinitum, AntiKiler, Puscas_marin, kooze, r3v
Autor
Mesaj Pagini: 1
luyzette
EliteHackers Diamond

Inregistrat: acum 16 ani
Postari: 117
Un document DTD(Document Type Definition) defineste structura documentului XML cu o lista de elemente valide. Un DTD poate fi declarat “inline”, in interiorul documentului XML sau ca referinta externa.

Exemplul de mai jos se va referi la o referinta externa.

Fisierul DTD:


<?xml version="1.0" encoding="ISO-8859-1"?>
<!ELEMENT ADI (Metadata, Asset)>
<!ELEMENT Metadata (AMS, App_Data+)>
<!ELEMENT AMS EMPTY>
<!ATTLIST AMS Provider CDATA #REQUIRED>
<!ATTLIST AMS Product CDATA #REQUIRED>
<!ATTLIST AMS Asset_Name CDATA #REQUIRED>
<!ATTLIST AMS Version_Major CDATA #REQUIRED>
<!ATTLIST AMS Version_Minor CDATA #REQUIRED>
<!ATTLIST AMS Description CDATA #REQUIRED>
<!ATTLIST AMS Creation_Date CDATA #REQUIRED>
<!ELEMENT App_Data EMPTY>
<!ATTLIST App_Data App (MOD | SVOD) "MOD">
<!ATTLIST App_Data Name CDATA #REQUIRED>
<!ATTLIST App_Data Value CDATA #REQUIRED>
<!ELEMENT Asset (Metadata, Asset+)>
<!ELEMENT Content (#PCDATA)>
<!ATTLIST Content Value CDATA #REQUIRED>



De precizat este ca in interiorul documentului XML trebuie adaugata o linie care contine locatia referintei DTD:


<!DOCTYPE ADI SYSTEM "file.dtd">


Tagurile XML
Din punctul de vedere al DTD, toate documentele XML sunt facute bloguri de constructie simple:
# Elemente
# Atribute
# Entitai
# PCDATA
# CDATA


Elementele
Elementele sunt blocuri de constructie principale pentru documentele XML cat si pentru cele HTML. Un exemplu pentru HTML ar fi “body”, “table”. Elementele pot contine text, alte elemente sau pot fi goale. Un exemplu de elemente goale in HTML este “br”, “hr”.

Exemplu:
XML:

<mesaj>acesta e continutul text al elementului mesaj</mesaj>
<scrisoare>
<plic>acesta e un element din interiorul scrisoare</plic>
</scrisoare>


HTML:

<body>asta e textul din body</body>


Declaratia unui element are urmatoarea sintaxa:



<!ELEMENT nume-element categorie>
sau
<!ELEMENT nume-element (continut-element)>

Elementele goale sunt declarate folosing cuvantul cheie EMPTY.
<!ELEMENT nume-element #EMPTY>


Exemplu:

DTD: <!ELEMENT hr #EMPTY>
XML: <hr />


Elementele doar cu caractere.
Elementele doar caractere sunt declarate folosind #PCDATA:

<!ELEMENT nume-element (#PCDATA)>


Exemplu:

DTD: <!ELEMENT test (#PCDATA)>
XML: <test>aici intra test</test>


Elemente cu orice continut
Elementele sunt declarate folosind cuvantul cheie ANU si pot contine orice combinatie de date parsabile:


<!ELEMENT nume-element ANY>


Examplu:

DTD:<!ELEMENT note ANY>
XML: <note>or1ce t3xt</note>


Elemente cu copii
Elementele cu unul sau mai multi copii sunt definite cu numele copiilor intre paranteze:

<!ELEMENT nume-element (nume-element-copil)>
sau
<!ELEMENT nume-element (nume-element-copil,nume-element-copil,.....)>


Examplu:

DTD:<!ELEMENT note (to,from)>
XML: <note>
<to>destinatar</to>
<from>expeditor</from>
</note>


Cand copiii sunt declarati intr-o secventa separate de virgule, copiii trebuies sa apara in acceasi secventa in document. Intr-o declaratie intreaga, copiii deasemenea trebuie declarati, acestia putand avea la randul lor alti copii. Declararea intreaga a elementului “note” va fi:



<!ELEMENT note (to,from)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>


Declararea unei singure aparitii in documentul XML a unui element

<!ELEMENT element-name (child-name)>


Exemplu:

<!ELEMENT note (message)>


Exemplul de mai sus releva ca elemntulcopil “message” trebuie sa apara o singura data si numai in interiorul elementului “note”.

Declararea minimei aparitii a aceluiasi element

<!ELEMENT element-name (child-name+)>


Examplu:


<!ELEMENT note (message+)>


Semnul + declara ca elmentul “message” trebuie sa apara cel putin odata in interiorul elementului “note”.

Declararea aparitiei de 0 sau mai multe ori a aceluiasi element

<!ELEMENT element-name (child-name*)>
sau
<!ELEMENT element-name (child-name?)>



Exemplu:


<!ELEMENT note (message*)>
<!ELEMENT note (message?)>


Semnul * declara ca elementul “message” poate sa apara de 0 sau mai multe ori in interiorul elementului “note”.

Declararea unui element posibil
Exemplu:


<!ELEMENT note (to,from, message|body))>


Exemplul de mai sus declara ca elementul “note” trebuie sa contina elementele “to”, “from” si ori “message” ori “body”.

Declaratia continutului amestecat
Exemplu:


<!ELEMENT note (#PCDATA|header|message)*>


Examplul de mai sus declara ca elementul “note” poate contine 0 sau mai multe aparitii ale caracterelor parsabile, elementele “header” sau “message”.

Atributele
Atributele ne dau mai multe informatii despre elemente.
Atributele sunt mereu pozitionate in interiorul tagului de inceput al unui element.
Atributele vin in perechi nume=”valoare”.

Exemplu:


<plic forma="extensibil"></plic>


O declaratie de attribute, are urmatoare sintaxa:

<!ATTLIST nume-element nume-atribut tip-atribut valoare-implicita>
Exemplu:


DTD:<!ATTLIST payment type CDATA "check">
XML:<payment type="check" />


Tip-atribut poate avea urmatoarele valori:

Value     Explicatie
CDATA     Valoarea este format carater
(en1|en2|..)     Valoare trebuie sa fie una din lista
ID     Valoarea este un ID unic
IDREF     Valoarea este ID-ul unui alt element
IDREFS     Valoarea este o lista de ID-uri
NMTOKEN     Valoarea este un nume de XMl valid
NMTOKENS     Valoarea este o lista de nume valide XML
ENTITY     Valoarea este o entitate
ENTITIES     Valoarea este o lista de entitati
NOTATION     Valoarea este numele unei notatii
xml:     Valoarea este o valoarea predefinita XML


valoare-implictia poate avea urmatoarele valori:

Value     Explicatie
value     Valoare implicita a atributului
#REQUIRED     Valoarea atributului trebuie inclusa in declaratie
#IMPLIED     Atributul nu trebuie inclus
#FIXED value     Valoarea e fixa


Exemple:

1. Specificarea unei valori implicita e unui atributSpecifying a Default attribute value

DTD:<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">
XML:<square width="100" />



2. #IMPLIED

DTD: <!ATTLIST contact fax CDATA #IMPLIED>
XML: <contact fax="334-334422" />


3. #REQUIRED

DTD: <!ATTLIST person number CDATA #REQUIRED>
XML: <person number="5677" />


4. #FIXED

DTD: <!ATTLIST sender company CDATA #FIXED "Microsoft">
XML: <sender company="Microsoft" />


5. valori enumerate ale atributelor

DTD: <!ATTLIST payment type (check|cash) "cash">
XML: <payment type="check" />


Entitatile
Entitatile sunt variabile folosite pentru a defini textul.. Referintele entitatilor sunt referinte catre entitati.
Urmatoarele entitai sunt predefinite in XML:

Referinte     Caracter
<     <
>     >
&     &
"     “
'     ‘


Probabil ce mai intalnita entitate in HTML este care reprezinta un spatiu gol.

Declaratia interna a Entitatilor

DTD:<!ENTITY writer "Donald Duck.">
<!ENTITY copyright "Copyright W3Schools.">
XML:<author>&writer;&copyright;</author>


Declaratia externa a Entitatilor

DTD:<!ENTITY writer SYSTEM "http://www.w3schools.com/dtd/entities.dtd">
<!ENTITY copyright SYSTEM
XML:<author>&writer;&copyright;</author>


PCDATA
PCDATA inseamna parsed character data. Ganditiva la datele aflate intre tagul de inceput si cel de sfarsit al elementului XML.
PCDATA reprezinta textul ce va fi parsat de catre parser-ul XML. Tagurile din iteriorul textului vor fi tratate ca marcaje si entitatile vor fi extinse.

CDATA
CDATA deasemenea inseamna date. CDATA este textul ce nu va fi parsat de catre parserul XML. Tagurile din interiorul textului nu vor fi tratate ca marcaje si entitatile nu vor fi extinse.

Pentru a valida schema DTD recomand folosirea plugin-ului XML parser(ce contine si DTD schema) a softului Eclipse.

Atasat aveti un exemplu de fisier XML impreuna cu schema sa care sunt deja verificate.


_______________________________________


pus acum 16 ani
   
Pagini: 1  

Mergi la