Anda di halaman 1dari 408
qald39 Lee Anne Phillips Traducere de loan Bledea si Eugen Sipos HIN Teora © Copyright © 2001 Teora Toate drepturile asupra versiunii in limba romana aparfin Edituril Teora. Reproducerea integrala sau partialé a textului sau a ilustratilor din aceasté carte este posibila numai cu acordul prealabil scris al Edituril Teora. Authorized translation from the Enghlish language edition entitled Special Edition Using XML, published by QUE Corporation. Copyright © 2000 ts reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher. Romanian language edition published by Editura Teora Publishing [transiator]. Copyright © 2000 Teora Calea Mosilor nr. 211, sector 2, Bucuresti Fax: 01/210.38.28 ‘e-mail teora@teora.kappa.ro Teora — Cartea prin posta CP 79-30, cod 72450 Bucuresti, Romania Tel: 01/252.14.31 e-mail: cpp@teora.kappa.ro Coperté: Gheorghe Popescu Tehnoredactare: Marius Stuparu Director Editorial: Diana Rotaru Pregedinte: Teodor RADUCANU, NOT 4845 CAL XML, TOTUL DESPRE ISBN: 973-20-0604-8 Printed in Romania | | | | Cuprins PARTEA I Fundamentele XML 1 Introducere in XML Sintaxa XML... a Definite ipurlor document XML... Extinderea definitiel tipului documencului prin modificiri locale Crearea unui DTD pornind de la zero Zone de sume XML Scheme XML, XPath 9 XLink si XPointer « PARTEA AII-A Manipularea XML 10 DOM (Document Object Model) ~ Modelul document obiect SAX (he Simpl API for XML) ~ API ipl pentru XML 42. CSS1, CS82, DSSSL, XSL . ope 13. Foi de stl in cascada si XML/XHTML 14 Usilizarea generafiei urmatoare de foi de stil extensibile XSL PARTEA A III-A Integrarea XML cu alte tehnologi 15 Obsinerea informatiilor despre utilizator 16 Securitate si confidengialitate : 17 Utilizarea facilititilor server-side —Java - 18 Utilizarea facilitiilor server-side ~ ActiveX 19 Utilizarea brokerilor de obiecte comune 20. Planificarea resurselor pentra intreprinderi i PARTEA AIV-A Alte aplicatii ale XML 21 RDF (the Resoures Description Framework ~ deserieri resurselor) 22. XHTML indetaliu ...... - 28 Utlizarea SMIL (The Synchronized Multimedia Integration Language ~ limbajul de integrare multimedia sincronizat) 24 Usinares MathML (The Math Markup Language ~limbajol cde marcare matematic) 25 Accesibilitare ... : 26 — Cooperarea in domeniv gi resurse ..... 27 Coneluaii- viitorul in Web Anexa A Referinge XML/XHTML XML AnexaB Instrumente pent eae vansformarea XMLXHTML « AnexaC Entiiticaracter .- Anna D Refeige CSS CSS? Glosar ; Index 183 12 30 61 93 an 129 143 169 206 226 257 283 304 = 332 347 379 405 423 448 460 1481 500 = 539 582 610 626 639 678 687 709 750 762 Despre autoare Lee Anne Phillips a fost interesati de prelucrarea datelor side retele ined din feric in care, la primal curs de programare, la UC Berkeley, profesorul a convins-o e% are talent pentru aga ceva gi ar trebui si renunte la planurrle sale pentru o carieri in psiho- Togie lingvisticd gi, in schimb, si ,aranjeze" big, De Ia UCB a trecut prin mai multe stadii ca programator de sisteme mainframe, proiectant firmware, administrator de refea, athitect software, manager de proiect $i programare sin final, consultant, pin ‘ind a simpit nevoia si imp&rtigeascé toate acestea cuiva. Locuieste in zona Golfului San Francisco ~ locul ei de nagtere ~ este licengiad in informatica si are un deosebit simg al umorului, Pucesi vizita pagina sa Web, la nttp://wva. eeanne.con/. INTRODUCERE In aceasta introducere Cui ii este adresaté cartea Seruccura cir Convengii utilizate in carte ‘Aceasti carte este dedicat ingelegerii noianului de standarde si propuneri concurente (si ‘uneori contradictori) legate de XML care plutese pe marea posibilititlor oferite de XML. Molte dintre faciitgile cele mai dorite de utilizaror (dumneavoastrd, stimate eft tor) sunt furnizate cu ajutorul a mai multde sase qstandarde" diferite, cu grade de suport ‘atlate, provenind numai de la mind de furnizori, Este suficient pentru a vi face si va smulgeyi pirul din cap. Dar conceptele XML sunt aproape la fel de simple ca si cind ayi lua un creion rose si agi face adnotiri la un text in timp ceil citti. Spre deosebire de HTML, care are un voca- polar foarte restrins, XML vi oferi o libertate aproape nelimitatd pentru a vi descrie documentele in modul dorit de dumneavoastri XML devine rapid limbajul comua al Web-ului, noi furnizori alieurndu-se zilnie grupislipline de succes a XML. Aceasti carte este proiectati penteu a vi ajuta si vi ali- turapi lor Multe corporagii importante, cu resurse semnificative, au investit deja in XML, printre ‘care sunt $i uniidintre greii din domeniu. Microsoft, IBM, SAP, Netscape, Oracle, Sun Microsyscems, guvernul SUA, armata SUA ~ lista seamind cu topul celor mai bogate 15000 de companii gi agentii guvernamentale majore pe care putini dintre not isi pot per mnite si le ignore, chiar daca nu avem de a face cu cle in mod direct. Santem intron moment critic in deavoltarea XML; standardele sunt propuse si pro- snulgate atat de repede inedt nimeni nu le mai poate urmiri, Exist uneori propuneri de Ia membrii Consortiului World Wide Web (W'3C), alternative venite de la persoane fir eto afliere, inifitive ale unor grupuri de utlizator sineercari de a le impica pe toate. ‘Aceastd carte vi ajutd s¥ ordonati toate acestea, vi'spune unde si ciutasi mai multe infor- sat care s1 vi ajute si tinetipasul cu noile dezvoltiri pe misura aparitici acestora si va ajutdla construirea unei scheme conceptuale pentru a va permite si incadrafinoile infor Imai Inu-o structur existent, pe misura ce vei inainta. Distracie plicuts. 8 Introducere functioneze este suficient de dificilt chiar dacd mu se iw in caleul sutele de sisteme par ticulare provenite de la diversi producitori individuali. Dow’ abordiri principale sunt deja prea multe. Asemenea instrumentelor metrice $i SAE, mesele noastre de lucru sunt suficient de aglomerate cu componentele necesare chiar fard sine mai batem capul dacit pentru o piulipd avem nevote de o cheiefixi de 19 mm sau de una de 3/4 inci. Prin promulgarea de standarde; W3C asgurexienja unos nivel de inceropeabili- tate de bazd intre aplicatile Web. Producitorii care se abat de la standarde riscd si pari ridicoli pin la urmé, orieat de mult ar incercas¥ igi impuni dectzile sau propeiilestan- darde asupra celorlaly Deci XML i standardele legate de acesta sunt toate compromisuriintre unele metodo- logit ideale, platonice, si incercarea curajoasi de a supravieyui pe Web. Multe grupuri fucra din cadrul W3C au avut uneori trasce diferite introducind incompat inconsecvente chiar in standarde, iar acestea au fost sau au eliminate la analiza fi Intre timp, noi trebuie si perseverdim sisi facem aplicariile Web si functioneze. Ele tre- buie si functioneze si asta vor face. Deci haideyi si ne apucim de lucra. Dupi ce vom Tua viteza, vom fi gata pentru o calitorie palpitanti. de Cui ii este adresata cartea Aceasti carte este destinat® proiectanilor Web profesionigt, programatorilon, spe | cialigtilor in baze de date si consinut si tuturor celor implicati in publicarea sau dist buirea de informarii prin orice tip de rerea. XML si standardele legate de acesta ofer’ ‘comunititii Web un mad valoros gi flexibil de organizare si partajare a datelor. lati citeva comunititi de utilizatori potentiali >» Furnizori si autori de consint > Utilizatori de baze de date > Programatori > Proiectanti Web > Oameni de stiinga gi studenti > Cercetitori si analisti_ » Burnizori de motoure de obutare gi indenare > Oricine doreste si inveye mai multe despre XML gi viitorul Web-ului Structura cartii Cartea este formati din sase sectiuni importante: = Parcea I, ,Fundamentele XML*, vi prezinti conceptee si facilitate necesare uilizis cficiente a XML si a standardelor legate de acesta Partea 2 Il-a, ,Manipularea XML", examineazi instrumentele utilizate pentru con- trolul structurit $i aspectului documentului XML in sine, modelul document obiect (Document Object Model), foile de stil (Style Sheets) si SAX (the Simple API for XML ~ API simplu pentru XML). ww Parteaa Illa, ,Integrarea XML cu alte tehnologii, studiaz’ aménuntitaplicatile eu baze de date gi server-side pentru care XML se potrivesce perfect. Exemple din lumea fn prezent, toi cei care sunt on-line depind de W3C. Crearea de aplicayii Web care si | Introducere 9 reali peezintd aspectele esengiale ale aplicaillor care functioneaza in mediul de afaceri de ti In plus, problemele importante ale confidenyalitigi si securitigi on-line sunt dis- cutate in contextul practicilor si problemelor actuale din domeniu. mParteaa IV-2, ,Alte aplicaii ale XML", completcaza golurile cu discusii despre modul de integeare in XML a documentelor Web existente, prin utilizarea XHTML, despre tile de a crea vocabvlare descriptive standard utilizind cadrul de deseriere a ayallor (Resource Description Framework) si limbaje multimedia si stinyfice care erimodul in care XML si standardele legate de acesta pot simplifica sarcinile existente abi [cd posible interactiuni noi la care niei nu afi visat. fn incheiere veri cerceta cum sate KML si fack Web-ul mai accesibil pentru oricine si veti vedea incotro este posibil repre dezvoltarea Web in viitorut apropiat. cle oferi.o referinya rapid, aflata la indemin’, despre fundamente demontate cele mai clementare piri, alcituind astfel un memorator rapid referitor la modul izare a unei anumite acyiuni sau la aspecrul unei anumite caracteristii. Conventii utilizate in carte “Aceasti carte utilizeazi convengii speciale pentru a v3 ajuta si beneficiagi la maximum de ea side XML. Conventii de text : Tipurilediferire de caractere din accasté carte identified termeni si alte obiecte speciale, ‘Aceste tiputi de caractere speciale includ urmétoarele: Tip Semnificatie Cursio "Termeni noi sau expresii definite pentru prima dari. Un termen scris cursiv si urmat de un numar de pagina indica pagina la care termenul respectiva fost definit pentru prima dat. Worospatiat ‘Codul, iyiile i adresele Web apar cu acest font, indicind faprul cd acestea sunt lucruri care fie vor fi introduse in cal- culator, fie vor fiafiate pe ceran. “Anumite intrie pe care se presupune c& utlizatorul webuIe siile introdued apar cu acest font. Wonespatiat alain 10 Introducere Elemente speciale | Partea | LLee/Anne.com din domeniu, pe care altfel s-ar putea s& le omit). Acestee V8 vor ajuta $8 Wooriowee!®scrietj in XML repede gi eficient. Toles Siblilaad clemante Grora vebule ob le scandal ate, altel este pos “38 trecei peste ele atunc cand v8 grb. In general, ntelereprezintd pent | gumneavoastra un mod de a obtine niste informal suplimentare despre un | sublet far8 8 VB oboe eee | Fundamentele XML Introducere in XML Sintaxa XML Definitiile tipurilor documentului XML Extinderea definifei ripului documentului prin modificéri locale Crearea unui DTD pornind de la zero Zone de nume XML Scheme XML ‘XPath XLink si XPointer 1u ,Studii de caz*. O wea XML. O sectit~ i dezvoltirii XML De asemenea, fiecare capitol se incheie cu o sectiune ,Depana sectiune »Depanare" v3 ajuti si depisiti problemele wzuale in util ne ,Studii de caz vi arati modul in care subiecrul capitolului se api zilnice sau furnizeazd informarii suplimencare interesante sau utile, Introducere in XML CAPITOLUL st capitol Cu XML totul devine posibil Limitarile HTML Redefinirea modalititilor de dezvoltare Web Relagia intre SGML, XML si XHTML XML in teorie gi practic’ Exemple practice in XML Dezvoltiri viitoare © deseriere concisa a originilor XML Cu XML totul devine posibil Comunitates Insert invests o cate enow de energie, bani efor tn de voltarea unui set vast de standarde legate in jurul XML (Extensible Markup Language ~ | limba) de mareare extensibil, generaia urmatoare de metode de transmitere a docu- mentelor pe Web, Numai in 1999 au fost publicate sau propuse mai multe standarde gi proiecte de standarde, aproape toate legate de XML, decit in toatiistoria Consorjiului World Wide Web (W3C), grupul responsabil cu standardele Web. In 2000, vor fi publi cate mai multe zeci de standarde legate de XML, dublind numarul de standarde W3C gi extinzind puterea de coeziune a XML in toate colfurile World Wide Web. XML si sandardele legate de gests vi permit si plocui su si evtndey sistema de stichetare brevetate, cum sunt Cold Fusion de la Allaire si Active Server Page (ASP) de le Mirosofsculimbae independent de patormnt caress posse porta s probloos spatiului din pagina dumneavoastra. in loc de (sau pe lingi) inserarea de etichete spe- ciale sau comentarii care si explice semnificayia unui anumit cimp, cimpul in sine poate deveni mai sugestiv ata pentru aplicayi, cit si pentru cititori, Deci,o list de prequri cu comentari, care in HTML poate arita astfel < > tes Feuet ==> | | Introducere in XML 13 ies Pret > <1) poate fi ficuta si arate astfl: cListaPreturiFructes -Fructoileres/Fruct> sPrets2sciPret ‘Mai sus avem tun mic exemplu al accesului mai ugor la date care poate fi realizat prin uti- lizarea XML. Nu numai ci informatia este mai putin dezordonatd si mai clar prezentat3, dar si campurile por fi identificate de citre un motor de civtare. Deci, merele de mancat pot li deosebite rapid de Marele Mar (orasul New York) sau de maul discordiei. In timp Ce in HTML trebuia si potrivim datele in patul procustian al unei defintii de listi HTML pentru ca aceasta si aibi aspectul dorit de noi, in XML putem lisa structura de date si Invorasci chiar din date, iar pentru formatarea paginii si utilizim standarde legate de XML, cum ar fi foi de sti in cascada (CSS ~ Cascading Style Sheets) sau limbajul exten- sibil al foilor de stil (XSL - Extensible Stylesheet Language). De asemenea, versiunea XML ne permite si pistrim informayii despre tipul datelor introduse in fiecare cmp. HTML ne permite si identificim doar sase tipuri de date: abrevieri, acronime, adrese, citate, enumerlri si variabile. $i chiar si acestea sunt cel mai freevent utilizate (in mod ‘resit) pentru a modifica formatirile decit pentru a identifica un camp logic. Limitarile HTML O dati cu dezvoltarea Web-ului din ultimii 10 ani, utilizatorii au descoperit din ce in ee mai multe moduri de a comunica intre ci, Temelia acestor schimburi reciproce a fost HTML (Fiypertext Markup Language) ~limbajul de marcare hipertext, HTMLa fost uti- lizat pentru a prezenta orice, de la lucriri stiingifice la cataloage on-line gi poezii. Totus, structura paginilor Web bazate pe HTML spune putin despre continutul efectv de infor- raf, Exemplul de defingie de lisek prozentat anterior ilustreaza faptul ef majorit ctichetelor oferite de HTML influenseaz8 numai macheta bruti si prezentarea textului pe pagini, si chiar si informayia de machetare est inflexbili. Etichetele sunt utlizate descori pentru a reprezenta informagii in moduei care forgeazd sau incalcd chiar ingelesul ctichetelor. Lista HTML prezentaci anterior nu contine, de exemplo, defini, ci a fost uti- lizati numai pentru a ingira inte-un anumit mod fructe gi preyuri Deci, au fost multe paliative fa testarea si impunerea unor genuri de ordine flexibilé asupra datelor continue in paging. Multe dintre aceste solutit ad hoc, cum ar fi ASP sat Cold Fusioa, au fost destul de reugite. Totusi, in cele mai multe cazuri ele au reprezen- tat abordiri brevetate care trebuie reinventate pentru fiecare domeniu nou de probleme sau cer utilizarea de software si hardware al unui anumit server, care s-ar putea si nu intr ia planurile dumneavoastel de achiziti and acum, probabil eX v-atilovit deja de limitirile HTML. Poate ci ati simi frastrarea de a nu fi capabil si descrieti exact ceea ce doriti si faceti utilizand structurile disponi- bile pentru dumneavoastrd ca proiectant Web sau autor. Poate ati fost forrat si 14 Fundamentele XML mecanisme inaccesibile, cum ar fi cadve sau tabele, pentru a constrnge pagina dum- neavoastti la o macheti tipografick nesigur’, sau poate ci api utilizat etichete urdte de preformatare
 sau de text scris la masing  pentru a alinia corect datele. XML.
‘ste un standard nou care v3 permite si extindefi puterea descriptiva a documentului
dumneavoastri aproape oricum $i si il modificafi pentru a se potrivi diverselor scopuri
XML face posibile multe lucruri care inainte erau doar dorinte vagi.

 

 

 

 

imbunatatirea preciziei cu XML

XML va permite si descrieyi exact documentul dumneavoastri intrun mod care poate
Fi yingeles” de un calculator. Cu toate ci oamenii nu au probleme cu studierea unei pagini
sideducerea semnificafci unei anumite machete, cum ar fi de exemplu o facturi, ealcu-
Incoarele nu sunt chiar ati de inteligente, Ele su nevoie de ajutor. Etichetele XML
descriptive, cum ar fi cvanzator> sau  au mult mai mult ingeles pentru caleulatoare
decit etichetele macheti anonime furnizste curent de HTML. XML furnizeazi un
tmecanism, definijia de ip pentru document (DTD ~ Document Type Definiior
“4 permite si pari informatie despre srucrara dar dumesvoused cu
dori

 

   

Validarea structurii documentului cu XML

XML vi permite si foryafi validarea structurii documentului dumneavoastra. Puteri
impune prezenga anumitor clemente in timp ce altele le faceti opfionale si si legal o
reat a sled Gu ake cuvine, das dongs includep Flemene ABC. pute obliga o
insula Element XYZ sl isfet St ek ABC et presen, stuns XY2 poate fi

Flexibilitatea machetelor cu XML

XML face posibila modificarea reali a prezentirii documentelor in concordangi cu
scopul pentru care sunt create. In loc si vi constringd si decideyi acd un set de date este
reprezentat mai bine ca o lsti sau ea un tabel, 1! puteti reprezenta in diferite moduri
pentru scopuri diferte. Pe o pagind tipirici, un tabel este folositor ia hiperlegituile
sunt inutile, dar intr-un browser audio pentru orbi, un set de liste navigabile prin hiper-
legituri poste fi mule mai aecesibil, Introducerea acestor date intr-o bazi de date poate
necesita normalizarex acesteia i alte transformari care ar fi inutile in alte situayi. O sin-
igurk sursi XML poate asigura toate aceste utiliza

 

 

Obtinerea independentei de platforma cu XML

XML este complet independent de platforma si este extrem de robust. Aceste ceringe nu
pot fi satisficute de nici un alt mecanism de transport de date sau de procesare dis-
iribuitd. XML este bazat pe text. Puteri studia datele neprelucrate sisi le ingelegeyi per~
fect. Deoarece XML deserie 0 simpli baza de date cu fisier plat, orice aplicafie care uti
lizeaza orice tip de accesare a bazelor de date poste utiliza XML ca numitor comun
pentru transportul, generarea si translatarea de la XML pentru transfer si, in acelagi timp,
poate utiliza intern formate brevetate sau normalizate. Aproape toate aplicatile cu baze
de date au deja capacitatea de a crea fisiere place delimitate prin virgule, echivalentul
Ingegitrir bazcor de date des extinders inglelor in ctchete SMI este aproape

 

 

Introducere fn XML 15

Descrierea documentelor orientate spre obiecte cu XML

Cu toate od succesul pe termen lung al tchnicilor orientate spre obiecte este ined in dez~
fatere, XML se dezvolti in moduri care, in cele din urm’, vor suporta ca optiune pro
gramarea orienta spre obiecte si metodele de proiectare. Cu toate cf standardul acto
ae putin imbunitifis {ayk de modell standard cu blocur secventiale, iifiative eum ar
SOX (Schema for Object-oriented XML) ~ scheme pentru XML orientat spre obieete,
tetaitele echivalente vor furniza acces deplin orientat spre obiecte pentru elementele
gen bazi de date si alte elemente ae structurilor XML.

Redefinirea modalitatilor de dezvoltare Web

HTML opereazi acum ca si un fax virtual complicat si sofistcat, care la inceput a fost
projectat cu intentia de a permite oamenilor de sing3 st impart inte ci a cerere copii
Ti luctitilor stinyifice. Etichetele machetelor HTML reflecta structurafizicd a unei astel
de locrir, iniial 0 schigd simpld avand asociate texte si imagini, Se eticheteaza anteturi,
paragrafe, liste tabele si ilustrajii. Macheta preseabilit este linia, cu vexeul eontinuind
Jn mod obignuit in josul pagint

Cele citeva etichete semnificative, <1TE>,  gi altele sunt destinate si scoaté in
tSidenté lucruri precum citate din articole sau cir, 0 preocupare de studi sau adress
Stnoruluis Celelatte elemente care alcituiesc o lucrare stingifica, cartelele 3x5, caleulele
jl elasficiile, ingelegerea adn a strvcturi tem, sunt aruncate la gun in drurmal spre
sea arsificiali eu hiperlegituri. Nu prea avem cu ce si lucrim, Toate celelalte,intrea~
gastructuri a Web-ulii actual, au fost ingrimadite peste acel design iniial. Este un trib-
Be dus primilor proiectanj faptul cl torul mai funcrioneaza gi chiar destul de bine
“Totusi, diferenta dintre text gi date este ci datele au structuri si context, Fiingele umane
pot recunoagte sau extrapola stuctura si contentul din indieitvizuale, deci pentru puss
Fireractiune umand, HTML este suficent. Dar caleulatoarele nu gindese in acest mod.
Side fapr, nu prea gindese.

   

   

  

Structura si granulozitatea datelor

XML este proicctat si permiti ea orice fmpirire semnificativa a unui document si fie
Jearifceed fird ambiguititi ca parte a unei structuri arborescente coerente care poate fi
dutzatdatit de om, eit side calculator. Dect o nsreagi masind poate fi descrisa caw lisct
‘ompleti de piese, tol incepind de la motor si pind la ultima piulits iind desficut in
Tisedde componente. Sau, 0 carte poate fi descrisi ca 0 colecyie de capitole, paragrafe,
note de subsol,ilustragi si toate celelalte elemente care 0 aleituiese. Este un concept
luton eu toste cf au poate confine ine structuri de date care nu sunt arborescente.
Multe abstractiaaei nu pot fi reprezentate ca arbori. Ingelesul conceptului ~onoare
poate fi elar pentra tn puscas marin, dar nu il puri desface in plryi componente ca pe
Srmazind, eu toate c& exist concepte corelate care fae cunoscut conceptul de onos
Deel sonoare” este fird indoialé legat de ,fidelitate" fnts-un anurit fel, dar relayia exace
1 dispare in atat de indrigita ceapl a proiectangilor de reyele pe care filozofit 0 pot
extrapola in cirti interminabile

De asemenea, Web-ul in sine nu este un arbore, ci o retea extrem de complexa de noduri
independents, legate intr-un graf orientat, firi un anumit punct de pornire sau 016 Fundamentele XML.

ridicing, (Figurile 2.1 si 2.2 din capitolul urmitor poate ci vor clarifica acest lucru.) Un
atbore are o Singur ridicind gi fieeare ramurl este separatd

Aplicatiile gen baz de date ale XML, cum ar fi descrierea pirtilor componente ale unei
masini, sunt de obicei mai directe decit descrierea obiectelor complexe, cum ar fio carte.
Poate pirea ciudat si vA ginditi ci o carte este mai complicati decit 0 masini, dar este
adevirat. Problema este una de excludere, adie asigutaceafaprului ci un obiect nu poate
‘i apart, in mod necorespunzitos, ea unuldintre proprii sli descendengi. Desi o masind
are de obicei un singur motor, iar un al doilea motor nu este de obicei o parte compo-
nenti a primului motor.

“Torugi,o carte poate consine referinfe la alte cig, poate si fie parte aunei seri sau poate
filo carte in mai multe volume. Aceste city pot sf se refere la randul lor la cartea origi
nali. Designul tipografic al unei cirti poate contribui la text in moduri subtile.
Structure individual eare alekeuiese o carte pot fi legate intee ele in forme estetice com-
plexe sau convengionale care sunt intercalateneliniar in agezarea tipografies, Notele de
subsol si notele de final sunt doar dou’ exemple,

Un text medical poate contine, de exemplu, pagini transparente suprapuse, cu scopul de
a putea fi vizuaizate ati individual, eit si simultan. O carte pentru copii poate avea piryt
destinate decupirii si manipulirii bi- sau tidimensionale de citre cititor.O carte poate
congine ilustrafi care si post i vizvalizace cu uguringS numai cu un aparat stereoscopic.
Un cuprins sau un index nu constituie, strict vorbind, parte a textului liniar al unei ciryi,
ci mai degeabi un instrument atagat pentru trimiteri utile la continutul citi. Un glosar
poate fi necesar pentru ingelegerea completi a textului dar rarcori este citit secvential,
Sau chiar niciodata, © bibliografie sau o refering’ bibliografici pot face referiri la
aproape orice tip de document sau obiect, inchusiv la filme, inregistrari audio, articole
din ziare sau reviste, ca sila cary, nici unul dintre acestea nefiind conyinut in text, dar
putind fi atasate cirti

Pe scurt, o carte in utilizarea efectiva s¢

 

    

 

  

 

3 mind mai mult cu un graf directionat decit cu
un arbore, cu toate ci ar fi posibildeserierea sa sccventala pentru a putea fitipérita. Nu
existd un punct de pornire definit atunci eind o eitiis puteyi trece de la 0 pagind la alta
nerespectand 0 anumiti ordine gi fri si aveti in mince un anumit scop. Este 0 parte a
tunel rejele formate din alte carti si necesiti o adaugire metafizici, cultura, Ie obiectul
Tieie pentru a putea fi fngeleast. Nu pute crea o bad de date care 38 eovespunndd roma-
ulus , dn cdutarea timpului pierdur* de Marcel Proust firk a pierde mult la conversic.

maging, pe de alti parte este in mare misuri suma pirtilor si subansamblelor sa
comportamentul ei este definit complet de legiturile si componentele incorporate

Conceptul de descendenti

Un descendent este un subansamblu sau 0 parte, daci sunteti mai obignuit eu obieetele
concrete decit cu exemplele abstracte. O masina este formati din gasiu, motor, ror,
transmisie si o multime de alte componente, toate conectate intr-o ordine strict multe
dintre ele iind la rindul lor construite din alte piese. Un motor are un bloc, pistoane si
multe ake dispozitive cum ar fi cerburatoare si distribuitoare staate la acestea. Orice
sectiune sau component a intregului ansamblu, eare poate fi desert, este un descen-
dent al obiectului fizic ,masina. Fiocare poate aves sau nu deseendengi. Un gurub, de
exemply, este o frunad terminala a arborelui maging.

e de alts parte, intr-o carte, un paragraf este posbil si nu ail

   

 

 

 

   

un paragraf ca descen-

Introducere in XML 17

 

dent direct, dar poate avea o noti de subsol, iar acea noti de subsol poate fi at de mare
fneit i aiba paragrafe in interioral ei, Dar pot fi permise notele de subsol in interiorul
paragrafelor din note de subsol? Probabil cd nu. Un paragraf dintr-o notd de subsol este
altceva decit un parageaf dintr-un text? XML are dificultiqi inevitable cu excluderea,
deoarece a fost eliminatd special din definigia limbajului.

XML trebuie si se bazeze pe o constructie atenti a DTD-ului pentru a evita plasarea
telementelor copil in locuri unde nu trebuie si apari, dar in anumite exzuri aceasta strate-
gie esueazi, Uneori trebuie si vi bazagi pe bunul simy al utilizatorului pentru a evita
problemele.

 

EMD |p cs vs ml neo prem LEE i i
[trebute $§ se sjurio$ la un echo intre puterea expresiy8 al limbajulu gi ©
FUsurinka Gu core poate ublizat si implementat, Excuderea fecurs\8 este 0.
| problems diicid. Prfectunea descriptiv8 este probabil mposbil in toate situs
tiles in parc dé vedere teretc Teotéma lui Goede), dea alegerea nul nivel <
{de imperfectune fap de atl este'o decize Ge prolacare. XML a fost prlectat
‘penta ff ast utl ct let, ambele find citer inginerest! solide, sb ca orice
‘Greate umeng, este un compromis inte doringa pentru caraceristicl abundente si
“realitates economics 5 4 ‘i

Relatia intre SGML, XML si XHTML

XML este un metalimbaj, un limbaj special care vi permite si descrieti complet o clasi
de alte limbaje, care la randul lor descriu documente, Este ca o insuli in marca SGML,
un alt metalimbaj, mai puternic. XML este definit ea 0 ,submulyime a SGML, ceea ce
inseamni ci pentru a crea XML nu se adaugi nici o componenti la SGML, dar sunt
climinate componente pentru a face limbajul mai usor de analizat, ineles gi utiliza.
XHTML este 0 productie 2 XML, aga cum HTML este 0 producyie a SGML.
Deoarece XML este proiectat si fie extensibil, imbajele create cu XML sunt gi ele extensi-
bile, Ca in SGML, descrierile limbajului create cu XML se oumese DTD-uri, definitile
de tip pentru document (Document Type Definitions). Vesi afla mult mai multe despre
cle mai tirziu, Dar pentru inceput, aruncay o privire asupra SGML, izvorul XML ial stan-
dardelor legate de acesta,

SGML

SGML (Standard Generalized Markup Language), limbajul de marcare generalizat stan-
dard, este un strimos mai puternic al XML si, de asemenea, un metalimbaj uelizat pentra
adescrie limbaje aplicatie. Cu toate ci are multe caracteristici utile, complexitatea limba-
jului il face extrem de greu de utiizat si invirat. Nu este pe deplin adevirat ¢& nu a fost
adiugat nimic la SGML pentru a crea XML. De exemplu, cind in XML a fost nevoie de
declarapile multiple ATTUiST definind acelasi ELEMENT, cle au fost adugate la SGML si
poi reprelucrate in XML, astfel incit puteti iae¥ numi XML o submulfime a SGML.
Proiectangii de limbaje sunt uneori ingenios
{in ciuda utiizarii in multe corporatii importante si organizayii guvernamentale, costul si
dificaltateadeinvifare si vtlizare a SGML, Hy Time, Text Encoding Inative (TEI) 3
a altor limbaje complexe de descriere a documentelor au ficut dificil pentru amatori si18 Fundamentele XML

conganizayle mai mich decesarea imensei puteri a acestor limbaje pentra formacsees
ee tinicturate: XML este o incercare dea face accesibil nespecialigtilor eft mai mult
‘din puterea SGML gia celorlale limba. Un alt obiecty este crear simpli de iempe=
gin Bent stbile ale unui limba} document struecurat, astfel incSt costul editoazelos, val-
iMatoarelor si al altor instrumente sé devind accesibil oamenilor obignuigi.

tie acd profectl damneavoastd XML este legat de un domeniu important
‘LeeAnnecom  interogarea firmelor si asoclatilor importante in legBtur& cy nevoile acell
Hiecrumne™ domeniy poate dezvalui DTD-uri SGML existent in aceasté situate, acestea
‘Yor putea fi utiizate ca 0 baz’ pentru OTD-urlle XML si vor permite proiec=
tulul dumneavoastrd s8 se adreseze unel audiente mal mari dec&t dacd 2
fi pomit de la zero. Merit SB cercetaj in detaliv segmental durmeavoastrs
Ge pietd.

TBM, unul dint cei mai mari edtori din lume, eu documenta de sute de milioane de
agin necesare pentru calulatoarele i celeste sisteme ae sale a wlizat SGML din
Emel sale zile ca depozit de date gi motor de machetare inaintesspicii,
Bouvernal federal al SUA utlizeazi SGML pentru procurarea de componente, manuals
Stenntizarea licitagilor pentru contractele guvernamentale, inventarire gi multe alse
sacra de baze de date sofisticate. Fortele armate, programul spatial si Imprimeria
Gavernului SUA utilizeaz’ SGML pemtru a asigura interoperabilitatea si accesiblitarea
datelor.
Deourece XML este 0 submulfime a SGML, multe aplicaii codate iniial in SGML au fost
poate in XML In cele mai multe exzuri modifiirile necesare sant mai mule su tal
afin mecanice, cu toate ef exist unel dificult, Din motive tehnice, mule dintre sees
Prtbleme vor rezolvate prin simpiicareadesrirlor i reprezentares lor mai exact: Ca
sroiectant XML, poate va veqi trezi lucind cy DTD-uri SGML, deci obyineres unor
DirD.url SOME inceligibile vi va ajura in modificarea gi utiizarea acestora cu succes
“neji minte cl SGML a fost prezent de o lungs perioada de timp, cel putin comparatiy
aintiata de via a programelor de calculator. Multe probleme au fost deja rezolvate 3
Se Gnealate imense baze de utilizare. Aptitudinea de comunicare cu utilizatorti si sis-
au nals exisiente poste insemna diferenta dintre succes si eyee pentru incepitoril care
sis a pia. Cu toate cf XML poate fi riizat pentra accesarea bazelor de date SGML,
necesith totusi ceva mune’ de proiectare DTD.

 

 

  

 

‘Dacd segmentul dumneavoasi de plats congine agent sau contractor!
‘guveramentall, exist probabil OTD-uri SGML care s8 se potrveasc exact
fndcar cu 0 parte cin problema lor. in acest caz exist probabil rupur din
‘Gomeniy core 2u transiatat deja acele DTD-ur la KHL. Merits s8 v8 fecet|

temele de cas8 inante de a VB apuca de dezvotarea unul OTD XML. Poste

este deja dsponibil un DTD corespunzbtor

‘Sugestie deta

Nes

Cu toate cd nu trebuie si stti SGML pentru a invita si utiliza XML, se intémpls destul
oidesin vga de 2i cu 21a unui expert XML si mogifice DTD-uri SGML mogtenite sau

ce stente in DTD uri XML. Vefi invija suficient despre acest proces pentru arl realiza |

cu destuli

 

Introducere in XML. 19

  

( atenijonare este binevenitd Sc) Mute DYD-uri SGML sont imense debarece 17T

"poblerle coral se asesead cunt mar, NU V8 pity otepia natal

"Gras pron DTD SGML de 900 de papi pert dervtiren cra oechips ©
Se 20 de exper alucrt cnc nig s8 convert la XML into GupS-ariaz&.

| Sat patea 3 duteze un pc mal mut Pate un 9 sa chiar al mul

  

  
  

 

  

XHTML

XHTML (Exenible Hyparest Matp Language) Hino de matears rere

cextensibil este un limbaj de marcare asemanator lui HTML, definit ca un DTD XML.

{Hii eae definica un DTD SOME deci redtiniraca oplcaie XML ete Rad

ull stro lume XML. In particular, aceasta inseamni ci limbajul XHTML est exten-

Sil, pesmitind utlizatorilor si gropurilor de vilizatori si extinda limbajul ia modus

eficience. Implicaile aceseiextensibiliiti cuprind:

i Documente cu 0 singuri editae care incapsuleaza baze de date, manuale pentru uti-
lizatori tiparit si functionalitigt Ge afigare Web tateun siogur fisier, aaones
1 Oportunitii imense pentru tranzacyi extinse de comert electronic si automatizarca

schinbul informa wii vocabularele XML standardizate,

Un mod simplu de reutilizare sas conversie a multora dintre milioanele de pagini Web
HTML exisente, mentinand compatibilitatea cu browseree existente, dar permitind
exact open eae last asco bi XML-

sibiiateavalidSeii automate a paginilor Web XML, eliminnd complet mule erori
obignuite de codare, dar menginnd compatibiltatea cu browserele mmogtenite

1 Furizare de mec simple are pet We ae denvale pot st

face nevoile diverselor comunitiyi pe care le cuprinde, fri sk necesite addugiri paren-
ae ier tae bees daha na As ascetic diodes

 

 

 

‘Asemenea definigilor HTML actuale, exist versiuni strite, ranzitori gi eu cadre ale
DTD-urilor XHTML, XHTML este proiectat si se adceseze unui anumsit ip de proble-
me: cum se creeazi pagini Web XML care pot fi vizualizate cu browsere HTML obis-
nite, fir a renunga la avantajelefurnizate de XML.

‘Totusi, XHTML este aumai unul dintrelimbajele XML proiectate si se adreseze anu-
mnitor tipuri de probleme, Pe parcursul acestei cirti veyi cerceta alte exemple, limbaje
proiectate penttu a simplifica producerea de documente multimedia, de exemplu, eau,
texte cu conginut matematic.

 

XML in teorie si practicaé

XML este atét de logic incit va vei intreba probabil de ce a durat asa de mult pind si
fie inventat. O parte a spunsului este c& nogiunile de baza exist dE ec vein dar
au fost aplicace doar recent fiserelor de date ale calculatoarelor O listd azati pe com-
ponente, de exemplu, este o cerint’ obignuita pentru asamblarea oricirui dispozitiv
rmecanic complex. Dat ideea extinderit acestul instrument de hartie la unul clectronie gi
generalizarea conceptului pentru a putea fi folosit la orice obiect alcituit din parti com-
ponente, inclusiv la obiecte non-fizice, a fost o scinteiere de perspicacitate reprezenta-
tiva pentru progresul uman de-a lungul secolelor.

‘Oamenii organizeaz’ aproape totul in ierarhii, Este singurul mod de a aborda sarciniFundamentele XML

devir complexe, de la achizisionarea de proviaii pentru Departamentul de Apirare
si pind la conattutes de navete spatiale. Orice steuctu’ irarhici poate fi descrisi in
SIM, dela lista de componente care alcituiesc un avion si pan la structura corporatiei
IBM. Dar XML are si unele limitiri. De exemplu, nu este pe deplin orientat spre obiecte,
deci utilizatorii cu seturi de probleme eare necesitd 0 abordare complet orientati spre
obiecte (O-O) vor avea unele greutiti cu aplicarea XML la sarcinile lor. Totusi, exist
{nigiative fn plina desfasurare pentea extinderea domeniului XML in moduri orientate
spre obiecte, deci este posibil ca aceasti limitare si fie rezolwatd in cele din uemi.
aun exemplu ci nu sunt orientate spre obiecte, documentele XML nu pot mosteni pe
deplin de la strimosii lor gi nu sunt pe deplin Tneapsulate, deoarece interiorul lor este
complet vizibil, Ele isi manifesta polimorfismul si alte comportamente orientate spre
bicete, deci au facut un pas in directiacoreeté din puncval de vedere al lumii O-O.,
Intre timp, exist multe lucruri care pot fi facute cu XML, Pentru inceput, si analizim
tunele mai simple. fncr-un fel, ai coda deja de mux vreme in XML. HTML este att de
propia de o aplicatie XML init mule pagini Web codate corect vor fi citite de un pro~
cesor XML fri probleme sau comentarii, Standardul XHTML 1.0 de la W3C refor-
inateazd DTD-urile HTML 4.9 existente, toate constructii SGML, in DTD-uri XML
corecte, Aceasta va permite ca multe dacumente HTML existente si fie vizualizate ca
documente XHTML. Deci este posibil ca paginile dumneavoastri existente si nu necesite
nicl un pie de muncd pentru alle transforma in XML, Muhte dintre acele pagini care nece-
13 pugind reformulare pot fi convertite in siguranga prin programe de conversie simple,
cum ar fi Tidy al lui Dave Raggett dela W3C.

MODEM Flichetele de maaveare au sant singurcle mecanisme care pot afecta contextul si
Feprezentarea textulu, Exist dverse mecanisme pointer utilzate pentru creates
‘Une! baze de date de caracteristi scare Indic& apotfiecare instant a sa din
‘documentul dumneavoastrs. Microsoft Word, ca si Tagged Image Format Files
(TIFF), utiizeaz’ aceastS tehnicS. Partee slabB a acestor scheme este aceed cd

[nu sunt robuste. DacS orice parte @ antetulul care confine pointerl este alteret,

‘tuna intregul document este distrus, Unul din motivele cresteri rapide si ab
uecestlul pe Web este comportamentul robust al matcajelor bazate pe text,

 

 

 

 

 

 

 

Exemple practice in XML

Deci, aplicarea cunostingelor dumneavoastri de HTML este un mod bun de a incepe
invigarea XML. Este un limbaj de etichete si atribute, la fel ea HTML, si utilizeaz’ multe
dintre convengiile acestuia. In HTML, majoritatea continutului este incadrat de perechi
de etichete, o eticheti de deschidere $i o eticheta de inchidere, ca mai jos:

 

WML: 
XML functioneazi in acelasi mod. XML incurajeazi verbalismul ceva mai mult decit

HITML, dar nu il impune, deci inr-o aplicarie XML real codul precedent poate aritaast-
fel:
va: Tstivernt>
care este identic, exceptie ficind faprul ci XHTML uiilizeszi doar etichete serise cu

Introducere in XML 2

litere mici. HTML nu este sensibil a tipullterelor, deci usilizarea conventilor XHTML
face acceptabile etichetele dumneavoastri in ambele medi

Poste ci acum este momentul si subliniem fapcul ef, spre deosebire de HTML, toate
mbajele XML sunt sensible latipul lterelor. Asa cum este definitd cticheta din punctal
de vedere al tipuluiliterelos, aga va trebui si o uslizayi, Deci, multe aplicayii XML uti-
Hizeazi numailivere mici i niei una nu accepts diferite scrieri cu majuscule ale cuvintelor
cheie sau ale atributelor lor.

Atcibutele sunt utilizate exact in acelagi mod, exceptie ficdnd fapcul cd de fiecare dati ele
trebuie incluse intre ghilimele. Deci, cu toate cX in HTML pute serie


Agi observat slash-ul din capitul drepr al etichetei ? Acesta subliniaz3 o alti
diferengi a XML. Chiar dacd HTML permite ca anumite etichete si fie utilizate fara
etichetele de inchidere, XML nu permite acest lueru, Fiecare etichett trebuie inchisi,
chiar gi atunci cind este 0 etichetl vidi, ca eticheta HTML <1u> sau eticheta XHTML
«ing>. Cea mai buni modalitate de a realiza aces lucru este de a plasa un slash la sfirgtul
exichetei, separat printr-un spatiu de restul atributelor si conrinurului. Acest Iucru nu
pare si intrerupi nici un browser HTML si fi spune lui XML ci eticheta este inchisi

exenple conpatibile WL/HTUL: 
Corect: imcpottalics Bold Text/o> Sugestie deta Ordinea eticheteior este important Ph LeeAnnecom ‘Context este un alt termen pentu domeniu de valabiltate, deci dac8 aseménati etchetele cu ferfurile intro stivl de farfuril dintr-un bufet cu autoservre, atunci nu gresi. Dac8 deschidet o etichetd in Interiorul domeniului de valbitate sau al con textull unel etichete , ea trebuie inchis8 in interorul aceluiasi dameniu de valabtate sau context. Nu putet s& 0 facet dup8 Tnchiderea etichetel . Ea trebuie s fie inchis8 inante. Distanga dintre etichete nu conteazs. Contextul etichetei se comporti ca o stiva de far- furii dintr-un restaurant cu autoservire. Etichetele trebuie si iasi din stiv in ordinea 22 Fundamentele XML inversi a intririi lor in stivi. Cu alte cuvinte, nu putetitraversa arborele structurli docu- ‘mentulvi sarind din creangi in ereangi asemenea unei maimuge. Trebuie s4 il parcurgeri asemenea unei furnici. ‘Sugestie de la Primul intrat, utimul iesit. Aceastd regulé simpl8 este usor de urmat, iat Busshomecern_ doch ssa ste iit runs ete foarte vai eae nivel de im Wiese mse care trebule sig inchid& toate etichetele nainte de iesire. Si toate aceste rmetefore sunt insinuate de structure arborescentd a documentelor XML. Vorbind de arbori, majoritateslucrurilor pe care le uilizat zilnie au paryi componente mai rule sau mai putin invariant, care pot fi organizate into ierarhie arborescent’. Un flax con de aspiring, de exemplu, are ca parti componente un recipient, un capac sau un dop de tun anumit tip, una sau mai multe etichete care deseriu conginutul si consinutul insusi. Dact ‘visea repartizat sarcina de a ambala flacoane cu aspirin’, veti observa cd pentru a evita risipirea tabletelor existi o ordine de efecruare aactiunilor. Prima dati se lipesc etichetele, apaise pun tabletcle $i apoi capacul. Ordinea capac, eticheti,tablete mu va funetiona deloe. Grdinea tablete, etichets, capac poate ci va functiona, dar in cazul risturniii flaconului riseati si risipti tabletele: Deci,o descriere XML poate fi cea din Listingul 1.1. CUistiigal VL Un acon de aspiring destecut pe componente 2 top> ‘type 3 childsate “ count 100 ceantent-tyne> aspirin XYZ brand generic HY directions and warning « Introducere in XML 23 Fiecare subelement este imbricat corect in interiorul elementului care il confine si existé exact un singur element ridicini,flaconul, Aceasta este ceringa principal pentru ca un fisier XML si fie considerat construit corect. Existi desigur multe moduri de descriere a unui flacon cu aspirin, iar fiecare deseriere este mai mult sau mai putin arbitrard. De exemplu, un anumit flacon poate fi introdus inr-o cutie si poate avea un text tipirt. Sau, pentru anumnite pie, abletele pot fi ambalateintr-o folie. Sau, flaconul poste aved m: multe etichete in limbi diferite. Posibilitifile sunt nesfargte, ca si lumea mérfurilor gi serviiilor. Oricum, flaconul ca intreg este format dintr-un recipient, etichete, capac si aspiring. Un lucru care poate fi injeles usor este ci tabletele de aspirina sunt conginute fn flacon. Mai puyin evident poate fi faptul cd flaconul in sine este aledtuit din compo- nente care sunt imbricate din punct de vedere logic in conceptul de .flacon" utilizat Cao concluzie, deoarece este un recipient, un flacon de aspiring este cel mai intuit gi mai accesibil exemplu de imbricare. Sugestie dela —Dacd flacoanele de aspirin nu sunt destul de sugestive, incercayisB va Blaeoncear gre a vice at obiet sau io idee care ae oiearhe, C2meni foc ows texens > tot timpul astfel de clasiicri, de la organigrame de firme (F8r8 ln punctate) pand la casiicrisuingifice ale plantelor sau animalelor. Orice lucru care contine o listS de componente este o ierarhie. Pépusile Matriosca sau un set de castroane de diferte dimensiuni sunt de aseme- nea exemple sugestive. ‘Taxonomia este stinga dificil a impiryiri lumii analogice in clasificiri digitale. Diverse ‘grupuri de firme s-au adunat pentru a hotiri cum si creeze nume gi structuri standard pentru produsele lor si pentru componente. fn acest mod, un fabricant de flacoane fi poate spune unui producitor de aspirina ce tipuri de flacoane sunt disponibile in cata log si edt costd acestea. Sau, un producitor de aspirin poate si comunice unei farmacii ce tipuri de ambalaje sunt disponibile, Instrumentele prietenoase cu utilizatorul vor tjurtereaea de dovumente dears in acest mod si vizble in Figura 1. FIGURA 1.4 imagine 2 Mutidoe Pro Pubisher edna documenta XML al presu- pusul nos facon do splint, avdnd afte scl de dale XML 24 Fundamentele XML Definitiile tipurilor documentului Un DTD (Document Type Definition ~ definitia tipurilor documentului) XML este la un anumit nivel doar 0 inregistrare a modului in care este utilizat XML int document, Nu este obligatoriu si aveyi un DTD pentru a face lucruri interesante. Dar, jen a avea aces [a intreaga putere a XML, un DTD este un pas necesar ‘Consideraii un DTD ca find un plan de prolec. El represintS cadrul organiza TLeeinnecom toric pent proiectele mai marl. Nu avetl nevoie de el pentru o utizare Nese to me yr, dar da dori $8 partajat informal cu oriine atcineva, sau dacs proiectul este mare, ar trebui s8 avefi unl, ‘Sogestie dela Fitd un DTD, au pores! utiliza cu upuringi seturi de caractere extinse sau codified. $i nu putetifolosi nici cele mai puternice instrumente de eveaye, care valideazd xi impun Structura adeevati pentru document, pe misuri ceil scriegi, Entitiile parametru, o purer- tied facilitate macro care ugurcaza viaja deevoltatorilor XML, sunt si ele inaccesibile. In Cele din urma, va trebui si furnizayi valori pentru fiecere atribus, deoarece pentru a seta valori prestablite este nevoie de un DTD. ‘Gu toate aceste motive pentra a avea un DTD, singural motiy pentru a nu avea until este dificultatea de +l crea, care, dupd cum se sie, este o sarcini ineleitd pentru sistemele complexe de documente, Dar nu trebuie si fie car are de dificil. XML a fost proiec= tarpenerua fi usor de utiliza ide igeles. Trebuie invigate doar citeva cuvinte cheie, iar structura limbajului este simpli, Nu este stiinga rachetelor. DTD-urile sunt discusare tai aminuntit in Capitolul 3, ,Definpile ipurilor documencului in XML*. fn aceasti carte vet inviga cum s8 modificati un DTD existent gi chiar eum si constru- igi unul pornind de la zero, sau cum s8 transformagi un DTD SGML simplu inte-unul XML. Dup! ce aveyi un DTD care functioneazd, putes utiliza instrumente de progra~ ate pentru a manipula automat datele din documentele dumneavoastrd in aproape rice Mod la care vi puteyi gandi. Vey studi aplicait care rescriu codul dumneavoastra XML in HTML obisnuit, pentra ca orice browser sil poati vedea in modul dorit de dumneavoastrs. Veti face experimente analizind structura propriului' dumneavoastr3 document pentru a demonstra cit de usor pot fi accesate datele dumneavoastri cu Java, er, JavaScripts aleelimbaje de programare, Ce veyi face eu aceasta aptitudine extraor~ dinar’ depinde numai de cumneavoastr Dezvoltari viitoare XML este un standard in migcare, desi proiectantii de la W3C au divizat cu ingelepeiune, in multe pitti componente, intregul care ar putea fi numit XML. Aceasta garantes2d c& in loc ai ge astepte si se cadi de acord asupra intregului, pArtle mai mici asupra chrora iversele gropuri de luera W3C au ajuns Ia un acord, pot fi emise ea Recomandari W3C. Chiar si in acest moment se fac comentarii finale la o diversitate de extensii ale Recomandirii XML fundamentale iar pentru altele au loc dezbateri energice. Poate ci, fo vreme, vor coexista mai multe solutii concurente, aga cum se fatimpla deseori in dis- Cordantul $i evasi-mnarhicul mediu al Web-ului, Furnizorii comerciali propun solupii pe tare le-au aplicat deja, sperind si fructifice faptul ci sunt primli pe piatd, cu toate c& fgrapuride uilizatori propun altel, peeare le vid mai mari, mai bune, mai rapide sau mai alrfel. Este un adevirat circ. Introducere in XML 25 XLink gi XPointer Prinere cele mai interesante deavoltiri exist’ dou propuneriinrudite, prezentate pentru prima dati ca limbajul de legare XML (XLL ~ XML Linking Language), dar desficure Eeum in componente mai mici, numite XLink si XPointer. XLink si XPointer rezolvi o problema importants a Web-ului, Hiperlegiturile HTML etuale sunt strict unidirectionale, avind o sclectvitate redusd. Obfinerea unei granu- fozitigi mai bune in legarea la un document necesita acces la scriere in codul siu sursi Pugin probabil ci acest lucru este satisficitor intr-un mediu dinamic si mai purin decit benign cum este Web-ul, unde accesul este apirat cu grijé impotriva rauficitorilor si a idiotilor. Ca exemplu, iatr-un document HTML obignuit, o hiperlegitur’ poate con- dduce numa la inceputul documentului sau numa Ia locagi eu nume din acel document, unde este posibil sk existe 0 eticheti ca aceasta Daci acea eticheti nu existi si dacd au puteti convinge autorul documentului si 0 plaseze unde dorisi dumneavoastri, atunci nu vd putegi lega la ea utilizind HTML. Dac bricheta exist’, vi putey lega ugor la ea astfel: ca hrof=*docuentURL#unNure >Links/a> Daci nu, trebuie si gi curcagi fird hiperlegitura 3 cineva care are acces la seriere in document sau si vi des- : See ee eis poms aie errs [Ei iinet scetnmemanesen conmuses XLink extinde aceasté apritudine elementari cu aptitudini complexe de transcludere, sau de includere in documente gazdi a unor copii de la distant a unor portiuni din diverse Socumente, de modificare « prezentirii cau a destinayiei logiturilor in funcyie de eriteri definite de utilizator gi de a face alte lucruri distractive cu date distribuite. Prin adiu- garea XPointer, puteyi accesa chiar modelul obiect al documentului pentru a permite ca face-un document la distangi si fie definite oriunde inte virtuale. {n viitorul apropiat, este posibil si se implementeze redarea dinamici a paginilor personalizate bazate numai pe eriterii de legare. Se ajunge la punctul in eare nu vor exista dou persoane care si vad aceeagi pagini Web fark si aleagd in mod deliberat acest lucru, XSL — foi de stil cu steroizi XSL (Extensible Stylesheet Language - limbajul extensibil al foilor de stil) este 0 alté inigiatvd pe cale si dea roade, Recomandirile CSS (Cascading Style Sheet ~foaie de si in cascada) si CSS2 actuale se marginesc la retuguri cosmetic ale aspectului unui docu- ‘ment existent, bazat pe etichete gi atribute HTML sau XML. Modificarea radicala a unui document se putea face doar utlizand Dynamic HTML, cu problemele de compatiili- tate si durerile de cap aferente. Dar XSL permite, prin utilizarea XPath, accesul de 26 Fundamentele XML seriere si rescriere la intregul document, o descriere standard a structurli documencului, inclusiv pari tanscluse aduse de XLink si bazate pe intregul model object al documen- tului, Vey stadia in detaliu XLink si XPointer in Capitolul 9, .XLink si XPointer*. Puteyi, de exempl, si codatio foaie de stil XSL pentru a genera automat un cuprins prin traversarea arborelui documentului, recnd cuprinsul generat ca un prefix al documen- luis! apot afisind documencu insusi Sau puteyi rearanja pagina in sine, stergind stirle Sportive fi introducind in locul lor rezumate despre noi descoperri astronomice, sau liminand stirile nagionale in favoarea celor de interes local. Dow dintre cele trei sub- Componente ale. XSL, XSL Transformations si XPath, au fost deja publicate a Recomandiri. Ultima piesi este XSL propriu-zis, limbajul de formatare. Atentie, DHTML! lar pentru majoritatea seripturilor, La revedere"! Aceste lucruri le vefi stu- dia mai indeaproape in Capitolul 12, ,CSS1, C852, DSSSL, XSL“. Una peste alta, 0 mulyime din luerurle pe care acum, in Jocul dumneavoastr le reali- zeazd portatuile Internet, vor fi posbile acasi. Furnizorii vor vinde sau vor oferi foi de stil care pot fi personalizate pentru ca dumneavoastra si puteti accesa informagile care ‘vi intereseaza sisi aruncagi la gunoi intervengile aleatoare nedorite. Semniturile XML vor permite ca paginile Web si fie semnate de citre autor inte-o mani- fed care nu va putea fi negati, permitind incorporarea unor misuri de securitate intr-o rejea ale cirei informatii par uneori cit se poate de suspecte O descriere concisa a originilor XML Maresjele a fost alituri de noi aproape de la apartia limbajului scris. Egiptenii, care 2 folosit unul dintee cele mai vechi sisteme de scriere din lume ~ hieroglifele -, marcau rnumele de persoane cu un cartus oval pentru a le distinge de cuvintele obisnuite Unllzau, de asemenea, culori pentru a evident frazele importante, un fel de aldine egiptene. Deoarece egiptenii puteau sere, in functie de contest, fic de la stangs Ia deeap- ta he de la dreapta la stanga, ei prezentau imaginile animalelor sau oamenilor cu fata spre Jnceputul line, ea un atribut sau marca} bidirectional anti, Ki considerau cd este mai politicos ca, pe masuri ce citi un rind, si fgi imtimpinat de personaje. Ar fi fost Fepolitieos dacd personaele ar fi stat cu spatele spre dumneavoastri, Figura 1.2 prezint& © portiune de pe Piatea Rosetta, una dintre cele mai importante pietre de hotar in fngelegerea comuniciri ga istoriei. ume eat Nume cada oun cartog ume incatat 6 0 crug wear riauna + | Tease cod gal apronimativ dn 196i, ‘exemple utitzerea catelor de marcare penny rume ga mareaeor Di rectal. ener apg EO antenaerns De | Introducere in XML 27 Conventii de marcare in ebraica veche Ebraica veche, in care a fost serisi Tora, nu contine aproape deloc marcaje, exceptie Ficind doar ,coroanele* decorative agezate peste gapre litere si doua forme de litere finale. Asemenea multor sisteme de scriere, in ebraica veche a aparut tirziu ideea dea pre pai inte cuvine, una dnt primel scheme de marcare, da acum Tors contine MEEND Gy cose Seas ges eo Ino EOS srepney eb este prota sf suport tate Ibe omnes Ded ebraea (Gas doar in exerp simply penta o Gast de probleme cu cae e pote are (fart. un proletan 9 : Un fragment din Tora (tadus din ebraict) ar putea arita astfel ACEASTA ESTE O PROPOZITIE SCRISA IN STILUL TORA ACEASTA ESTE PROPOZITIA URMATOARE ACEASTA ESTE CEA DE A TREIA PROPOZITIE SI ASA MAI DEPARTE Doar ci ebraica veche nu folosea vocale, preferindu-se inlocuirea lor cu urt proces de sgindire, deci propozigile de mai sus ar arita de fapt astfel: CST ST_PRPZT SCRS N STLL TRH CST ST PRPZT RMTR CST STC D TR PRPZT SSM DPRT Citirea acestui text este intrucitya 0 sarcini descurajanti, chiar daci dumneavoastri ccunoastefi cuvintele pe de rost. Textul este citit de obicei cu ajutorul unui indicator pentru a nu vi pierde in cadral paginii. Nu vitafi, marcajul intradus de o.persoani este un ajutor esential pentru ca 0 alt& per- soani si injeleagi gi ea. Este destul de obignuit si se faci versiuni speciale pentru cititori Tora, cu vocale marcate si indicayii de intonatie pentru citirea psalmului, pentra a-iajuta pe cei cu memoria slabi sau mai puyin talentay Conventii de marcare in latina veche Istoria propriei noastre serier latine ste similar, cu spagierea cuvintelor, cu punctuatie retoried, cu introducerealterelor mici pentra a face o distineye mai claréintre cuvintele Obisnuite si cele imporeamte wi ste inovatit aseustodtoate, destinate 5% fack sericren msi usor de injeles gi de utilizat. In timpul Renasteri a fost introdus caracterul punct gi vir- guld pentru a marca o anumita relaie subsilé inte ide, dar ne-am chinuit destul de mult timp pind acum folosind acest sistem de marcare vechi de sute sau chiar mii de ani. {i utilizam zilnic, sublinind cuvinte, folosind semne de punctuatie in fraze, seriind eu rmajuscula numele propti si primul caracter al fiecirei propozitt pentra a face mai clare pe hire idlle owe. Propoaes Totus, sistemul nu a fost suficient de bun pentru formatarea cirrilor tiparite. Tipogeafi au dezvoltat un sistem de marcare inteligene pentru a identifica gia aplica modificari de Formatare la parti ale unor ciryi sau ale altor tipSrituri. Marcajele tipografilor se numese chiar marcaje, iar numele provine de la faptul cd ele au fost adaugate manual, ,marcate* pe paginile dactilografiate sau pe manuscrise. Toate trucurile din domeniul ipografic Includ marcaje speciale cum sunt aldine, cursive, majuscule reduse, indentari $i diferite tipuri de spagi, schimbisi de fonturi,tratamente speciale pentru titluri,tiluri de capi- 28 Fundamentele XML tole, subsol, antet,casete, numere de pagini si multe altele. Figura 1.3 prezinté o pagini dactilgrafintd, mireté de un edison cv mentun ceferitoare Isl pograi pre FIGURA 1.3 Un exert de document Actograi, marcat cu rotafile extol acresate tomnoredsctorut, Abramam [@ Be seBarnere eouane cofhen ents eflpinantya new sation, concfgyed in itberty and dasiontea ae | pow we ve oncnned In a grant civit ws Teetiog whether shat aattoajor any nation 0 conceived and a0 dastefeeegcne one se on «Boron porsagfiai of that vars we ave come to dedicate » YORTGH ot that fet. Marcajele in istoria recent (dati cu incepurul erei calculatoarelor era nevoie de un model now care si permiti realizarea de harti si documentatiiformatate, Unul dintre primele, Runoff, a fost codat de Jerry Saltzer pentru sistemul de operare CTSS pe IBM 7094 la inceputul anilor '60 si portat apoi pe Multis, un alt sistem de operare timpuriu. Runoff a fost primul inseru~ ‘ment important portat pe nou inventatul sistem de operare UNIX de la Iaboratoarele Bell. Runoff si toyi descendenti sii utilizau etichote de mareare speciale pentru a con- trola aspectul formatat al textului, aga cum facem noi azi, Din multe puncte de vedere poate fi considerat strimosul lui HTML si al XML, cu toate ca aplicatile moderne au depisit cu mult scopul pentru care au fost proiectate aceste programe incipiente. Un canadian, William Tunnicliffe, a cerut in 1967 separarea in media electronic’ a infor ratilor de formatare de informayile de consinut. Aproape simultan, Stanley Rice, un tedactor din New York, a propus un sistem de etichete universale cu structura editori- ali. O idee excelenti se nistea si lua avant. Pe baza acestor idei a apirut conceptul de codare generali (Generic Coding), iar din acesta GML (Generalized Markup Language ~ limbajul de marcare generalizat) creat in 1969 de Charles Goldfarb, Edward Mosher si Raymond Lorie de la IBM pentru codi- ficarea si publicarea cu succes a milioane de pagini de documentayie IBM. Dupi o perioadi de dezvoltare, GML si Generic Coding s-au reunit din now in 1978 sub forma unui comitet pentru dezvoltarea unui nou limbaj, bazat pe GML dar extins ew idei noi, venite de la mulyi oameni. In 1980, SGML (Standard Generalized Markup Language ~limbajul de marcare generalizat standard) a fost publicat ca schigi. In 1983, noua schiti de standard a fost publicavi ca un standard in domeniu, GCA 101-1983, 31 adoptat de Fise si de Armata SUA, Introducere in XML 29 {ntre 1983 si 1987 s-a lucrat la un standard de publicare SGML pentru cirgi, publicaii periodice si articole cu componente optionale din matematics, lucrar stiinifice gi tabele complexe. El a fost adoptat ca standard ANSI, 239.59, in 1988 gi, mai trziu, intr-o forma revizuitd, ca standard international, ISO 12083. {i 1986, standardal international SGML, ISO 8879:1986, a fost publicat iar lucrurile au {nceput si se precipite. In 1988, Departamentul de Apirare al SUA a publicat standardul SGML CALS (Computer-aided Acquisition and Logistical Support ~ suportul logistic fide achizite asisat de calculator) ca MIL-M-28001 De atunci, multe proiecte mari bazate pe SGML au inflorit intro relativa obscuritate pentru cei din afara cercurilor stiintifice gi din domeniu ~ Text Encoding Initiative (TEI ~ initiativa de codare a textului), HyTime, ISO 10744, Hypermedia Time-based Seructuring Language, un standard foarte complex, cu suport multimedia sineronizat de toate tipuril, si multe altle “Toate aceste proiecte au fost imense, necesitind mult studiu pentru familiarizarea cu limbajul si pentru ca faciltiile si deving eficiente in marea lor diversitate de posibilitii. $i itd c& toate acestea ne-au condus la XML CAPITOLUL, Sintaxa XML in acest capitol Seructura XML Descrierea de vocabulare noi cu XML XML, doar un alt HTML? Starcul in XML_ Definirea unui document XML ca intreg Constrangerile construirii corecte Prologul: Declaratia XML Construirea prologului unui document XML: Declaragia tipului documentului (Document Type Declaration) Crearea corpului documentului Formarea structurilor logice in XML Studi de caz Structura XML XML este format de fapt din dout limbaje, de fapt metalimbaje, ambele des. XML SIcamone, Primal este un set de reguli pentru realizarea de documente XML SSseraite corect, in timp ce al doilea este un set de reguli pentru realizarea unel definitt a rpulut documentulad XML, 880 DTD (Document Type Definition), care permite 2 scrpetara documentului XML si se supuné unor constringeri si si fie validasa fayé de stale constrangeri, Distnetia dintre aceste doui limbaje este deseori neclari, deoarece a ocument XML complet presupune micar existenfa oprionali a unui DTD, indife- steed acesta este de fapt prezent sau nu, Pentru a complica si mai mult luerurile, un DTD poate fi compus din dowi piri, 0 submultime interna go submultime externa Acest capitol studiazi documentul XML firé a insista prea mult asupra DTD-vh eeevun document XML poate fi creat gi fied a face refriri la un DTD. Din motive de performanta, multe documente XML vor fi uiizate rd a le valida in raport cu DU Duh, chiar daci DTD-ul este disponibil. In cazul conexiunilor lente, citirea dints-un DTD nevituat pe sistemul dumneavoastr§ poate fi ingrozitor de inceati, iar datoritafap- tului cd un DID poate confine referinge la alte documente, rezolvarea raturor refe~ Sinyelor externe poate dura exagerat de mult chiar si in cazul conexiunilor de mare Sieh, Utilizator sunt obignuiti ca documentele HTML si fie incircate incremental, Geel pot cit inainte ea documenta si fie inedrcat in oralitate, dar analizoarele XML de Sintaxa XML 34. salidare nu permit afigarea documentului decit in cazul in care acesta este valid, deci documentul va apirea pe ecranul utilizatorului numai in momentul in care este incireat, intotaltate. Acest lucru poate fi sup: Totwsi, fiecare document este creat avénd in minte un DTD, indiferent dack DTD-ul este explicit sau nu. Chiar gi la crearea documentelor fara un DID, trebuie si aveti in tainte un fel de DTD empiric pe masurd ce creati documentul, deoarece un DTD descrie ostructuri de date. Detalii tehnice despre XML ‘Anexa A, ,Referinfe XML/XHTML", descrie (partial) sintaxa fundamental XML prin listarea notatiei Extended Backus-Naur Form (EBNF), forma Backus-Naur extinsi, utiliza chiar de standardul W3C XML 1.0 pentru a o defini, Regulile de productie EBNF selectate sunt completate cu descrieri concise ale constringerilor explicite de valuta de construire cores ce are W3C a modifi sa a exne anu i EBNF. Cu toate ci forma EBNF este nemaipomenit de compacta, permitind ca roduc legal intr-un limba} de programares& fe definite suceint cao serie de egal de transforméri gramaticale, pentru simplitate, W3C a lisat pe dinafaed destul de mult din descrierea EBNF a limbajului. Majoritatea pirjilor care lipsesc se refer’ la constr ger ila descriesi verbale ale criterilor aditionale pe care o anumita producti trebuie si Te respecte, dar unele se afl de fape in textul standardului EBNF este doar o metoda prescurtati de a spune lucruri despre limbaje de programare, iar dumneavoastti puteyi descrie la fel de ugor XML intr-un mod mai accesibil, uelizand ‘uvinte, cu toate cd EBNF este mai concis in comparatie cu echivalentul dia engleza obignuitd. Totus, unele Iveruri sunt dificil (sau obositor) de exprimat in EBNF, iar EBNF in sine este concis pana la limita obscurititi pentru majoritatea oamenilos, aga ci W3C a hotirit si combine in recomandarea sa cele doui tipuri de deseriere a limba lui. Unele reguli de producrie sunt descrise complet in notafia EBNF, iar textul insositor este doar 0 explicafie a ceea ce spune de fapt EBNF. Uncle reguli de productie sunt descrise complet numai printr-o combinatie a regulii EBNF si a comentariului aferent din text, deci regula EBNF serveste ca un schelet general la care trebuie adaugate textele cu comentarii pentru a caracteriza regula efectiva. In realitate, EBNE-ul Recomandarii XML 1.0 a W3C este si trebuie si fie suplimentat cu diverse constrdngeri rexwale, vonsinute ta corpul docurmentulai, pentru a | ingelege tu adevarat. Dar dupa ce af ingeles cum se potrivese toate acestea, regulile EBNF sunt utile ca fguici care i vi reaminteased modul de functionare al limbajului. WEED Gi toate i exit 0 Sntand EBNF pentru YL, acca descriere nu este complet. Ftd a lua In considerare numeroasele constréfiged tecute in Recomandare si “ParSclirea atents a textulu, infelegerea gresité si implementarea incorectd sunt | aproape inevitable. Acesta este motivul pentru care listingul EBNF vi sti la dispozitie in anex, nu pentru 2 fnvata cum si folositi XML, ei penteu a vi reaminti cum trebuie utilizat atunci cind ‘cutati o anumité construcfie i nu dorigi si risfoiti intreaga specificayie. Deoarece Recomandarea XML 1.0 este extrem de concisi, poate veti dori sa puneyi ua semn de carte la Recomandarea XML 1.0 adnotati de Tim Bray (Tim Bray's Annotated XML 1.0 Recommendation), la http://sine.anl.con/axl/testaxnl hte, deoarece explici mai clar

Anda mungkin juga menyukai