Lista 2: Un fragment DTD care descrie elementele din listele 1
Listarea 3: Fragment XML Schema care descrie elementele din listă
Utilizarea spațiilor de nume în Schema XML.
În lumea reală, o persoană poate procesa documente de la o varietate de corespondenți care ar putea dori să-și prezinte datele în mod diferit. În plus, într-un singur document, ar putea fi necesar să se refere la elemente cu aceleași nume separat, dar în contexte diferite. Cum se poate distinge între aceste definiții diferite cu același nume? Schema XML permite distingerea unor astfel de definiții utilizând conceptul unui spațiu de nume.
Limitările șabloanelor DTDÎn ciuda faptului că șabloanele DTD au servit perfect dezvoltatorilor SGML și HTML timp de 20 de ani ca mecanism pentru descrierea informațiilor structurate, șabloanele DTD au restricții stricte în comparație cu Schema XML. DTD necesită ca elementele să fie formate din trei concepte:
- Șir de text
- Un șir de text și alte elemente copil
- Setul de elemente childDTD nu are sintaxă XML și oferă doar un suport limitat pentru tipuri sau spații de nume.
Lista 4: Spațiu de nume încorporat și utilizat
Figura 1: Spațiul de nume pentru listarea 4
Cod 5: Mai multe spații de nume de surse care importează spațiul de nume.
Lista 6: Utilizarea mai multor spații de nume din mai multe scheme
Figura 2: Namespace pentru listele 5 și 6
Definiția elements.
Pentru a defini un element înseamnă să-i definiți numele și modelul de conținut. În schema XML, modelul de conținut al unui element este determinat de tipul acestuia. În acest caz, elementele individuale ale unui document XML pot avea numai valori care satisfac tipurile definite în schema lor.
Tipuri simple
Specificația Schemei XML definește un set de tipuri simple, după cum se arată în Tabelul 2: Tipuri simple predefinite.
Tipul poate fi simplu sau complex. Un tip simplu nu poate conține elemente sau atribute. Un tip complex poate conține elemente și atribute imbricate. (Exemplele de mai sus din acest articol sunt simple tipuri (a se vedea ProductCode)). Specificația XML Schema include, de asemenea, tipuri simple predefinite (vezi tipurile simple simple). Un tip simplu derivat poate lua valori într-un set de valori valide ale tipului său de bază. De exemplu, valorile unui Produs Cod simplu derivat sunt un subset al valorilor șirului de tip de bază.
Elementele simple care nu sunt imbricate au un tip simplu
Un element care nu conține atribute sau alte elemente poate fi definit ca având un tip simplu, este predefinit sau definit de utilizator ca șir. întreg. zecimal. timp. ProductCode și altele.
Lista 7: Câteva tipuri simple de elemente
Elementele cu atribute trebuie să aibă un tip complex
Dacă încercați să adăugați atributul valută elementului de preț simplu din listare 7, aceasta va duce la o eroare. Un element de tip simplu nu poate avea atribute. Dacă doriți să adăugați un atribut, trebuie să definiți prețul ca fiind un tip complex. În exemplul Listing 8, am stabilit că un tip este numit tip anonim, cu excepția cazului în care este dat un nume explicit. Cu alte cuvinte, atributul name al elementului complexType nu este definit.
Lista 8: Tip de element complex
Elementele care au elemente imbricate trebuie să aibă un tip complex
Tabelul 1: Compararea tipurilor de date complexe în Schema DTD și XML.
Lista 9: Un tip complex definit de tipuri simple globale
În exemplele din tabelele 1 și 9, BookType este global și poate fi utilizat pentru a defini alte elemente. În schimb, listele 10 definesc BookType local în elementul Cartea și, în plus, îl face fără nume. Rețineți că fragmentul de document XML din Tabelul 1 corespunde tuturor celor trei fragmente de schemă din Tabelul 1. Listing 9 și Listing 10.
Listarea 10: Ascunderea tipului de carte ca tip local
Impunerea condițiilor complexe asupra elementelor
Schema XML oferă o flexibilitate mult mai mare pentru a stabili condițiile impuse modelului de conținut al elementelor decât DTD. La cel mai simplu nivel, ca într-un DTD, puteți asocia atributele cu elemente și puteți determina numărul de apariții de elemente (numai unul zero sau unul (?), Zero sau mai mult (*) sau unul sau mai multe elemente din acest set. Schema, puteți exprima și constrângeri suplimentare utilizând, de exemplu, atributele minOccurs și maxOccurs ale elementului element, precum și folosind elementele choice.group și .all.
Lista 11: Exprimarea constrângerilor asupra tipurilor de elemente
Lista 12: Indică faptul că un element trebuie definit pentru toate tipurile
Puteți continua să studiați schema XML utilizând documentația de pe site-ul Web W3C (consultați Resursele) și răsfoiți pentru cea mai bună acoperire a zonei dW XML. Acum că specificația schemei XML a fost adoptată ca o recomandare W3C, tot mai mulți oameni o vor folosi.