Skip to content

Archives

  • tammikuu 2022
  • joulukuu 2021
  • marraskuu 2021
  • lokakuu 2021
  • syyskuu 2021

Categories

  • Ei kategorioita
Trend RepositoryArticles and guides
Articles

An XSD Example

On 29 syyskuun, 2021 by admin

Tässä luvussa esitellään XML-skeeman kirjoittaminen. Opit myös, että skeema voidaan kirjoittaa eri tavoin.

  • An XML Document
  • XML-skeeman luominen
  • Skeeman jakaminen
  • Käyttämällä nimettyjä tyyppejä

An XML Document

Katsotaanpa tätä XML-dokumenttia nimeltä ”shiporder.xml”:

XML-skeeman luominen

Haluamme nyt luoda skeeman yllä olevalle XML-dokumentille.

Aloitamme avaamalla uuden tiedoston, jota kutsumme nimellä ”shiporder.xsd”. Luodaksemme skeeman voisimme yksinkertaisesti seurata XML-dokumentin rakennetta ja määritellä jokaisen elementin sitä mukaa kuin löydämme sen. Aloitamme tavallisella XML-julistuksella, jota seuraa xs:schema-elementti, joka määrittelee skeeman:

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

Yllä olevassa skeemassa käytämme vakiomuotoista nimiavaruutta (xs), ja tähän nimiavaruuteen liittyvä URI on Schema-kielen määritelmä, jonka vakioarvo on http://www.w3.org/2001/XMLSchema.

Seuraavaksi meidän on määriteltävä ”shiporder”-elementti. Tällä elementillä on attribuutti ja se sisältää muita elementtejä, joten pidämme sitä monimutkaisena tyyppinä. ”shiporder”-elementin lapsielementtejä ympäröi xs:sequence-elementti, joka määrittelee alaelementtien järjestetyn sarjan:

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

Tällöin meidän on määriteltävä elementti ”tilaushenkilö” yksinkertaiseksi tyypiksi (koska se ei sisällä attribuutteja tai muita elementtejä). Tyypin (xs:string) etuliitteenä on XML Schemaan liittyvä nimiavaruuden etuliite, joka ilmaisee ennalta määritellyn skeematietotyypin:

<xs:element name=”tilaushenkilö” type=”xs:string”/>

Seuraavaksi on määriteltävä kaksi elementtiä, jotka ovat kompleksista tyyppiä: ”shipto” ja ”item”. Aloitamme määrittelemällä ”shipto”-elementin:

Skeemojen avulla voimme määritellä elementin mahdollisten esiintymien määrän maxOccurs- ja minOccurs-attribuuttien avulla. maxOccurs määrittää elementin esiintymien maksimimäärän ja minOccurs määrittää elementin esiintymien minimimäärän. Sekä maxOccursin että minOccursin oletusarvo on 1!

Nyt voimme määritellä elementin ”item”. Tämä elementti voi esiintyä useita kertoja ”shiporder”-elementin sisällä. Tämä määritetään asettamalla ”item”-elementin maxOccurs-attribuutin arvoksi ”unbounded”, mikä tarkoittaa, että ”item”-elementtiä voi esiintyä niin monta kertaa kuin tekijä haluaa. Huomaa, että ”note”-elementti on valinnainen. Olemme määritelleet tämän asettamalla minOccurs-attribuutin arvoksi nolla:

Voidaan nyt ilmoittaa ”shiporder”-elementin attribuutti. Koska kyseessä on pakollinen attribuutti, määrittelemme use=”required”.

Huomautus: Attribuutti-ilmoitusten on aina tultava viimeisenä:

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

Tässä on täydellinen listaus skeematiedostosta nimeltä ”shiporder.xsd”:

Skeeman jakaminen

Edellinen suunnittelumenetelmä on hyvin yksinkertainen, mutta voi olla vaikea lukea ja ylläpitää, kun asiakirjat ovat monimutkaisia.

Seuraava suunnittelumenetelmä perustuu siihen, että kaikki elementit ja attribuutit määritellään ensin ja sitten niihin viitataan ref-attribuutilla.

Tässä on skeematiedoston (”shiporder.xsd”) uusi rakenne:

Käyttämällä nimettyjä tyyppejä

Kolmannessa suunnittelumenetelmässä määritellään luokkia tai tyyppejä, mikä mahdollistaa elementtimäärittelyjen käyttämisen uudelleen. Tämä tapahtuu nimeämällä simpleTypes- ja complexTypes-elementit ja osoittamalla niihin elementin type-attribuutin kautta.

Tässä on skeematiedoston (”shiporder.xsd”) kolmas suunnittelutapa:

Rajoituselementti ilmaisee, että tietotyyppi on johdettu W3C:n XML Schema -nimiavaruuden tietotyypistä. Seuraava katkelma tarkoittaa siis, että elementin tai attribuutin arvon on oltava merkkijonoarvo:

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

Rajoituselementtiä käytetään useammin rajoitusten soveltamiseen elementteihin. Katso seuraavia rivejä yllä olevasta skeemasta:

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

Tämä ilmaisee, että elementin tai attribuutin arvon on oltava merkkijono, siinä on oltava täsmälleen kuusi merkkiä peräkkäin ja näiden merkkien on oltava numeroita 0-9.

Vastaa Peruuta vastaus

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

Arkistot

  • tammikuu 2022
  • joulukuu 2021
  • marraskuu 2021
  • lokakuu 2021
  • syyskuu 2021

Meta

  • Kirjaudu sisään
  • Sisältösyöte
  • Kommenttisyöte
  • 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