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 |
|
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;©right;</author>
Declaratia externa a Entitatilor
DTD:<!ENTITY writer SYSTEM "http://www.w3schools.com/dtd/entities.dtd"> <!ENTITY copyright SYSTEM XML:<author>&writer;©right;</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 |
|