xml.schema/src/org/netbeans/modules/xml/schema/wizard/templates/LoanApplication.xsd
author Milutin Kristofic <mkristofic@netbeans.org>
Mon, 30 Jan 2017 14:30:54 +0100
changeset 1583 fe20f672a61a
parent 685 b07028fb29c0
permissions -rw-r--r--
Added Missing copyright information in source files
samaresh@520
     1
<?xml version="1.0"?>
mkristofic@1583
     2
<!--
mkristofic@1583
     3
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
mkristofic@1583
     4
mkristofic@1583
     5
Copyright 2009-2017 Oracle and/or its affiliates. All rights reserved.
mkristofic@1583
     6
mkristofic@1583
     7
Oracle and Java are registered trademarks of Oracle and/or its affiliates.
mkristofic@1583
     8
Other names may be trademarks of their respective owners.
mkristofic@1583
     9
mkristofic@1583
    10
The contents of this file are subject to the terms of either the GNU
mkristofic@1583
    11
General Public License Version 2 only ("GPL") or the Common
mkristofic@1583
    12
Development and Distribution License("CDDL") (collectively, the
mkristofic@1583
    13
"License"). You may not use this file except in compliance with the
mkristofic@1583
    14
License. You can obtain a copy of the License at
mkristofic@1583
    15
http://www.netbeans.org/cddl-gplv2.html
mkristofic@1583
    16
or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
mkristofic@1583
    17
specific language governing permissions and limitations under the
mkristofic@1583
    18
License.  When distributing the software, include this License Header
mkristofic@1583
    19
Notice in each file and include the License file at
mkristofic@1583
    20
nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
mkristofic@1583
    21
particular file as subject to the "Classpath" exception as provided
mkristofic@1583
    22
by Oracle in the GPL Version 2 section of the License file that
mkristofic@1583
    23
accompanied this code. If applicable, add the following below the
mkristofic@1583
    24
License Header, with the fields enclosed by brackets [] replaced by
mkristofic@1583
    25
your own identifying information:
mkristofic@1583
    26
"Portions Copyrighted [year] [name of copyright owner]"
mkristofic@1583
    27
mkristofic@1583
    28
Contributor(s):
mkristofic@1583
    29
mkristofic@1583
    30
The Original Software is NetBeans. The Initial Developer of the Original
mkristofic@1583
    31
Software is Sun Microsystems, Inc. Portions Copyright 2009-2010 Sun
mkristofic@1583
    32
Microsystems, Inc. All Rights Reserved.
mkristofic@1583
    33
mkristofic@1583
    34
If you wish your version of this file to be governed by only the CDDL
mkristofic@1583
    35
or only the GPL Version 2, indicate your decision by adding
mkristofic@1583
    36
"[Contributor] elects to include this software in this distribution
mkristofic@1583
    37
under the [CDDL or GPL Version 2] license." If you do not indicate a
mkristofic@1583
    38
single choice of license, a recipient has the option to distribute
mkristofic@1583
    39
your version of this file under either the CDDL, the GPL Version 2 or
mkristofic@1583
    40
to extend the choice of license to its licensees as provided above.
mkristofic@1583
    41
However, if you add GPL Version 2 code and therefore, elected the GPL
mkristofic@1583
    42
Version 2 license, then the option applies only if the new code is
mkristofic@1583
    43
made subject to such option by the copyright holder.
mkristofic@1583
    44
-->
samaresh@394
    45
samaresh@394
    46
<xs:schema targetNamespace="http://xml.netbeans.org/examples/LoanApplication"
samaresh@685
    47
           xmlns="http://xml.netbeans.org/examples/LoanApplication"
samaresh@685
    48
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
samaresh@685
    49
           elementFormDefault="qualified" 
samaresh@685
    50
           attributeFormDefault="unqualified">
samaresh@394
    51
    
samaresh@394
    52
    <xs:element name="autoLoanApplication">
samaresh@394
    53
        <xs:annotation>
samaresh@394
    54
            <xs:documentation>A loan application xml schema</xs:documentation>
samaresh@394
    55
        </xs:annotation>
samaresh@394
    56
        <xs:complexType>
samaresh@394
    57
            <xs:sequence>                
samaresh@394
    58
                <xs:element name="loan" type="LoanType"/>                
samaresh@394
    59
                <xs:element name="term" type="xs:integer"/>                
samaresh@394
    60
                <xs:element name="amount">
samaresh@394
    61
                    <xs:simpleType>
samaresh@394
    62
                        <xs:restriction base="xs:decimal">
samaresh@394
    63
                            <xs:minInclusive value="5000.00"/>
samaresh@394
    64
                            <xs:maxInclusive value="10000.00"/>
samaresh@394
    65
                            <xs:fractionDigits value="2"/>
samaresh@394
    66
                        </xs:restriction>
samaresh@394
    67
                    </xs:simpleType>
samaresh@394
    68
                </xs:element>
samaresh@394
    69
                <xs:element name="application">
samaresh@394
    70
                    <xs:simpleType>
samaresh@394
    71
                        <xs:restriction base="xs:string">
samaresh@394
    72
                            <xs:enumeration value="individual"/>
samaresh@394
    73
                            <xs:enumeration value="joint"/>
samaresh@394
    74
                        </xs:restriction>
samaresh@394
    75
                    </xs:simpleType>
samaresh@394
    76
                </xs:element>                
samaresh@394
    77
                <xs:element name="state" type="StateType"/>                
samaresh@394
    78
                <xs:element name="applicant" type="ApplicantType" maxOccurs="2"/>                
samaresh@394
    79
                <xs:element name="tradeIn" minOccurs="0">
samaresh@394
    80
                    <xs:complexType>
samaresh@394
    81
                        <xs:sequence>
samaresh@394
    82
                            <xs:element name="vehicle" type="CarType"/>                            
samaresh@394
    83
                            <xs:element name="monthlyPayment">
samaresh@394
    84
                                <xs:simpleType>
samaresh@394
    85
                                    <xs:restriction base="xs:decimal">
samaresh@394
    86
                                        <xs:fractionDigits value="2"/>
samaresh@394
    87
                                        <xs:minInclusive value="0.00"/>
samaresh@394
    88
                                    </xs:restriction>
samaresh@394
    89
                                </xs:simpleType>
samaresh@394
    90
                            </xs:element>
samaresh@394
    91
                        </xs:sequence>
samaresh@394
    92
                    </xs:complexType>
samaresh@394
    93
                </xs:element>
samaresh@394
    94
            </xs:sequence>
samaresh@394
    95
        </xs:complexType>
samaresh@394
    96
    </xs:element>
samaresh@394
    97
    
samaresh@394
    98
    <xs:simpleType name="LoanType">
samaresh@394
    99
        <xs:restriction base="xs:string">
samaresh@394
   100
            <xs:enumeration value="new"/>
samaresh@394
   101
            <xs:enumeration value="used dealer"/>
samaresh@394
   102
            <xs:enumeration value="used private"/>
samaresh@394
   103
            <xs:enumeration value="refinance"/>
samaresh@394
   104
            <xs:enumeration value="lease buyout"/>
samaresh@394
   105
        </xs:restriction>
samaresh@394
   106
    </xs:simpleType>
samaresh@394
   107
    
samaresh@394
   108
    <xs:simpleType name="StateType">
samaresh@394
   109
        <xs:restriction base="xs:string">
samaresh@394
   110
            <xs:enumeration value="AZ"/>
samaresh@394
   111
            <xs:enumeration value="CA"/>
samaresh@394
   112
            <xs:enumeration value="NY"/>
samaresh@394
   113
            <xs:enumeration value="TX"/>
samaresh@394
   114
        </xs:restriction>
samaresh@394
   115
    </xs:simpleType>
samaresh@394
   116
    
samaresh@394
   117
    <xs:complexType name="ApplicantType">
samaresh@394
   118
        <xs:sequence>
samaresh@394
   119
            <xs:element name="name">
samaresh@394
   120
                <xs:complexType>
samaresh@394
   121
                    <xs:sequence>
samaresh@394
   122
                        <xs:element name="first" type="xs:string"/>
samaresh@394
   123
                        <xs:element name="middle" type="xs:string"/>
samaresh@394
   124
                        <xs:element name="last" type="xs:string"/>
samaresh@394
   125
                        <xs:element name="suffix">
samaresh@394
   126
                            <xs:simpleType>
samaresh@394
   127
                                <xs:restriction base="xs:string">
samaresh@394
   128
                                    <xs:enumeration value="Jr"/>
samaresh@394
   129
                                    <xs:enumeration value="Sr"/>
samaresh@394
   130
                                    <xs:enumeration value="II"/>
samaresh@394
   131
                                    <xs:enumeration value="III"/>
samaresh@394
   132
                                    <xs:enumeration value="IV"/>
samaresh@394
   133
                                    <xs:enumeration value="V"/>
samaresh@394
   134
                                </xs:restriction>
samaresh@394
   135
                            </xs:simpleType>
samaresh@394
   136
                        </xs:element>
samaresh@394
   137
                    </xs:sequence>
samaresh@394
   138
                </xs:complexType>
samaresh@394
   139
            </xs:element>
samaresh@685
   140
            <xs:element name="SSID">
samaresh@685
   141
                <xs:simpleType>
samaresh@685
   142
                    <xs:restriction base="xs:string">
samaresh@685
   143
                        <xs:pattern value="\d{3}-\d{2}-\d{4}"/>
samaresh@685
   144
                    </xs:restriction>
samaresh@685
   145
                </xs:simpleType>
samaresh@685
   146
            </xs:element>
samaresh@685
   147
            <xs:element name="birthDate" type="xs:date"/>
samaresh@685
   148
            <xs:element name="homePhone" type="PhoneNumberType"/>
samaresh@685
   149
            <xs:element name="cellPhone" type="PhoneNumberType"/>
samaresh@685
   150
            <xs:element name="emailAddress">
samaresh@685
   151
                <xs:simpleType>
samaresh@685
   152
                    <xs:restriction base="xs:string"/>
samaresh@685
   153
                </xs:simpleType>
samaresh@685
   154
            </xs:element>
samaresh@685
   155
            <xs:element name="residence" type="ResidenceType" maxOccurs="unbounded"/>
samaresh@685
   156
            <xs:element name="employment">
samaresh@685
   157
                <xs:complexType>
samaresh@685
   158
                    <xs:sequence>
samaresh@685
   159
                        <xs:element name="status">
samaresh@685
   160
                            <xs:simpleType>
samaresh@685
   161
                                <xs:restriction base="xs:string">
samaresh@685
   162
                                    <xs:enumeration value="unemployed"/>
samaresh@685
   163
                                    <xs:enumeration value="employed"/>
samaresh@685
   164
                                    <xs:enumeration value="self employed"/>
samaresh@685
   165
                                </xs:restriction>
samaresh@685
   166
                            </xs:simpleType>
samaresh@685
   167
                        </xs:element>
samaresh@685
   168
                        <xs:element name="detail" minOccurs="0">
samaresh@685
   169
                            <xs:complexType>
samaresh@685
   170
                                <xs:sequence>
samaresh@685
   171
                                    <xs:element name="occupation" type="xs:string"/>
samaresh@685
   172
                                    <xs:element name="employer">
samaresh@685
   173
                                        <xs:complexType>
samaresh@685
   174
                                            <xs:sequence>
samaresh@685
   175
                                                <xs:element name="name"/>
samaresh@685
   176
                                                <xs:element name="address" type="AddressType"/>
samaresh@685
   177
                                                <xs:element name="lengthOfEmployment" type="DurationType"/>
samaresh@685
   178
                                            </xs:sequence>
samaresh@685
   179
                                        </xs:complexType>
samaresh@685
   180
                                    </xs:element>
samaresh@685
   181
                                    <xs:element name="workPhone" type="PhoneNumberType"/>
samaresh@685
   182
                                    <xs:element name="grossMonthlyIncome">
samaresh@685
   183
                                        <xs:simpleType>
samaresh@685
   184
                                            <xs:restriction base="xs:decimal">
samaresh@685
   185
                                                <xs:minInclusive value="0.00"/>
samaresh@685
   186
                                                <xs:fractionDigits value="2"/>
samaresh@685
   187
                                            </xs:restriction>
samaresh@685
   188
                                        </xs:simpleType>
samaresh@685
   189
                                    </xs:element>
samaresh@685
   190
                                </xs:sequence>
samaresh@685
   191
                            </xs:complexType>
samaresh@685
   192
                        </xs:element>
samaresh@685
   193
                    </xs:sequence>
samaresh@685
   194
                </xs:complexType>
samaresh@685
   195
            </xs:element>
samaresh@685
   196
            <xs:element name="supplementalIncome">
samaresh@685
   197
                <xs:complexType>
samaresh@685
   198
                    <xs:sequence>
samaresh@685
   199
                        <xs:element name="source">
samaresh@685
   200
                            <xs:simpleType>
samaresh@685
   201
                                <xs:restriction base="xs:string">
samaresh@685
   202
                                    <xs:enumeration value="alimony"/>
samaresh@685
   203
                                    <xs:enumeration value="child support"/>
samaresh@685
   204
                                    <xs:enumeration value="investments"/>
samaresh@685
   205
                                    <xs:enumeration value="part time job"/>
samaresh@685
   206
                                    <xs:enumeration value="rental property"/>
samaresh@685
   207
                                    <xs:enumeration value="retirement income"/>
samaresh@685
   208
                                    <xs:enumeration value="social security"/>
samaresh@685
   209
                                </xs:restriction>
samaresh@685
   210
                            </xs:simpleType>
samaresh@685
   211
                        </xs:element>
samaresh@685
   212
                        <xs:element name="grossMonthlyIncome">
samaresh@685
   213
                            <xs:simpleType>
samaresh@685
   214
                                <xs:restriction base="xs:decimal">
samaresh@685
   215
                                    <xs:minInclusive value="0.00"/>
samaresh@685
   216
                                    <xs:fractionDigits value="2"/>
samaresh@685
   217
                                </xs:restriction>
samaresh@685
   218
                            </xs:simpleType>
samaresh@685
   219
                        </xs:element>
samaresh@685
   220
                    </xs:sequence>
samaresh@685
   221
                </xs:complexType>
samaresh@685
   222
            </xs:element>
samaresh@394
   223
        </xs:sequence>
samaresh@394
   224
    </xs:complexType>
samaresh@394
   225
    
samaresh@394
   226
    <xs:complexType name="AddressType">
samaresh@394
   227
        <xs:sequence>
samaresh@394
   228
            <xs:element name="address1"/>
samaresh@394
   229
            <xs:element name="address2"/>
samaresh@394
   230
            <xs:element name="city"/>
samaresh@394
   231
            <xs:element name="state" type="StateType"/>
samaresh@394
   232
            <xs:element name="zip">
samaresh@394
   233
                <xs:simpleType>
samaresh@394
   234
                    <xs:restriction base="xs:string">
samaresh@394
   235
                        <xs:minLength value="5"/>
samaresh@394
   236
                        <xs:maxLength value="5"/>
samaresh@394
   237
                        <xs:pattern value="\d{5}"/>
samaresh@394
   238
                    </xs:restriction>
samaresh@394
   239
                </xs:simpleType>
samaresh@394
   240
            </xs:element>
samaresh@394
   241
        </xs:sequence>
samaresh@394
   242
    </xs:complexType>
samaresh@394
   243
    
samaresh@394
   244
    <xs:complexType name="PhoneNumberType">
samaresh@394
   245
        <xs:sequence>
samaresh@394
   246
            <xs:element name="areaCode"/>
samaresh@394
   247
            <xs:element name="exchange"/>
samaresh@394
   248
            <xs:element name="number"/>
samaresh@394
   249
            <xs:element name="extension" minOccurs="0"/>
samaresh@394
   250
        </xs:sequence>
samaresh@394
   251
    </xs:complexType>
samaresh@394
   252
    
samaresh@394
   253
    <xs:complexType name="OccupancyType">
samaresh@394
   254
        <xs:sequence>
samaresh@394
   255
            <xs:element name="type">
samaresh@394
   256
                <xs:simpleType>
samaresh@394
   257
                    <xs:restriction base="xs:string">
samaresh@394
   258
                        <xs:enumeration value="rent"/>
samaresh@394
   259
                        <xs:enumeration value="own"/>
samaresh@394
   260
                    </xs:restriction>
samaresh@394
   261
                </xs:simpleType>
samaresh@394
   262
            </xs:element>
samaresh@394
   263
            <xs:element name="movedIn" type="xs:date"/>
samaresh@394
   264
            <xs:element name="lengthOfOccupancy" type="DurationType"/>
samaresh@394
   265
            <xs:element name="payment">
samaresh@394
   266
                <xs:simpleType>
samaresh@394
   267
                    <xs:restriction base="xs:decimal">
samaresh@394
   268
                        <xs:fractionDigits value="2"/>
samaresh@394
   269
                        <xs:minInclusive value="0.00"/>
samaresh@394
   270
                    </xs:restriction>
samaresh@394
   271
                </xs:simpleType>
samaresh@394
   272
            </xs:element>
samaresh@394
   273
        </xs:sequence>
samaresh@394
   274
    </xs:complexType>
samaresh@394
   275
    
samaresh@394
   276
    <xs:complexType name="ResidenceType">
samaresh@394
   277
        <xs:sequence>
samaresh@394
   278
            <xs:element name="address" type="AddressType"/>
samaresh@394
   279
            <xs:element name="occupancy" type="OccupancyType"/>
samaresh@394
   280
        </xs:sequence>
samaresh@394
   281
    </xs:complexType>
samaresh@394
   282
    
samaresh@394
   283
    <xs:complexType name="CarType">
samaresh@394
   284
        <xs:sequence>
samaresh@394
   285
            <xs:element name="year" type="xs:gYear"/>
samaresh@394
   286
            <xs:element name="make" type="xs:string"/>
samaresh@394
   287
            <xs:element name="model" type="xs:string"/>
samaresh@394
   288
            <xs:element name="VIN" type="xs:string"/>
samaresh@394
   289
        </xs:sequence>
samaresh@394
   290
    </xs:complexType>
samaresh@394
   291
    
samaresh@394
   292
    <xs:complexType name="DurationType">
samaresh@394
   293
        <xs:sequence>
samaresh@394
   294
            <xs:element name="years" type="xs:positiveInteger"/>
samaresh@394
   295
            <xs:element name="months">
samaresh@394
   296
                <xs:simpleType>
samaresh@394
   297
                    <xs:restriction base="xs:positiveInteger">
samaresh@394
   298
                        <xs:minInclusive value="1"/>
samaresh@394
   299
                        <xs:maxInclusive value="12"/>
samaresh@394
   300
                    </xs:restriction>
samaresh@394
   301
                </xs:simpleType>
samaresh@394
   302
            </xs:element>
samaresh@394
   303
        </xs:sequence>
samaresh@394
   304
    </xs:complexType>
samaresh@394
   305
    
samaresh@394
   306
</xs:schema>