Home » Articole » RO » Calculatoare » Dezvoltarea web » XML » Scheme XML și referințe pentru schemele XML

Scheme XML și referințe pentru schemele XML

postat în: XML 0

Schema XML

O schemă XML este un document XML. Schemele XML au o extensie de fișier .xsd.

O schemă XML este utilizată pentru a guverna structura și conținutul unui document XML prin furnizarea unui șablon pentru documentele XML de urmat pentru a fi valide. Este un ghid pentru cum să vă structurați documentul XML, precum și pentru a indica componentele documentului XML (elemente și atribute – și relațiile acestora). Un editor XML va examina un document XML pentru a se asigura că acesta este conform cu specificațiile schemei XML în care este scris – pentru a se asigura că este valid.

Schemele XML generează încredere în transferul de date. Cu schemele, receptorul de date poate fi sigur că datele sunt conforme cu așteptările. Expeditorul și receptorul au o înțelegere reciprocă a ceea ce reprezintă datele.

Deoarece o schemă XML este un document XML, utilizați același limbaj – sintaxa standard de marcare XML – cu elemente și atribute specifice schemelor.

O schemă definește:

  • structura documentului
  • elementele
  • atributele
  • elementele copilului
  • numărul de elemente copil
  • ordinea elementelor
  • numele și conținutul tuturor elementelor
  • tipul de date pentru fiecare element

Referință pentru schemă

Aceasta este partea din documentul XML care face referire la o schemă XML:

Exemplul 5: Referința schemei documentului XML

  <tourGuide
      xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
      xsi:noNamespaceSchemaLocation='city.xsd'>

Aceasta este partea pe care am lăsat-o deoparte când am descris elementul rădăcină în documentul XML de bază din secțiunea anterioară. Atributele suplimentare ale elementului rădăcină <tourGuide> fac referire la schema XML (este atributul schemaLocation).

xmlns:xsi = ‘http: //www.w3.org/2001/XMLSchema-instance  – face referire la spațiul de nume instanță W3C Schema
xsi:noNamespaceSchemaLocation = ‘city.xsd’ – face referire la documentul schemei XML (city.xsd)

Document schemă

Mai jos este un exemplu de schemă XML utilizând modelul nostru TourGuide. Ne vom referi la el în timp ce descriem părțile unei scheme XML.

Exemplu 6: document schemă XML pentru entitatea city

  <?xml version="1.0" encoding="UTF-8"?>
  <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   elementFormDefault="unqualified">  
    <xsd:element name="tourGuide">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="city" type="cityDetails" minOccurs = "1" maxOccurs="unbounded" />
            </xsd:sequence>
        </xsd:complexType>
     </xsd:element>
     <xsd:complexType name="cityDetails">
        <xsd:sequence> 
             <xsd:element name="cityName" type="xsd:string"/>
             <xsd:element name="adminUnit" type="xsd:string"/>
             <xsd:element name="country" type="xsd:string"/>
             <xsd:element name="population" type="xsd:integer"/>
             <xsd:element name="area" type="xsd:integer"/>
             <xsd:element name="elevation" type="xsd:integer"/>
             <xsd:element name="longitude" type="xsd:decimal"/>
             <xsd:element name="latitude" type="xsd:decimal"/>
             <xsd:element name="description" type="xsd:string"/>
             <xsd:element name="history" type="xsd:string"/>
         </xsd:sequence>
     </xsd:complexType>
  </xsd:schema>
  <!--
    Note: Latitude and Longitude are decimal data types.
    The conversion is from the usual form (e.g., 50º 17' 35")
    to a decimal by using the formula degrees+min/60+secs/3600.
  -->

Prolog

Amintiți-vă că schema XML este în esență un document XML și, prin urmare, trebuie să înceapă cu prologul, care, în cazul unei scheme, include:

  • declarația XML
  • declarația elementului de schemă

Declarația XML:

  <?xml version="1.0" encoding="UTF-8"?>

Declarația elementului schemei:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified">

Elementul schemă este similar cu un element rădăcină – conține toate celelalte elemente din schemă.

Atributele elementului schemă includ:

xmlns – XML ​​NameSpace – adresa URL a site-ului care descrie elementele XML și tipurile de date utilizate în schemă.

xmlns:xsd – Toate elementele și atributele cu prefixul „xsd” aderă la vocabularul desemnat în spațiul de nume dat.

elementFormDefault – Elementele din spațiul de nume țintă sunt fie necesare, fie nu trebuie să fie calificate cu prefixul spațiului de nume. Acest lucru este util mai ales atunci când se face referință la mai multe spații de nume. În acest caz, „elementFormDefault” trebuie să fie calificat, deoarece trebuie să indicați ce spațiu de nume utilizați pentru fiecare element. Dacă faceți referire la un singur spațiu de nume, atunci „elementFormDefault” poate fi necalificat. Poate că utilizarea calificată ca implicită este cea mai prudentă, astfel nu uitați din greșeală să indicați la ce spațiu de nume faceți referire.

Declarații de elemente

Definesc elementele din schemă.

Includ:

  • numele elementului
  • tipul de date al elementului (opțional)

Format de declarație element de bază:
<xsd:element name="name"
type="type">

Tip simplu

declară elemente care:

  • NU au elemente pentru copii
  • NU au atribute

exemplu:
<xsd:element name="cityName"
type="xsd:string"
/>

Valoare implicită

Dacă unui element nu i se atribuie o valoare, atunci se atribuie valoarea implicită.

exemplu:
<xsd:element name="description"
type="xsd:string"
default="really cool place to visit!"
/>

Valoare fixă

Un atribut care este definit ca fix trebuie să fie gol sau să conțină valoarea fixă ​​specificată. Nu sunt permise alte valori.

exemplu:
<xsd:element name="description"
type="xsd:string"
'''fixed="you
must visit this place - it is awesome!"
'''
/>

Tip complex

declară elemente care:

  • pot avea elemente copil
  • pot avea atribute

exemple:

1. Elementul rădăcină „tourGuide” conține un element copil „city”. Acest lucru este prezentat aici:

Tipul complex fără nume
     <xsd:element name="tourGuide">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="city" type="cityDetails" minOccurs = "1" maxOccurs="unbounded" />
            </xsd:sequence>
        </xsd:complexType>
     </xsd:element>
Indicatori de ocurență:
  • minOccurs = numărul minim de ori în care poate apărea un element (aici este de 1 dată)
  • maxOccurs = numărul maxim de ori în care poate apărea un element (aici este un număr nelimitat de ori, „nelimitat”)

2. Elementul părinte „city” conține mai multe elemente copil: ‘cityName’, ‘adminUnit’, ‘country’, ‘population’, etc. De ce acest set complex de elemente nu începe cu linia:
<xsd:element name="city"
type="cityDetails">
? Elementul „city” a fost deja definit mai sus în cadrul elementului complex „tourGuide” și i s-a dat tipul „cityDetails”. Acest tip de date, „cityDetails”, este utilizat aici pentru identificarea secvenței elementelor copil pentru elementul părinte „city”.

Denumit tip complex – și, prin urmare, poate fi reutilizat în alte părți ale schemei

   <xsd:complexType name="cityDetails">
        <xsd:sequence>
             <xsd:element name="cityName" type="xsd:string"/>
             <xsd:element name="adminUnit" type="xsd:string"/>
             <xsd:element name="country" type="xsd:string"/>
             <xsd:element name="population" type="xsd:integer"/>
             <xsd:element name="area" type="xsd:integer"/>
             <xsd:element name="elevation" type="xsd:integer"/>
             <xsd:element name="longitude" type="xsd:decimal"/>
             <xsd:element name="latitude" type="xsd:decimal"/>
             <xsd:element name="description" type="xsd:string"/>
             <xsd:element name="history" type="xsd:string"/>
         </xsd:sequence>
   </xsd:complexType>

Eticheta <xsd:sequence> indică faptul că elementele copil trebuie să apară în ordinea, secvența, specificată aici.

3. Elementele care au atribute sunt, de asemenea, desemnate ca tip complex.

A. această linie de document XML:
<adminUnit class="state"
name="Cayo" />
ar fi definită în schema XML ca:

     <xsd:element name="adminUnit">
          <xsd:complexType>
               <xsd:attribute name="class" type="xsd:string" />
               <xsd:attribute name="name" type="xsd:string" />
          </xsd:complexType>
     </xsd:element>

b. această linie de document XML:
<adminUnit class="state">Cayo</adminUnit>
ar fi definită în schema XML ca:

     <xsd:element name="adminUnit">
          <xsd:complexType>
               <xsd:simpleContent>
             		<xsd:extension base="xsd:string">
                                <xsd:attribute name="class" type="xsd:string" />
                        </xsd:extension>
	       </xsd:simpleContent>
          </xsd:complexType>
     </xsd:element>

Declarații de atribute

Declarațiile de atribute sunt utilizate în definiții de tip complex. Am văzut câteva declarații de atribut în cel de-al treilea exemplu al Elementului de tip complex.

<xsd:attribute name="class" type="xsd:string" />

Declarații de tip date

Acestea sunt conținute în declarațiile de element și atribut ca: type=” „.

Tipuri de date comune ale schemei XML

Schema XML are o mulțime de tipuri de date încorporate. Cele mai frecvente tipuri sunt:

string un șir de caractere
decimal un număr zecimal
integer un număr întreg
boolean valorile adevărate sau false sau 1 sau 0
date o dată, modelul de dată poate fi specificat, cum ar fi AAAA-LL-ZZ
time o oră a zilei, modelul orar poate fi specificat, cum ar fi HH: MM: SS
dateTime o combinație de dată și oră
anyURI dacă elementul va conține o adresă URL

Pentru o listă întreagă de tipuri de date simple încorporate, consultați http://www.w3.org/TR/xmlschema-2/#built-in-datatypes

Include texte traduse din Wikibooks

Tehnologia Blockchain - Bitcoin
Tehnologia Blockchain – Bitcoin

Internetul a schimbat complet lumea, cultura şi obiceiurile oamenilor. După o primă fază caracterizată prin transferul liber al informaţiilor, au apărut preocupările pentru siguranţa comunicaţiilor online şi confidenţialitatea utilizatorilor. Tehnologia blockchain asigură ambele aceste deziderate. Relativ nouă, ea are şansa să producă … Citeşte mai mult

Nu a fost votat $2,99$5,16 Selectează opțiunile
Promovarea afacerilor prin campanii de marketing online
Promovarea afacerilor prin campanii de marketing online

Marketing online poate să facă oricine. La un moment dat , firma ta are sute de opţiuni pentru desfăşurarea unei campanii de marketing. Totul depinde de alegerile făcute. Poţi să scrii articole pe blog, să atragi clienţi cu anunțuri cu … Citeşte mai mult

Nu a fost votat $3,99$9,91 Selectează opțiunile
Ghid Facebook pentru utilizatori
Ghid Facebook pentru utilizatori

Facebook este, de departe, cea mai cunoscută reţea socială, care permite utilizatorilor înregistraţi să îşi creeze profiluri proprii, să încarce şi să partajeze cu prietenii fotografii şi clipuri video, să trimită mesaje şi să păstreze legătura cu prietenii, familia şi … Citeşte mai mult

Nu a fost votat $1,99$3,39 Selectează opțiunile

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *