<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<xsd:element name="bank">
		<xsd:complexType>
			<xsd:choice>
				<xsd:element ref="accounts"/>
				<xsd:element ref="customers"/>
				<xsd:element ref="customer_accounts"/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>
	
	
	<xsd:element name="accounts" >
		<xsd:complexType>
			<xsd:restriction base="xsd:string"> 
				<xsd:enumeration value="savings_accounts"/>
				<xsd:enumeration value="checking_accounts"/>
			</xsd:restriction>
			<xsd:attribute name="id" type="xsd:ID" use="required"/>
			<xsd:attribute ref="balance" type="xsd:decimal" use="required"/>
		</xsd:complexType>
		
		<xsd:key name="id_ac_Key">
			<xsd:selector xpath="accounts"/>
			<xsd:field xpath="@id"/>
		</xsd:key>
	</xsd:element>

	<xsd:extension base="accounts">
		<xsd:element name="savings_accounts">
			<xsd:complexType>
				<xsd:element ref="savings_account"/>
			</xsd:complexType>
		</xsd:element>
	</xsd:extension>
	
	
	<xsd:element name="savings_account">
		<xsd:complexType>
			<xsd:attribute name="interest" type="xsd:string" use="required"/>
		</xsd:complexType>
	</xsd:element>
	
	
	<xsd:extension base="accounts">
		<xsd:element name="checking_accounts">
			<xsd:complexType>
				<xsd:element ref="checking_account"/>
			</xsd:complexType>
		</xsd:element>
	</xsd:extension>
	
	
	<xsd:element name="checking_account">
		<xsd:complexType mixed="true"/>
	</xsd:element>
	
	
	<xsd:element name="customers">
		<xsd:complexType>
			<xsd:element ref="customer"/>
		</xsd:complexType>
	</xsd:element>
	
	
	<xsd:element name="customer">
		<xsd:complexType mixed="true">
			<xsd:sequence>
				<xsd:element name="name" type="xsd:string"/>
				<xsd:element name="address" type="xsd:string"/>
			</xsd:sequence>
			<xsd:attribute name="id" type="xsd:ID" use="required"/>
		</xsd:complexType>
		<xsd:key name="id_c_Key">
			<xsd:selector xpath="customer"/>
			<xsd:field xpath="@id"/>
		</xsd:key>
	</xsd:element>
	<xsd:element name="customer_accounts">
		<xsd:complexType>
			<xsd:element ref="customer_account"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="customer_account">
		<xsd:complexType>
			<xsd:keyref name="c_id" refer="id_c_Key"/>
			<xsd:keyref name="ac_id" refer="id_ac_Key"/>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:simpleType name="balance">
		<xsd:restriction base="xsd:integer">
			<xsd:minInclusive value="-5000"/>
		</xsd:restriction>
	</xsd:simpleType>
	

</xsd:schema>
