Visual Basic 2012 Voorbeelden
   

visual basic 2012 broncode voorbeelden

Blijf op de hoogte van de recente aanpassingen op vbvoorbeelden!

Microsoft Visual Studio 2012Microsoft Developers Network - Visual BasicMicrosoft .NET Framework

30.8. XSD complexType simpleContent extension Definities

Print Email Deel op Twitter Deel op Facebook

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.

Stel dat we volgende XML data willen valideren :
XML Instantie
<?xml version="1.0" encoding="utf-8" ?>
<employee id="E001">John</employee>
Het employee element bevat een tekstuele waarde om de naam van deze werknemer op te geven.
Volgend schema zou dus alvast een goed start zijn :
XML Schema Definition
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="employee" type="xsd:string" />
</xsd:schema>
Toch houdt dit schema nog geen rekening met het id attribuut dat mag of moet voorkomen.

Aan de hand van een simpleType kunnen we in het schema dit element niet definiëren, een simpleType kan immers geen attributen bevatten.  Enkel een complexType is hier dus mogelijk.  We wensen echter ook dat de inhoud van een employee element van type xsd:string is.
We kunnen hiervoor een complexType baseren op een simpel type als xsd:string :
XML Schema Definition
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="employee">
    <xsd:complexType>
      <xsd:simpleContent>
        <xsd:extension base="xsd:string">
          <xsd:attribute name="id" type="xsd:string"/>
        </xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>
Het complexType element in het schema start hier de definitie van een nieuw type voor employee.  Om aan te geven dat de inhoud van elementen van dit nieuwe type rechtstreeks data bevatten, en dus geen childelementen bevatten, gebruiken we in het schema een simpleContent element.
Het extension element van het schema geeft aan dat deze rechtstreekse inhoud meer is dan louter xsd:string, er kan immers ook nog een attribuut id aanwezig zijn.

Het hiervoor vermelde XML document is nu conform dit schema.

Met uitzondering van de xsd:unions en xsd:lists herinner je je waarschijnlijk nog dat simpleTypes altijd bestonden uit een beperking (xsd:restriction) van een bepaald ander simpel type.  Bij complexTypes kan het dus ook een uitbreiding (xsd:extension) zijn van een bepaald type.

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.