Oefening 5.3.6: Extensions en restrictions

In deze oefening gaan we het schema “Procesdocumentatie6.xsd”, dat je in de voorgaande oefening hebt bewaard zo aanpassen dat we …

Bewaar gedurende de onderstaande oefeining wedrom zelf regelmatig het bestand.

Opdracht

  • Ga naar het XML-Schema ‘Procesdocumentatie4.xsd’ dat je in de voorgaande oefening hebt vervaardigd of open het opnieuw in ‘Altova XMLSpy’;
  • Wijzig zo nodig de editing modus naar “Text”;

Klantgegevens

  • We hebben in het XML-Schema op 3 locaties het element <klantgegevens> gedefinieerd. Knip het element <xs:complexType> dat direct in de elementdefinitie van <klantgegevens> binnen de structuur voor <orderbon> staat en plak deze onderaan het schema direct binnen het element <xs:schema>;
  • Definieer op het element <xs:complexType> dat we zojuist geplaatst hebben een name attribuut en geef dat de waarde Klant;
  • Maak van het element <klantgegevens> waaruit we zojuist het element <xs:complexType> hebben geknipt een leeg element en plaats er het attribuut type met de waarde ‘Klant’ op;
  • Doe met de twee andere <klantgegevens> elementen hetzelfde. Daarvoor moet je daar het <xs:complexType> verwijderen;
  • Bewaar het bestand;
  • Wijzig de editing modus naar “Schema” en klik op ‘orderbon’;
  • Je ziet nu het schema in een grafische structuur waarin je de verschillende XML-Schema componenten open en dicht kunt klikken door op de plusjes of minnetjes achter de elementnamen te klikken. Klik ‘klantgegevens’ open;
  • Je ziet nu een geel vlak met linksbovenin de naam ‘Klant’. Dit gele vlak vertegenwoordigd de ‘complexType’ op het hoogste niveau dat we zojuist hebben vervaardigd;
  • Via de knop ToRootView linksboven kun je weer terug naar de vorige view. Bekijk ook even de grafische structuur voor ‘factuur’ en ‘betaalbevestiging’;
  • Wijzig de editing modus weer naar “Text”.
  • Kijk nu of je dezelfde techniek los kunt laten op de elementen <naam>, <adres>, <ordergegevens>, <artikel> en <leveringsgegevens> maar LET OP! vervang de inhoud van de elementen <ordergegevens> en <artikel> binnen <factuur> nog niet. Dat laatste element ziet er daar nl. iets anders uit dan op de andere plaatsen. Het bevat daar nl. ook het element <stuksprijs>.
  • Pas dezelfde techniek toe op het element <ordergegevens> binnen <factuur> maar noem die complexType ‘FactuurOrder’;
  • Pas ook weer dezelfde techniek toe op het element <artikel> binnen de complexType ‘FactuurOrder’ en noem dat complexType ‘ArtikelMetPrijs’;
  • Bewaar het bestand en bekijk de root elementen weer in Schema view.

SimpleType

  • Op <xs:simpleType> elementen kun je dezelfde techniek toepassen. Doe dat op de elementen <voorletters>, <postcode>, <ordernummer> en het attribuut afleverstatus;
  • Bewaar het bestand, bewaar het ook meteen als “Procesdocumentatie6.xsd” en bekijk de root elementen weer in Schema view.