summaryrefslogtreecommitdiffstats
path: root/sandbox/jboynes/sdo/impl/src/test/resources/bank.xsd
blob: 9a6ac8240225fc2e0db578f610f1898d3cf44678 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?xml version="1.0" encoding="UTF-8"?>
<!--
 *  Copyright (c) 2005-2006 The Apache Software Foundation or its licensors, as applicable.
 *
 *  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.
 -->
<xsd:schema targetNamespace="http://www.example.com/bank" 
                 xmlns:bank="http://www.example.com/bank" 
            xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            xmlns:sdoXML="commonj.sdo/xml">
  
    <xsd:element name="bank" type="bank:bankType"/>
    
    <xsd:complexType name="bankType">
        <xsd:sequence>
            <xsd:element name="Branch" type="bank:branchType" maxOccurs="unbounded" />
            <xsd:element name="Service" type="bank:serviceType" maxOccurs="unbounded" />
            <xsd:element name="Customer" type="bank:customerType" maxOccurs="unbounded" />
        </xsd:sequence>
	    <xsd:attribute name="name" type="xsd:string"/>
    </xsd:complexType>

    <xsd:complexType name="branchType">
        <xsd:sequence>
            <xsd:element name="Address" type="bank:addressType"/>
            <xsd:element name="Directions" type="xsd:string" maxOccurs="unbounded" />
            <xsd:element name="Account" type="bank:accountType" maxOccurs="unbounded" />
        </xsd:sequence>
        <xsd:attribute name="ID" type="xsd:ID"/>
    </xsd:complexType>

    <xsd:complexType name="serviceType">
        <xsd:attribute name="ID" type="xsd:ID"/>
        <xsd:attribute name="Name" type="xsd:string"/>
        <xsd:attribute name="Fee" type="xsd:decimal"/>
    </xsd:complexType>

    <xsd:complexType name="accountType">
        <xsd:attribute name="ID" type="xsd:ID"/>
        <xsd:attribute name="Service" type="xsd:IDREF" sdoXML:propertyType="bank:serviceType" />
        <xsd:attribute name="Balance" type="xsd:decimal" />
    </xsd:complexType>

    <xsd:complexType name="customerType">
        <xsd:sequence>
            <xsd:element name="First" type="xsd:string" />
            <xsd:element name="Last" type="xsd:string" />
            <xsd:element name="Address" type="bank:addressType"/>
            <xsd:element name="HomeBranch" type="xsd:IDREF" sdoXML:propertyType="bank:branchType" />
            <xsd:element name="Account" type="xsd:IDREF" sdoXML:propertyType="bank:accountType" maxOccurs="unbounded" />
        </xsd:sequence>
        <xsd:attribute name="ID" type="xsd:ID"/>
        <xsd:attribute name="Related" type="xsd:IDREFS" sdoXML:propertyType="bank:customerType" />
    </xsd:complexType>

    <xsd:complexType name="addressType">
        <xsd:sequence>
            <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:string"/>		
        </xsd:sequence>
    </xsd:complexType>

 </xsd:schema>