formatul xml

6
Formatul XML Formatul XML (sau eXtensible Markup Language)este un meta-"limbaj de marcare" recomandat de Consorţiul World Wide Web pentru crearea de alte limbaje de marcare, cum ar fi XHTML, RDF, RSS, MathML, SVG, OWL etc. Aceste limbaje formează familia de limbaje XML. Meta-limbajul XML este o simplificare a limbajului SGML (din care se trage şi HTML) şi a fost proiectat în scopul transferului de date între aplicaţii pe internet. XML este acum şi un model de stocare a datelor nestructurate şi semi-structurate în cadrul bazelor de date native XML. Un exemplu de date în format XML este următorul: <?xml version="1.0"?> <lista> <dvd> <titlu>5th element</titlu> <type>actiune</type> </dvd> <dvd> <titlu>Enya</titlu> <type>Videoclipuri</type> </dvd> <dvd> <titlu>The Missing</titlu> <type>actiune</type> </dvd> </lista> Care nu este altceva decat o colectie de DVD-uri. Colectia de DVD-uri, adică datele aşa cum sunt ele expuse în exemplul de mai sus, poate fi salvată într- un fişiser cu extensia .xml . Faceţi acest lucru după care deschideţi fişierul (dvd.xml) obţinut cu browserul dumneavoastră (Firefox is the best ;)).

Upload: alex9216

Post on 30-Sep-2015

7 views

Category:

Documents


5 download

DESCRIPTION

Formatul XML (sau eXtensible Markup Language)este un meta-"limbaj de marcare" recomandat de Consorţiul World Wide Web pentru crearea de alte limbaje de marcare, cum ar fi XHTML, RDF, RSS, MathML, SVG, OWL etc. Aceste limbaje formează familia de limbaje XML. Meta-limbajul XML este o simplificare a limbajului SGML (din care se trage şi HTML) şi a fost proiectat în scopul transferului de date între aplicaţii pe internet. XML este acum şi un model de stocare a datelor nestructurate şi semi-structurate în cadrul bazelor de date native XML.

TRANSCRIPT

  • Formatul XML

    Formatul XML (sau eXtensible Markup

    Language)este un meta-"limbaj de marcare"

    recomandat de Consoriul World Wide Web

    pentru crearea de alte limbaje de marcare, cum

    ar fi XHTML, RDF, RSS, MathML, SVG, OWL

    etc. Aceste limbaje formeaz familia de limbaje

    XML.

    Meta-limbajul XML este o simplificare a

    limbajului SGML (din care se trage i HTML) i

    a fost proiectat n scopul transferului de date

    ntre aplicaii pe internet.

    XML este acum i un model de stocare a

    datelor nestructurate i semi-structurate n

    cadrul bazelor de date native XML.

    Un exemplu de date n format XML este urmtorul:

    5th element

    actiune

    Enya

    Videoclipuri

    The Missing

    actiune

    Care nu este altceva decat o colectie de DVD-uri. Colectia de DVD-uri, adic

    datele aa cum sunt ele expuse n exemplul de mai sus, poate fi salvat ntr-

    un fiiser cu extensia .xml . Facei acest lucru dup care deschidei fiierul

    (dvd.xml) obinut cu browserul dumneavoastr (Firefox is the best ;)).

  • Browserul nu numai c v afieaz datele n form structurat dar v permite

    expandarea sau colapsarea diverselor noduri dup bunul plac. n cazul n

    care fiierul nu este deschis de ctre browser, probabil ai alterat codul expus

    mai sus.

    Dac fisierul s-a deschis fara probleme este timpul sa trecem la urmatorul

    pas: adaugarea unui XSL (eXtended Style Sheet) fisierului. XSL-ul este un

    XML mai special care atasat unui fisier XML face ca acesta sa fie prelucrat in

    diverse moduri (de exemplu schimbarea unui XML in alt XML sau schimbarea

    unui XML intr-un HTML).

    Exemplul nostru de fisier XSL va transforma datele din XMLul de mai sus

    avand ca rezultat un fisier (tot XML) dar care paote fi inteles de catre browser

    si parsat ca si cum ar fi un fisier HTML. Pentru a adauga fisierul XSL in XML

    mai trebuie adaugat ceva... Schimbati antetul XMLului astfel incat acesta sa

    arata astfel:

    5th element

    actiune

    ..............................

    Fisierul XSL trebuie sa se numeasca "dvd.xsl" asa cum apare in noua linie

    adaugata fisierului XML si va contine urmatorul cod:

    Lista DVDuri

    My DVD Collection

    No.

    Titlu

  • Tip

    Daca ati reusit pana aici, inainte putin mai este...

    cel mai simplu actionScript pe care l putei folosi pentru ncrcarea i afiarea

    XMlului de mai sus este:

    var xml_obj:XML = new XML();

    xml_obj.load("dvd.xml");

    xml_obj.onLoad=function(){

  • trace (this);

    }

    Variabila xml_obj reine toat structura arborescent a unui obiect de tip XML.

    Deocamdat n aceast variabil nu se afl nimic i din acest motiv vom dor

    s ncrcm coninutul fiierului extern dvd.xml.

    Dup cum tii n Internet sunt latene destul de mari i nun e putem atepta

    s avem coninutul fiierului ncrcat n variabila xml_obj chiar n urmtoare

    instruciune care se afl dup load. Din acest motiv nu vom folosi obiectul

    (xml_obj) dect dup ce ne vom asigura c n acesta s-a ncrcat correct

    coninutul fiierului. (Funcia care trateaz acest lucru este onLoad.)

    Comanda trace nu face altceva dect s afieze coninutul variabilei xml_obj

    deci obiectul XML.

    Problema care apare este c Flashul nu poate prelucra un obiect Flash dac

    acesta conine spaii albe (whiteSpaces). Din acest motiv vom folosi

    proprietatea ignoreWhite i-I vom atribui valoarea de adevr True, linia

    urmtoare va fi scris imediat dup comanda de ncrcare a fiierului

    dvd.xml.

    xml_obj.ignoreWhite = true;

    Putem s facem lucruri mai interesante cu XMLul dect doar s l afim. De

    exemplu n funcia onLoad putei afla cte DVDuri sunt n colecie:

    trace ("Colectia contine: "+this.firstChild.childNodes.length+"

    DVD-uri.");

    Astfel codul nostru devine:

    var xml_obj:XML = new XML();

    xml_obj.load("dvd.xml");

    xml_obj.ignoreWhite = true;

    xml_obj.onLoad=function(){

    trace ("Colectia contine: "+this.firstChild.childNodes.length+"

    DVD-uri.");

    }

  • Sa preluam lista si sa afim pe rnd titlurile (evident ntr-un FOR):

    var xml_obj:XML = new XML();

    xml_obj.load("dvd.xml");

    xml_obj.ignoreWhite = true;

    xml_obj.onLoad=function(){

    for (i=0;i

  • if

    (this.firstChild.childNodes[i].childNodes[1].firstChild.nodeValue ==

    "actiune") {

    trace("Film de actiune:

    "+this.firstChild.childNodes[i].childNodes[0].firstChild.nodeValue+".")

    ;

    }

    }

    };

    V las pe dumneavoastr s nelegei acest ultimo cod i n final vom face o

    afiare frumoas a listei de filme:

    var xml_obj:XML = new XML();

    xml_obj.load("dvd.xml");

    xml_obj.ignoreWhite = true;

    xml_obj.onLoad = function() {

    _root.createTextField("filme", 0, 100, 100, 400, 300);

    var formatare = new TextFormat("Tahoma", 11);

    var tabs = new Array(0,150);

    formatare.tabStops = tabs;

    _root.filme.text = "Nume Film\tTip Film\n";

    for (i=0; i