XML Database Schema Tutorial

XML Schema (eller XSD) er W3C-foreslo språket til å definere struktur og datatyper en XML-database. Den erstatter den eldre DTD språk og inneholder en rekke forbedringer i forhold til det, inkludert standard datatyper for å sikre kompatibilitet mellom plattformer og programvare, konsekvent bruk av XML egen syntaks for å forenkle XML database automatiserte parsing og lett extendability.

Enkle og komplekse typer

XML Schema beskriver XML-elementer i en av to typer: enkle og komplekse. Et eksempel på en enkel type i XML ville være følgende gate Type:

<Street> Lite Fox Lane </ street>

Den tilsvarende definisjon av gate i XSD:

<Xs: element name = "gata" type = "xs: string" />

Og i den eldre DTD standarden som XSD er ment å erstatte:

<! ELEMENT street (#PCDATA)>

XML, eller til og med HTML / CSS, vil gjenkjenne XSD syntaks som mer intuitivt enn DTD syntaks.

Man kan se ovenfor at den enkle typen av element definerer en datadel. En kompleks-type, ved sammenligning, vil gruppere sammen en stor mengde data. Tenk på følgende XML-database:

<Adresse>

&lt;streetNumber>412&lt;/streetNumber>
&lt;street>Little Fox Lane&lt;/street>
&lt;city>Fort Worth&lt;/city>
&lt;state>Texas&lt;/state>
&lt;zip>76108&lt;/zip>

</ Adresse>

Adressen vil være en kompleks typen element når vi definere dets egenskaper i XSD i det følgende eksempel, som vil bli henvist til for resten av artikkelen:

<Xs: element name = "adresse">

&lt;xs:complexType>
&lt;xs:sequence>
&lt;xs:element name="streetNumber" type="xs:integer"/>
&lt;xs:element name="street" type="xs:string"/>
&lt;xs:element name="city" type="xs:string"/>
&lt;xs:element name="state" type="xs:string"/>
&lt;xs:element name="zip">
&lt;xs:simpleType>
&lt;xs:restriction base="xs:integer">
&lt;xs:length value="5"/>
&lt;/xs:restriction>
&lt;/xs:simpleType>
&lt;/xs:element>
&lt;/xs:sequence>
&lt;/xs:complexType>

</ Xs: element>

restriksjoner

I ovennevnte XSD erklæringen, er det også et eksempel på to andre viktige funksjoner i XML Schema Definition Language: sin støtte for et sett av standardiserte datatyper for vanlige typer informasjon og sin støtte til restriksjoner på akseptable data. Du kan se at elementer streetNumber og zip må være heltall, noe som betyr at bare tallverdiene vil være akseptabelt. Forsøk på å skrive inn bokstaver vil heve en feil, slik at dårlige data kan bli tatt så tidlig som mulig. Du kan også se at zip inkluderer en begrensning: du prøver å legge inn et postnummer med mer eller mindre enn 5 sifre vil også resultere i en feil.