Skip to content

Archives

  • januari 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021

Categories

  • Geen categorieën
Trend RepositoryArticles and guides
Articles

Een XSD Voorbeeld

On september 29, 2021 by admin

Dit hoofdstuk laat zien hoe u een XML Schema kunt schrijven. U zult ook leren dat een schema op verschillende manieren kan worden geschreven.

  • Een XML-document
  • Maak een XML Schema
  • Verdeel het schema
  • Gebruik maken van Named Types

Een XML-document

Laten we eens kijken naar dit XML-document met de naam “shiporder.xml”:

Maak een XML Schema

Nu willen we een schema maken voor bovenstaand XML document.

We beginnen met het openen van een nieuw bestand dat we “shiporder.xsd” zullen noemen. Om het schema te maken zouden we eenvoudigweg de structuur in het XML document kunnen volgen en elk element definiëren zoals we het aantreffen. We beginnen met de standaard XML-declaratie gevolgd door het xs:schema element dat een schema definieert:

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

In het bovenstaande schema gebruiken we de standaard namespace (xs), en de URI die aan deze namespace is gekoppeld, is de taaldefinitie van het schema, die de standaardwaarde http://www.w3.org/2001/XMLSchema heeft.

Daarnaast moeten we het “shiporder” element definiëren. Dit element heeft een attribuut en het bevat andere elementen, daarom beschouwen we het als een complex type. De child-elementen van het “shiporder”-element worden omgeven door een xs:sequence-element dat een geordende reeks subelementen definieert:

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

Daarna moeten we het element “orderperson” definiëren als een eenvoudig type (omdat het geen attributen of andere elementen bevat). Het type (xs:string) wordt voorafgegaan door het namespace-voorvoegsel dat hoort bij XML Schema en een vooraf gedefinieerd schemagegevenstype aangeeft:

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

Volgende moeten we twee elementen definiëren die van het complexe type zijn: “shipto” en “item”. We beginnen met de definitie van het “shipto”-element:

Met schema’s kunnen we het aantal mogelijke occurrences voor een element definiëren met de maxOccurs- en minOccurs-attributen. maxOccurs specificeert het maximum aantal occurrences voor een element en minOccurs specificeert het minimum aantal occurrences voor een element. De standaardwaarde voor zowel maxOccurs als minOccurs is 1!

Nu kunnen we het “item” element definiëren. Dit element kan meerdere malen voorkomen binnen een “shiporder” element. Dit wordt gespecificeerd door het maxOccurs attribuut van het “item” element op “unbounded” te zetten, wat betekent dat het “item” element zo vaak kan voorkomen als de auteur wenst. Merk op dat het “note” element optioneel is. We hebben dit gespecificeerd door het minOccurs attribuut op nul te zetten:

We kunnen nu het attribuut van het “shiporder” element declareren. Aangezien dit een verplicht attribuut is, specificeren we use=”required”.

Note: De attribuutdeclaraties moeten altijd als laatste komen:

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

Hier volgt de volledige lijst van het schema-bestand met de naam “shiporder.xsd”:

Verdeel het schema

De vorige ontwerpmethode is heel eenvoudig, maar kan moeilijk te lezen en te onderhouden zijn als de documenten complex zijn.

De volgende ontwerp-methode is gebaseerd op het eerst definiëren van alle elementen en attributen, en er vervolgens naar te verwijzen met behulp van het ref attribuut.

Hier volgt het nieuwe ontwerp van het schema-bestand (“shiporder.xsd”):

Gebruik maken van Named Types

De derde ontwerp-methode definieert klassen of typen, die ons in staat stellen element-definities te hergebruiken. Dit wordt gedaan door de elementen simpleTypes en complexTypes een naam te geven, en er vervolgens naar te verwijzen via het type-attribuut van het element.

Hier volgt het derde ontwerp van het schema-bestand (“shiporder.xsd”):

Het restrictie-element geeft aan dat het datatype is afgeleid van een W3C XML Schema namespace datatype. Het volgende fragment betekent dus dat de waarde van het element of attribuut een string-waarde moet zijn:

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

Het restriction-element wordt vaker gebruikt om beperkingen op elementen toe te passen. Kijk eens naar de volgende regels uit het schema hierboven:

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

Dit geeft aan dat de waarde van het element of attribuut een string moet zijn, uit precies zes tekens achter elkaar moet bestaan, en dat deze tekens een getal van 0 tot en met 9 moeten zijn.

Geef een antwoord Antwoord annuleren

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Archieven

  • januari 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021

Meta

  • Inloggen
  • Berichten feed
  • Reacties feed
  • 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