Informatica
Ingineria programariide laborator xmlINGINERIA PROGRAMARII LUCRARE DE LABORATOR XML Obiective
1. Introducere in XML. 1.1 Istoric XML (eXtensible Markup Language), descendent al SGML (Standard Generalized Markup Language) este un meta-limbaj utilizat in activitatea de marcare structurala a documentelor. Specificatiile XML au fost dezvoltate incepand din 1996 de un grup de cercetare condus de Jon Bosak de la Sun Microsystems in cadrul consortiului W3C. Ulterior au aderat o serie de grupuri de experti din comunitatile academice (Text Encoding Initiative, NCSA) si industriale (SUN, IBM, Netscape, Oracle, Adobe). Obiective principale avute in vedere la proiectarea limbajului XML au fost: sa fie simplu de utilizat pe Internet; sa poata fi folosit de mare verietate de aplicatii sa fie compatibil cu SGML; sa fie usor de utilizat in programele proiectate sa proceseze documente XML numarul facilitatiilor optionale din XML sa fie reduse la minim; sa fie usor de citit de operatorul uman; designul XML al unor noi documente sa nu fie consumator de timp designul XML trebuie sa fie formal si concis documentele XML trebuie sa fie usor de creat; Un document XML este format din marcaje (reprezentate de tag-uri) si date caracter. Termenul de marcaj (markup) a fost folosit initial pentru a descrie anumite adnotari, note marginale in cadrul unui text cu intentia de a indica tehnoredactorului cum trebuie formatat ori listat un anumit pasaj. Generalizand, putem defini marcajul drept orice actiune de a interpreta explicit o portiune de text. Un marcaj este un sir de caractere delimitat de caracterele '<' si '>'. Datele caracter reprezinta continutul propriu-zis al marcajelor. In XML, spre deosebire de HTML, marcajele nu sunt folosite pentru afisarea datelor continute, ci au alte scopuri printre care se pot enumera urmatoarele: asigura o sintaxa simpla si standardizata ce poate fi folosita pentru a utiliza informatia stocata; ofera o metoda de a descrie structura ierarhica a continutului prin divizarea informatiei (datele caracter) in parti numite elemente care pot avea atasate proprietati particulare desemnate de atribute. Un document XML poate fi impartit in trei sectiuni generale de colectii de marcaje: prolog; declaratia tipului de document; elementul radacina Fiecare dintre aceste sectiuni poate fi mai departe divizata in structuri mai detaliate.
1.2 Exemplu de document XML <studenti> <student> <nume> Popescu Gabriel Dumitru </nume> <adresa> <localitate>Gura Humorului</localitate> <strada>Nucului</strada> <numar>1</numar> </adresa> <telefon>0720111222</telefon> <email>gabrielp@stud.usvro</email> </student> </studenti> 2. Manipularea documentelor XML folosind limbajul C#. 2.1 Citirea datelor 2.1.1 Studiati exemplul de mai jos. 2.1.2 Creati o aplicatie Visual C# pentru testarea acestui exemplu. using System; using System.Collections.Generic; using System.Text; using System.Xml; using System.IO; namespace ConsoleApplication3 } else Console.WriteLine( 'Fisierul ' + fileName + ' nu a fost gasit!'); Console.ReadLine(); } } 2.1.3 Afisati adancimea datelor continute in fisierul XML. 2.1.4 Modificati programul astfel incat iesirea acestuia sa respecte sintaxa XML:
2.1.5 Modificati programul astfel incat structura documentului sa poata fi usor inteleasa:
2.2 Crearea unui document XML folosind C# 2.2.1 Studiati exemplul de mai jos. 2.2.2 Creati o aplicatie Visual C# pentru testarea acestui exemplu. using System; using System.Collections.Generic; using System.Text; using System.Xml; using System.IO; public class MainClass 2.2.3 Explicati rolul liniei de cod C#: xmlDoc.Save(Console.Out); 2.2.4 Adaugati atributul produs_id nodului nodProdus 2.2.5 Adaugati un nou nod pentru identificarea produselor care sunt existente in stoc:
2.3 Evenimente XML in C# 2.3.1 Studiati exemplul de mai jos. 2.3.2 Creati o aplicatie Visual C# pentru testarea acestui exemplu. using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Xml; using System.IO; public class MainClass public static void MyNodeChangedEvent(Object src, XmlNodeChangedEventArgs args) } public static void MyNodeInsertedEvent(Object src, XmlNodeChangedEventArgs args) } public static void MyNodeRemovedEvent(Object src, XmlNodeChangedEventArgs args) } 2.3.3 Explicati rolul liniei de cod C#: xmlDoc.ChildNodes[0].RemoveChild(xmlDoc.ChildNodes[0].ChildNodes[1]); 2.3.4 Modificati progamul dupa cum urmeaza: sa se citeasca fisierul studenti.xml generat anterior; sa se adauge doi noi studenti si sa se schimbe numarul de telefon pentru cel de-al doilea. sa se stearga primul student, din fisierul original. TemaFolosind windows forms, cititi un fisier XML si afisati continutul acestuia intr-un obiect de tip ListView.
|