Relația părinte/copil
Relația părinte/copil este un subiect cheie în schemele de date. Aceasta reprezintă structura de bază a ierarhiei modelului de date prin stabilirea clară a configurației de sus în jos. Vedeți acest fragment de cod care arată cum filmele au actori asociați cu ele:
<xsd:complexType name="MovieType">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="actor" type="ActorType" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ActorType">
<xsd:sequence>
<xsd:element name="lname" type="xsd:string"/>
<xsd:element name="fname" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
Figura 5: Relația părinte/copil
În fiecare MovieType, există un element numit „actor” care este din „ActorType”. Când documentul XML este populat cu informații, etichetele din jur pentru actor vor fi <actor></actor>
și nu
. Pentru a menține schema dvs. fluidă și fără erori, câmpul type din elementul părinte va fi întotdeauna egal cu câmpul name din declarația elementului copil complexType.
<ActorType></ActorType>
Atribute și restricții
Un atribut al unei entități este un obiect simpleType prin aceea că conține o singură valoare. <xsd:element name="lname" type="xsd:string"/>
este un bun exemplu de atribut. Este declarat ca element, are un nume asociat și are o declarație type. Atributele sunt incredibil de simplu de utilizat, până când încercați să le restricționați.
În unele cazuri, anumite date trebuie să respecte un standard pentru a menține integritatea datelor. Un exemplu în acest sens ar fi un număr de securitate socială sau o adresă de e-mail. Dacă aveți o bază de date de adrese de e-mail la care trimite e-mailuri în masă, veți avea nevoie ca toate să fie adrese valide, altfel veți primi o mulțime de mesaje de eroare de fiecare dată când trimiteți acel e-mail în masă. Pentru a evita această problemă, puteți, în esență, să luați un type simplu cunoscut și să adăugați o restricție pentru a se potrivi mai bine nevoilor dvs. Acum puteți face acest lucru în două moduri, dar unul este mai simplu și mai bine de utilizat în schemele de date. Puteți edita simpleType în declarația sa din elementul părinte, dar devine dezordonat, iar dacă o altă schemă dorește să-l folosească, codul trebuie scris din nou. Cel mai bun mod de a face acest lucru este să enumerați un type nou în partea de jos a schemei care editează un type simplu cunoscut anterior. Iată un exemplu în acest sens cu un număr de securitate socială:
<xsd:simpleType name="emailaddressType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[^@]+@[^\.]+\..+"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ssnType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d{3}-\d{2}-\d{4}"/>
</xsd:restriction>
</xsd:simpleType>
Figura 6: Restricție pe un simpleType
Acesta a fost inclus în schema de sub ultimul element copil și înainte de închiderea </xsd:schema>
. Prima linie declară simpleType și îi dă un nume, „ssnType”. Le puteți denumi oricum doriți, atâta timp cât faceții referire la ele corect în cadrul schemei. Procedând astfel, puteți utiliza acest tip oriunde în schemă sau oriunde în altă schemă, cu condiția ca referințele să fie corecte. A doua linie informează schema că este un tip restricționat și baza sa este un șir definit în spațiul de nume implicit. Practic, acest tip este un șir cu o restricție, iar a treia linie este restricția reală. Poate fi una dintre multele tipuri de restricții. Aceasta se întâmplă să fie de tip „pattern”. Un „pattern” înseamnă că doar o anumită secvență de caractere va fi permisă în documentul XML și este definită în câmpul de valoare. Aceasta înseamnă trei cifre, o cratimă, două cifre, o cratimă și patru cifre. Pentru a afla mai multe despre cum să utilizați restricțiile, urmați acest link către secțiunea despre restricții a școlii W3.
(Include texte din Wikibooks traduse și adaptate de Nicolae Sfetcu)
Lasă un răspuns