Skip to content

Archives

  • ianuarie 2022
  • decembrie 2021
  • noiembrie 2021
  • octombrie 2021
  • septembrie 2021

Categories

  • Nicio categorie
Trend RepositoryArticles and guides
Articles

Un exemplu XSD

On septembrie 29, 2021 by admin

Acest capitol va demonstra cum se scrie o schemă XML. De asemenea, veți învăța că o schemă poate fi scrisă în diferite moduri.

  • Un document XML
  • Crearea unei scheme XML
  • Divizează schema
  • Utilizarea tipurilor numite

Un document XML

Să ne uităm la acest document XML numit „shiporder.xml”:

Crearea unei scheme XML

Acum dorim să creăm o schemă pentru documentul XML de mai sus.

Începem prin a deschide un nou fișier pe care îl vom numi „shiporder.xsd”. Pentru a crea schema am putea pur și simplu să urmărim structura din documentul XML și să definim fiecare element așa cum îl găsim. Vom începe cu declarația XML standard urmată de elementul xs:schema care definește o schemă:

<?xml version=”1.0″ encoding=”UTF-8″ ?>
<xs:schema xmlns:xs=”http://www.w3.org/2001/XMLSchema”>
….
</xs:schema>

În schema de mai sus folosim spațiul de nume standard (xs), iar URI-ul asociat cu acest spațiu de nume este definiția limbajului Schema, care are valoarea standard de http://www.w3.org/2001/XMLSchema.

În continuare, trebuie să definim elementul „shiporder”. Acest element are un atribut și conține alte elemente, prin urmare îl considerăm ca fiind un tip complex. Elementele copil ale elementului „shiporder” sunt înconjurate de un element xs:sequence care definește o secvență ordonată de subelemente:

<xs:element name=”shiporder”>
<xs:complexType>
<xs:sequence>
….
</xs:sequence>
</xs:complexType>
</xs:element>

Apoi trebuie să definim elementul „orderperson” ca fiind un tip simplu (pentru că nu conține atribute sau alte elemente). Tipul (xs:string) este prefixat cu prefixul de spațiu de nume asociat cu XML Schema care indică un tip de date predefinit de schemă:

<xs:element name=”orderperson” type=”xs:string”/>

În continuare, trebuie să definim două elemente care sunt de tip complex: „shipto” și „item”. Începem prin a defini elementul „shipto”:

Cu ajutorul schemelor putem defini numărul de apariții posibile pentru un element cu ajutorul atributelor maxOccurs și minOccurs. maxOccurs specifică numărul maxim de apariții pentru un element, iar minOccurs specifică numărul minim de apariții pentru un element. Valoarea implicită atât pentru maxOccurs, cât și pentru minOccurs este 1!

Acum putem defini elementul „item”. Acest element poate apărea de mai multe ori în interiorul unui element „shiporder”. Acest lucru este specificat prin setarea atributului maxOccurs al elementului „item” la „unbounded”, ceea ce înseamnă că pot exista atâtea apariții ale elementului „item” câte dorește autorul. Observați că elementul „note” este opțional. Am specificat acest lucru prin setarea atributului minOccurs la zero:

Acum putem declara atributul elementului „shiporder”. Deoarece acesta este un atribut obligatoriu, specificăm use=”required”.

Nota: Declarațiile de atribut trebuie să fie întotdeauna ultimele:

<xs:attribute name=”orderid” type=”xs:string” use=”required”/>

Iată lista completă a fișierului de schemă numit „shiporder.xsd”:

Divizează schema

Metoda de proiectare anterioară este foarte simplă, dar poate fi dificil de citit și de întreținut atunci când documentele sunt complexe.

Următoarea metodă de proiectare se bazează pe definirea mai întâi a tuturor elementelor și atributelor, iar apoi se face referire la ele folosind atributul ref.

Iată noua proiectare a fișierului de schemă („shiporder.xsd”):

Utilizarea tipurilor numite

A treia metodă de proiectare definește clase sau tipuri, care ne permite să reutilizăm definițiile elementelor. Acest lucru se face prin numirea elementelor simpleTypes și complexTypes, iar apoi se indică spre ele prin atributul type al elementului.

Iată a treia metodă de proiectare a fișierului de schemă („shiporder.xsd”):

Elementul restriction indică faptul că tipul de date este derivat dintr-un tip de date din spațiul de nume W3C XML Schema. Astfel, următorul fragment înseamnă că valoarea elementului sau a atributului trebuie să fie o valoare de șir de caractere:

<xs:restriction base=”xs:string”>

Elementul de restricție este mai des utilizat pentru a aplica restricții elementelor. Priviți următoarele linii din schema de mai sus:

<xs:simpleType name=”orderidtype”>
<xs:restriction base=”xs:string”>
<xs:pattern value=”{6}”/>
</xs:restriction>
</xs:simpleType>

Aceasta indică faptul că valoarea elementului sau atributului trebuie să fie un șir de caractere, trebuie să aibă exact șase caractere la rând, iar aceste caractere trebuie să fie un număr de la 0 la 9.

Lasă un răspuns Anulează răspunsul

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

Arhive

  • ianuarie 2022
  • decembrie 2021
  • noiembrie 2021
  • octombrie 2021
  • septembrie 2021

Meta

  • Autentificare
  • Flux intrări
  • Flux comentarii
  • WordPress.org
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Theme by ThemeinProgress | Proudly powered by WordPress