<?
xml version =
"1.0" ?>
<xsd:schema
xmlns :xsd=
"http://www.w3.org/2001/XMLSchema " >
<xsd:annotation>
<xsd:documentation>
This is a test
XML Schema for Castor
XML .
</xsd:documentation>
</xsd:annotation>
<!--
A simple representation of an invoice. This is simply an example
and not meant to be an exact or even complete representation of an invoice.
-->
<!-- Shipping Method -->
<xsd:
element name=
"shipping-method" >
<xsd:complexType>
<xsd:sequence>
<xsd:
element name=
"carrier" type =
"xsd:string" />
<xsd:
element name=
"option" type =
"xsd:string" />
<xsd:
element name=
"estimated-delivery" type =
"xsd:duration" />
</xsd:sequence>
</xsd:complexType>
</xsd:
element >
<!-- Shipping date -->
<xsd:
element name=
"shipping-date" >
<xsd:complexType>
<xsd:sequence>
<xsd:
element name=
"date" type =
"xsd:date" />
<xsd:
element name=
"time" type =
"xsd:time" />
</xsd:sequence>
</xsd:complexType>
</xsd:
element >
<!-- A simple U.S. based Address structure -->
<xsd:
element name=
"address" >
<xsd:annotation>
<xsd:documentation>
Represents a U.S. Address
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<!-- street address 1 -->
<xsd:
element name=
"street1" type =
"xsd:string" />
<!-- optional street address 2 -->
<xsd:
element name=
"street2" type =
"xsd:string" minOccurs=
"0" />
<!-- city-->
<xsd:
element name=
"city" type =
"xsd:string" />
<!-- state code -->
<xsd:
element name=
"state" type =
"stateCodeType" />
<!-- zip-code -->
<xsd:
element ref=
"zip-code" />
</xsd:sequence>
</xsd:complexType>
</xsd:
element >
<!-- A U.S. Zip Code -->
<xsd:
element name=
"zip-code" >
<xsd:simpleType>
<xsd:restriction base=
"xsd:string" >
<xsd:pattern value=
"[0-9]{5}(-[0-9]{4})?" />
</xsd:restriction>
</xsd:simpleType>
</xsd:
element >
<!-- State Code
obviously not a valid state code....but this is just
an example and I don't feel like creating all the valid
ones.
-->
<xsd:simpleType name=
"stateCodeType" >
<xsd:restriction base=
"xsd:string" >
<xsd:pattern value=
"[A-Z]{2}" />
</xsd:restriction>
</xsd:simpleType>
<!-- Telephone Number -->
<xsd:simpleType name=
"TelephoneNumberType" >
<xsd:restriction base=
"xsd:string" >
<xsd:length value=
"12" />
<xsd:pattern value=
"[0-9]{3}-[0-9]{3}-[0-9]{4}" />
</xsd:restriction>
</xsd:simpleType>
<!-- Cool price type -->
<xsd:simpleType name=
"PriceType" >
<xsd:restriction base=
"xsd:decimal" >
<xsd:fractionDigits value=
"2" />
<xsd:totalDigits value=
"5" />
<xsd:minInclusive value=
"1" />
<xsd:maxInclusive value=
"100" />
</xsd:restriction>
</xsd:simpleType>
<!-- The attributes for an Item -->
<xsd:attributeGroup name=
"ItemAttributes" >
<xsd:attribute name=
"Id" type =
"xsd:ID" use=
"required" />
<xsd:attribute name=
"InStock" type =
"xsd:boolean" default=
"false" />
<xsd:attribute name=
"Category" type =
"xsd:string" use=
"required" />
</xsd:attributeGroup>
<xsd:
element name=
"invoice" >
<xsd:annotation>
<xsd:documentation>
A simple representation of an invoice
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:
element name=
"ship-to" >
<xsd:complexType>
<xsd:group ref=
"customer" />
</xsd:complexType>
</xsd:
element >
<xsd:
element ref=
"item" maxOccurs=
"unbounded" minOccurs=
"1" />
<xsd:
element ref=
"shipping-method" />
<xsd:
element ref=
"shipping-date" />
</xsd:sequence>
</xsd:complexType>
</xsd:
element >
<!-- Description of a customer -->
<xsd:group name=
"customer" >
<xsd:sequence>
<xsd:
element name=
"name" type =
"xsd:string" />
<xsd:
element ref=
"address" />
<xsd:
element name=
"phone" type =
"TelephoneNumberType" />
</xsd:sequence>
</xsd:group>
<!-- Description of an item -->
<xsd:
element name=
"item" >
<xsd:complexType>
<xsd:sequence>
<xsd:
element name=
"Quantity" type =
"xsd:integer" minOccurs=
"1" maxOccurs=
"1" />
<xsd:
element name=
"Price" type =
"PriceType" minOccurs=
"1" maxOccurs=
"1" />
</xsd:sequence>
<xsd:attributeGroup ref=
"ItemAttributes" />
</xsd:complexType>
</xsd:
element >
</xsd:schema>
Messung V0.5 C=92 H=97 G=94
¤ Dauer der Verarbeitung: 0.3 Sekunden
¤
*© Formatika GbR, Deutschland