et eksempel
dette kapitel viser, hvordan man skriver et skema. Du vil også lære at et skema kan skrives på forskellige måder.
et dokument
lad os se på dette dokument kaldet “shiporder.
Opret et skema
nu vil vi oprette et skema til dokumentet ovenfor.
Vi starter med at åbne en ny fil, som vi kalder “shiporder.”. For at oprette skemaet kunne vi blot følge strukturen i dokumentet og definere hvert element, som vi finder det. Vi starter med standard-deklarationen efterfulgt af skemaelementet, der definerer et skema:
<s:skema smlns:s=”http://www.w3.org/2001/XMLSchema”>
…
< / s:schema>
i skemaet ovenfor bruger vi standard namespace, og URI ‘ en, der er knyttet til dette navneområde, er Skemasprogdefinitionen, som har standardværdien http://www.w3.org/2001/XMLSchema.
Dernæst skal vi definere “shiporder” – elementet. Dette element har en attribut, og den indeholder andre elementer, derfor betragter vi det som en kompleks type. De underordnede elementer i” shiporder ” – elementet er omgivet af et sekvenselement, der definerer en ordnet sekvens af 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:der angiver en foruddefineret skema datatype:
dernæst skal vi definere to elementer, der er nødvendige for at af den komplekse type: “shipto” og “item”. Vi starter med at definere elementet “shipto”:
med skemaer kan vi definere antallet af mulige forekomster for et element med attributterne maks. maks. forekomster angiver det maksimale antal forekomster for et element, og min.forekomster angiver det mindste antal forekomster for et element. Standardværdien for både maks. og min. forekomster er 1!
nu kan vi definere elementet” element”. Dette element kan vises flere gange inde i et “shiporder” – element. Dette specificeres ved at indstille attributten “element” til “ubegrænset”, hvilket betyder, at der kan være så mange forekomster af “element” – elementet, som forfatteren ønsker. Bemærk, at elementet “note” er valgfrit. Vi har specificeret dette ved at indstille attributten minOccurs til nul:
Vi kan nu erklære attributten for elementet “shiporder”. Da dette er en påkrævet attribut, specificerer vi brug=”påkrævet”.
Bemærk: attributdeklarationerne skal altid komme sidst:
Her er den komplette liste over skemafilen kaldet “skibsbestilling.”:
Opdel skemaet
den tidligere designmetode er meget enkel, men kan være vanskelig at læse og vedligeholde, når dokumenter er komplekse.
den næste designmetode er baseret på at definere alle elementer og attributter først og derefter henvise til dem ved hjælp af ref-attributten.
Her er det nye design af skemafilen (“shiporder.”):
den tredje designmetode definerer klasser eller typer, der gør det muligt for os at genbruge elementdefinitioner. Dette gøres ved at navngive det enkletyper og komplekstyper elementer, og derefter pege på dem gennem elementets typeattribut.
Her er det tredje design af skemafilen (“shiporder.”):
begrænsningselementet angiver, at datatypen er afledt af en Skema3c skemaets navneområde datatype. Så betyder følgende fragment, at værdien af elementet eller attributten skal være en strengværdi:
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 værdien af elementet eller attributten skal være en streng, det skal være nøjagtigt seks tegn i træk, og disse tegn skal være et tal fra 0 til 9.