Et Xsd-Eksempel
dette kapittelet viser hvordan DU skriver ET XML-Skjema. Du vil også lære at et skjema kan skrives på forskjellige måter.
ET XML-Dokument
La oss ta en titt på DETTE XML-dokumentet kalt » shiporder.xml»:
Lag ET XML-Skjema
nå vil Vi lage et skjema for XML-dokumentet ovenfor.
Vi starter med å åpne en ny fil som vi vil kalle » shiporder.xsd». For å lage skjemaet kan vi bare følge strukturen I XML-dokumentet og definere hvert element som vi finner det. Vi starter med STANDARD XML-erklæringen etterfulgt av xs: schema-elementet som definerer et skjema:
<xs:skjema xmlns: xs= » http://www.w3.org/2001/XMLSchema»>
…
</xs:skjema>
i skjemaet ovenfor bruker vi standardnavnerommet (xs), OG URI knyttet til dette navnerommet er Skjemaspråkdefinisjonen, som har standardverdien til http://www.w3.org/2001/XMLSchema.
Deretter må vi definere «shiporder» – elementet. Dette elementet har et attributt og det inneholder andre elementer, derfor anser vi det som en kompleks type. Barneelementene i» shiporder » – elementet er omgitt av et xs: sekvenselement som definerer en ordnet sekvens av underelementer:
<xs:complexType>
<xs:sequence>
…
</xs:sequence>
</xs:complexType>
</xs:element>
Then we have to define the «orderperson» element as a simple type (because it does not contain any attributes or other elements). The type (xs:som angir en forhåndsdefinert skjema datatype:
den komplekse typen: «shipto» og «item». Vi starter med å definere» shipto » element:
med skjemaer kan vi definere antall mulige forekomster for et element med maxOccurs og minOccurs attributter. maxOccurs angir maksimalt antall forekomster for et element og minOccurs angir minimum antall forekomster for et element. Standardverdien for både maxOccurs og minOccurs er 1!
nå kan Vi definere» element » – elementet. Dette elementet kan vises flere ganger inne i et» shiporder » – element. Dette spesifiseres ved å sette maxoccurs-attributtet til «element» – elementet til «ubundet», noe som betyr at det kan være så mange forekomster av» element » – elementet som forfatteren ønsker. Legg merke til at» note » – elementet er valgfritt. Vi har angitt dette ved å sette minoccurs-attributtet til null:
Vi kan nå deklarere attributtet til» shiporder » – elementet. Siden dette er et nødvendig attributt, spesifiserer vi use= «required».
merk: attributtdeklarasjonene må alltid komme sist:
her er en komplett liste over skjemafilen som heter «shiporder.»xsd»:
Del Skjemaet
den forrige designmetoden er veldig enkel, men kan være vanskelig å lese og vedlikeholde når dokumenter er komplekse.
den neste designmetoden er basert på å definere alle elementer og attributter først, og deretter henvise til dem ved hjelp av ref-attributtet.
Her er den nye utformingen av skjemafilen («shiporder.xsd»):
den tredje designmetoden definerer klasser eller typer, som gjør det mulig for oss å gjenbruke elementdefinisjoner. Dette gjøres ved å navngi den enkletyper og kompleksetyper elementer, og pek deretter på dem gjennom elementets typeattributt.
Her er den tredje utformingen av skjemafilen («shiporder.xsd»):
restriksjonselementet angir at datatypen er avledet FRA en w3c XML-Skjema navneområde datatype. Så betyr følgende fragment at verdien av elementet eller attributtet må være en strengverdi:
The restriction element is more often used to apply restrictions to elements. Look at the following lines from the schema above:
<xs:restriction base=»xs:string»>
<xs:pattern value=»{6}»/>
</xs:restriction>
</xs:simpleType>
dette indikerer at verdien av elementet eller attributtet må være en streng, det må være nøyaktig seks tegn på rad, og disse tegnene må være et tall fra 0 til 9.