Skip to content

Archives

  • 2022 január
  • 2021 december
  • 2021 november
  • 2021 október
  • 2021 szeptember

Categories

  • Nincs kategória
Trend RepositoryArticles and guides
Articles

Egy XSD-példa

On szeptember 29, 2021 by admin

Ez a fejezet bemutatja, hogyan kell XML-sémát írni. Azt is megtudhatja, hogy egy sémát különböző módon lehet megírni.

  • Egy XML dokumentum
  • Egy XML-séma létrehozása
  • A séma felosztása
  • Nevezett típusok használata

Egy XML dokumentum

Nézzük meg ezt a “shiporder” nevű XML dokumentumot.xml”:

Egy XML-séma létrehozása

Most szeretnénk létrehozni egy sémát a fenti XML-dokumentumhoz.

Egy új fájl megnyitásával kezdjük, amelyet “shiporder.xsd”-nek fogunk hívni. A séma létrehozásához egyszerűen követhetjük az XML-dokumentum szerkezetét, és minden egyes elemet úgy definiálunk, ahogyan megtaláljuk. A szabványos XML deklarációval kezdünk, amelyet a sémát definiáló xs:schema elem követ:

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

A fenti sémában a szabványos névteret (xs) használjuk, és az ehhez a névtérhez tartozó URI a Schema nyelvi definíció, amelynek szabványos értéke http://www.w3.org/2001/XMLSchema.

A következőkben a “shiporder” elemet kell definiálnunk. Ez az elem egy attribútummal rendelkezik, és más elemeket is tartalmaz, ezért összetett típusnak tekintjük. A “shiporder” elem gyermekelemeit egy xs:sequence elem veszi körül, amely az alelemek rendezett sorozatát határozza meg:

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

Ezután a “orderperson” elemet egyszerű típusként kell definiálnunk (mivel nem tartalmaz attribútumokat vagy más elemeket). A típus (xs:string) elé az XML Schemához kapcsolódó névtér-előtag kerül, amely egy előre definiált séma adattípust jelöl:

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

A következőkben két összetett típusú elemet kell definiálnunk: “shipto” és “item”. A “shipto” elem definiálásával kezdjük:

A sémák segítségével a maxOccurs és minOccurs attribútumokkal meghatározhatjuk egy elem lehetséges előfordulásainak számát. maxOccurs az elem maximális előfordulásainak számát, minOccurs pedig az elem minimális előfordulásainak számát adja meg. Az alapértelmezett érték mind a maxOccurs, mind a minOccurs esetében 1!

Most definiálhatjuk az “item” elemet. Ez az elem többször is megjelenhet egy “shiporder” elemen belül. Ezt úgy határozzuk meg, hogy az “item” elem maxOccurs attribútumát “unbounded”-re állítjuk, ami azt jelenti, hogy az “item” elem annyiszor fordulhat elő, ahányszor a szerző szeretné. Vegyük észre, hogy a “note” elem opcionális. Ezt a minOccurs attribútum nullára állításával határoztuk meg:

Most deklarálhatjuk a “shiporder” elem attribútumát. Mivel ez egy kötelező attribútum, megadjuk a use=”required” értéket.

Figyelem: Az attribútum deklarációknak mindig utolsónak kell következniük:

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

Itt van a “shiporder” nevű sémafájl teljes listája.xsd”:

A séma felosztása

Az előző tervezési módszer nagyon egyszerű, de nehezen olvasható és karbantartható, ha a dokumentumok összetettek.

A következő tervezési módszer azon alapul, hogy először minden elemet és attribútumot definiálunk, majd a ref attribútummal hivatkozunk rájuk.

Itt a sémafájl (“shiporder.xsd”) új tervezése:

Nevezett típusok használata

A harmadik tervezési módszer osztályokat vagy típusokat definiál, ami lehetővé teszi az elemdefiníciók újrafelhasználását. Ez úgy történik, hogy a simpleTypes és complexTypes elemeket elnevezzük, majd az elem type attribútumán keresztül mutatunk rájuk.

Itt a sémafájl (“shiporder.xsd”) harmadik tervezési módja:

A restriction elem jelzi, hogy az adattípus a W3C XML Schema névtér valamelyik adattípusából származik. A következő töredék tehát azt jelenti, hogy az elem vagy attribútum értékének string értéknek kell lennie:

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

A restriction elemet gyakrabban használják az elemekre vonatkozó korlátozások alkalmazására. Nézzük meg a következő sorokat a fenti sémából:

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

Ez azt jelzi, hogy az elem vagy attribútum értékének stringnek kell lennie, pontosan hat karakterből kell állnia egy sorban, és ezeknek a karaktereknek 0 és 9 közötti számoknak kell lenniük.

Vélemény, hozzászólás? Kilépés a válaszból

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Archívum

  • 2022 január
  • 2021 december
  • 2021 november
  • 2021 október
  • 2021 szeptember

Meta

  • Bejelentkezés
  • Bejegyzések hírcsatorna
  • Hozzászólások hírcsatorna
  • WordPress Magyarország
  • 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