Druck-Version
Deutsch Nederlands English
Inhaltsverzeichnis
Teile: Teil: XML Teil: PHP Quellenverzeichnis
Pfad: > Teil: XML > XML-Schema > Grundlagen
Benachbarte Abschnitte: Das Instanzdokument purchase order Das Schema zum purchase order
1.3.1.2. Das Schema zum purchase order
Beispiel 17: Das Schema für das purchase order Dokument
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<xsd:annotation> 
	<xsd:documentation xml:lang="en"> 
		Purchase order schema for Example.com. 
		Copyright 2000 Example.com. All rights reserved. 
	</xsd:documentation> 
</xsd:annotation> 
<xsd:element name="purchaseOrder" type="PurchaseOrderType"/> 
<xsd:element name="comment" type="xsd:string"/> 
<xsd:complexType name="PurchaseOrderType"> 
	<xsd:sequence> 
		<xsd:element name="shipTo" type="USAddress"/> 
		<xsd:element name="billTo" type="USAddress"/> 
		<xsd:element ref="comment" minOccurs="0"/> 
		<xsd:element name="items"  type="Items"/> 
	</xsd:sequence> 
	<xsd:attribute name="orderDate" type="xsd:date"/> 
</xsd:complexType> 
<xsd:complexType name="USAddress"> 
	<xsd:sequence> 
		<xsd:element name="name"   type="xsd:string"/> 
		<xsd:element name="street" type="xsd:string"/> 
		<xsd:element name="city"   type="xsd:string"/> 
		<xsd:element name="state"  type="xsd:string"/> 
		<xsd:element name="zip"    type="xsd:decimal"/> 
	</xsd:sequence> 
	<xsd:attribute name="country" type="xsd:NMTOKEN" fixed="US"/> 
</xsd:complexType> 
<xsd:complexType name="Items"> 
	<xsd:sequence> 
		<xsd:element name="item" minOccurs="0" maxOccurs="unbounded"> 
			<xsd:complexType> 
				<xsd:sequence> 
					<xsd:element name="productName" type="xsd:string"/> 
					<xsd:element name="quantity"> 
						<xsd:simpleType> 
							<xsd:restriction base="xsd:positiveInteger"> 
								<xsd:maxExclusive value="100"/> 
							</xsd:restriction> 
						</xsd:simpleType> 
					</xsd:element> 
					<xsd:element name="USPrice"  type="xsd:decimal"/> 
					<xsd:element ref="comment"   minOccurs="0"/> 
					<xsd:element name="shipDate" type="xsd:date" 
														minOccurs="0"/> 
				</xsd:sequence> 
				<xsd:attribute name="partNum" type="SKU" 
												use="required"/> 
			</xsd:complexType> 
		</xsd:element> 
	</xsd:sequence> 
</xsd:complexType> 
<!-- Stock Keeping Unit, a code for identifying products --> 
<xsd:simpleType name="SKU"> 
	<xsd:restriction base="xsd:string"> 
		<xsd:pattern value="\d{3}-[A-Z]{2}"/> 
	</xsd:restriction> 
</xsd:simpleType> 
</xsd:schema> 

Das Schema enthält ein schema-Element mit verschiedenen Kindelementen. Die wesentlichen davon sind: element, complexType und simpleType, die das Aussehen von Elementen und deren Inhalt im Instanzdokument festlegen.

Jedes der Elemente trägt das Präfix xsd, welches mit dem XML-Schema-Namensraum assoziert wurde durch die Deklaration im schema-Element. Das Präfix xsd wird per Konvention mit dem XML-Schema-Namensraum verknüpft; andere Präfixe sind prinzipiell möglich.

Die gleiche Bindung an diesen Namensraum findet sich wieder bei den Angaben zu den vordefinierten simplen Typen (bspw.: xsd:string). Damit wird die Zugehörigkeit zum Standardrepertoir verdeutlicht.