E-learn.ro
Panou utilizatori
Utilizator Parola
Creeaza cont nou    Recupereaza parola
Login
Newsletter
Introdu adresa ta de email
Inscrie-te
Inchide panoul de utilizatori
Add to Google

Tutoriale XML

Descarca toolbar

Toolbar E-learn.ro Facebook Twitter

WEB DEVELOPMENT  /  XML  /  Validare (1)

Validarea XML-urilor cu XML Schema (Partea I)

21.07.2009
Validarea XML-urilor cu XML Schema (Partea I)

XML Schema este limbaj utilizat pentru a descrie structura documentelor XML.

Total vizualizari: 7577 7577 afisari   |   Comentarii  2   |   Rating   |   (1 vot)   |   Timp necesar: 15 min 15 min   |   Nivel de cunostiinte necesar: Incepator  Incepator

Sursa:  www.learn-xml-schema-tutorial.com  
Autor:  www.learn-xml-schema-tutorial.com
Adauga la tutoriale favorit Adauga la tutoriale favorite
Pagina:
1
comenteaza printeaza

Generalitati despre XML Schema

Scopul XML Schema

XML Schema este limbaj utilizat pentru a descrie structura documentelor XML. Datorita confuziei dintre XML Schema ca standard W3C si utilizarea aceluiasi termen pentru a descrie limbaje schema in general, o parte a comunitatii de utilizatori se refera la acest limbaj ca WXS (de la W3C XML Schema), in timp de altii folosesc termenul XSD (de la XML Schema Document - adica un document scris in XML Schema).

Ca orice limbaj de validare a XML-urilor, XSD este utilizat pentru a defini un set de reguli conform carora un document XML este valid sau nu. Documentele XML care adera la o anumita structura XML Schema sunt instante ale acelei structuri. Retine ca o instanta valida nu este acelasi lucru cu un document bine-format, deoarece un document XML bine format respecta sintaxa XML, fara a adera insa neaparat la un XML Schema. Deci, un document XML poate fi bine format fara a fi valid, dar nu poate fi valid decat daca este bine format.

Capacitatile XML Schema

Este posibil sa ai deja experienta cu DTD. Asemanarea dintre acest standard si XML Schema este ca ambele definesc clase de documente XML.

DTD a aparut cu mult inaintea XML-urilor, fiind creat pentru a defini un standard pentru documentele scrise in SGML, parintele XML-ului. Cu toate ca DTD-urile sunt inca destul de populare, XML Schema este un limbaj de programare mult mai puternic.

Iata cateva dintre limitarile DTD:

  • DTD nu are tipuri de date predefinite

  • DTD nu admite tipuri de date definite de utilizator

  • DTD permite un control limitat asupra cardinalitatii (numarul de aparitii al unui element in interiorul parintelui sau)

  • DTD nu suporta Namespaces sau orice alta cale de refolosire sau importare a altor scheme

O prima privire

O schema XML descrie structura unui document XML, definind ceea ce contine sau ar trebui sa contina fiecare element. Un element este limitat de tipul sau. Spre exemplu, un element de tip complex poate contine elemente "copil" sau atribute, in timp ce un elemente de tip simplu nu poate contine decat text.

Diagrama de mai jos iti prezinta tipurile de elemente din XML Schema.


In XML Schema poti folosi tipurile de date predefinite sau iti pot crea propriile tipuri de date. Iata o analiza complexa a tipurilor de date din XML Schema:

  • Elementele pot fi simple (Simple Type) sau complexe (Complex Type)

  • Elementele de tip simplu pot contine doar text. Nu pot avea elemente "copil" sau atribute.

  • Toate tipurile de date predefinite sunt tipuri simple (ex. xs:string)

  • Poti crea tipuri simple prin restrictia altor tipuri simple. De exemplu, un tip de date e-mail poate fi derivat din string prin specificarea unui sablon specific adreselor de e-mail.

  • Tipurile simple pot fi atomice (ex. string si integer) sau non-atomice (ex. listele)

  • Elementele de tip complex pot contine elemente "copil" sau atribute, dar si texte.

  • In mod implicit, elementele de tip complex contin alte elemente "copil"

  • Elementele de tip complex pot fi restrictionate sa aiba continut simplu, adica sa contina doar text. Ele sunt diferite de tipurile simple prin faptul ca au si atribute.

  • Elementele de tip complex pot avea continut mixt - o combinatie intre text si elemente "copil".

Un exemplu simplu

Mai jos poti vedea un exemplu de XML Schema, alcatuit dintr-un element de tip complex cu doua elemente "copil" simple.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Autor">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Nume" type="xs:string" />
        <xs:element name="Prenume" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Explicarea codului

Dupa cum poti vedea, un document XML Schema este de fapt un document XML, ce urmeaza toate regulile de sintaxa ale oricarui alt document XML. Schemele XML trebuie de asemeni sa urmeze regulile definite in "Schema schemelor", care defineste, pe langa alte lucruri, structura numelor unui element sau atribut din XML Schema.

Elementul radacina din schema XML este xs:schema, ce contine atributul xml:ns cu valoarea http://www.w3.org/2001/XMLSchema , indicand faptul ca documentul ar trebui sa urmeze regulile pentru XML Schema. Acest lucru va deveni mai evident dupa ce vei invata mai multe despre spatii de nume (Namespaces).

Elementul xs:schema contine un element xs:element. In acest caz, tag-ul xs:element defineste elementul Autor ca fiind un tip complex ce contine alte doua elemente copil: Nume si Prenume, de tip xs:string.

Validarea unui document XML

In sectiunea anterioara ai vazut un exemplu de schema simpla XML, care defineste structura unui element Autor. Sa presupunem ca schema a fost salvata intr-un fisier cu numele Autor.xsd. Codul prezentat mai jos prezinta o instanta valida a schemei XML, adica un document care respecta regulile definite in schema:

<?xml version="1.0"?>
<Autor xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:noNamespaceSchemaLocation="Autor.xsd">
    <Nume>Mark</Nume>
    <Prenume>Twain</Prenume>
</Autor>

Explicarea codului

Acesta este un document XML simplu, ce are ca radacina un element Autor. La randul lui, elementul Autor contine doua elemente "copil": Nume si Prenume, exact asa cum cere schema XML asociata.

Atributulxmlns:xsi al elementului radacina indica faptul ca acest document XML este o instanta a unei scheme XML. Schema XML este specificata de catre atributul xsi:noNamespaceSchemaLocation.

Concluzii

In acest tutorial ai invatat cum sa creezi o schema simpla si cum sa o folosesti pentru a valida un document XML. Acum poti trece la caracteristici mai avansate ale XML Schema.

Pagina:
1
comenteaza printeaza
Alte tutoriale XML:
Noteaza acest tutorial
Rating tutorial
 
(1 voturi)
Pentru a nota acest tutorial, trebuie sa fii logat!
COMENTARII (2) spune-ti parerea
acintea , Joi, 04 Aprilie 2013, ora 15:42
#2

XSD nu e limbaj de programare cum se zice in articol.
XML Schema sau XSD (XML Schema Definition) e un limbaj care descrie structura unui document XML impreuna cu regulile de continut si semantica

Raporteaza acest comentariu ca injurios!
tzanc tzanc , Vineri, 25 Septembrie 2009, ora 17:04
#1

Complicata structura asta ,trebuie sa o citesti atent sa o poti invata bine . Foarte bun tutorialul .

Raporteaza acest comentariu ca injurios!
Posteaza un comentariu
Pentru a posta un comentariu, trebuie sa fii logat!
0 TOP UTILIZATORI* 0 0
Tutoriale scrise de claibornelara
claibornelara Rang utilizator claibornelara - Incepator
4180
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
4085
Tutoriale scrise de kheops
kheops Rang utilizator kheops - Mediu
4084
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
4055
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
3875
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
Word Illustrator Gimp Flash Excel SEO JSON Powerpoint SWF AJAX Sony Vegas Dreamweaver Swift 3D StyleSheet CSS Outlook MySQL Vista Verilog HTML Fotografie COREL DRAW PSD Java Action Script Photoshop XHTML Javascript Bridge Ruby on Rails Fireworks XML RoR Lightroom Python PHP
Promovare:
Daca faci parte din comunitatea E-learn.ro si doresti promovarea acesteia, poti accesa pagina de promovare.
Arhiva newsletter:
Daca ai ratat un numar mai vechi, sau vrei sa revezi care au fost noutatile E-learn.ro la un moment dat, poti accesa arhiva de newslettere.
  Copyright © 2008-2013 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software