<!--
Copyright 2004 The Apache Software Foundation

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
 -->
 <xs:schema targetNamespace="http://xmlbeans.apache.org/samples/datetime"
 xmlns:xs = "http://www.w3.org/2001/XMLSchema"
 xmlns:dt = "http://xmlbeans.apache.org/samples/datetime"
 elementFormDefault="qualified" >
 
 <xs:element name="datetime">
 	<xs:complexType>
 		<xs:sequence>
 			<xs:element name="important-date" type="dt:important-date" minOccurs="1" maxOccurs="unbounded"/>
 		</xs:sequence>
 	</xs:complexType>
 </xs:element>
 
 <xs:complexType name="important-date" >
 	<xs:sequence>
 		<xs:element name="holiday" type="xs:date" minOccurs="0" maxOccurs="unbounded" />
 		<xs:element name="fun-begin-time" type="xs:time" minOccurs="1" maxOccurs="1" />
 		<xs:element name="fun-end-time" type="xs:time" minOccurs="1" maxOccurs="1" />
 		<xs:element name="job-duration" type="xs:duration" minOccurs="1" maxOccurs="1" />
 		<xs:element name="birthdatetime" type="xs:dateTime" minOccurs="1" maxOccurs="1" />
 		<xs:element name="payday" type="xs:gDay" minOccurs="1" maxOccurs="1" />
 		<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1" />	
 	</xs:sequence>
 </xs:complexType>
 
 
 </xs:schema>