sps_king 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +32 -0
  5. data/CONTRIBUTING.md +38 -0
  6. data/Gemfile +2 -0
  7. data/LICENSE.txt +24 -0
  8. data/README.md +246 -0
  9. data/Rakefile +6 -0
  10. data/gemfiles/Gemfile-activemodel-3.1.x +5 -0
  11. data/gemfiles/Gemfile-activemodel-3.2.x +5 -0
  12. data/gemfiles/Gemfile-activemodel-4.0.x +5 -0
  13. data/gemfiles/Gemfile-activemodel-4.1.x +5 -0
  14. data/gemfiles/Gemfile-activemodel-4.2.x +5 -0
  15. data/gemfiles/Gemfile-activemodel-5.0.x +5 -0
  16. data/gemfiles/Gemfile-activemodel-5.1.x +5 -0
  17. data/gemfiles/Gemfile-activemodel-5.2.x +5 -0
  18. data/lib/schema/pain.001.001.03.ch.02.xsd +1212 -0
  19. data/lib/schema/pain.008.001.02.ch.03.xsd +784 -0
  20. data/lib/sps_king.rb +22 -0
  21. data/lib/sps_king/account.rb +24 -0
  22. data/lib/sps_king/account/creditor_account.rb +11 -0
  23. data/lib/sps_king/account/creditor_address.rb +37 -0
  24. data/lib/sps_king/account/debtor_account.rb +5 -0
  25. data/lib/sps_king/account/debtor_address.rb +34 -0
  26. data/lib/sps_king/converter.rb +53 -0
  27. data/lib/sps_king/error.rb +4 -0
  28. data/lib/sps_king/message.rb +163 -0
  29. data/lib/sps_king/message/credit_transfer.rb +140 -0
  30. data/lib/sps_king/message/direct_debit.rb +177 -0
  31. data/lib/sps_king/structured_remittance_information.rb +20 -0
  32. data/lib/sps_king/transaction.rb +59 -0
  33. data/lib/sps_king/transaction/credit_transfer_transaction.rb +19 -0
  34. data/lib/sps_king/transaction/direct_debit_transaction.rb +58 -0
  35. data/lib/sps_king/validator.rb +55 -0
  36. data/lib/sps_king/version.rb +3 -0
  37. data/spec/examples/pain.001.001.03.ch.02.xml +172 -0
  38. data/spec/examples/pain.008.001.02.ch.03.xml +240 -0
  39. data/spec/lib/sps_king/account/creditor_account_spec.rb +52 -0
  40. data/spec/lib/sps_king/account/creditor_address_spec.rb +14 -0
  41. data/spec/lib/sps_king/account/debtor_account_spec.rb +14 -0
  42. data/spec/lib/sps_king/account/debtor_address_spec.rb +14 -0
  43. data/spec/lib/sps_king/account_spec.rb +42 -0
  44. data/spec/lib/sps_king/converter_spec.rb +88 -0
  45. data/spec/lib/sps_king/message/credit_transfer_spec.rb +350 -0
  46. data/spec/lib/sps_king/message/direct_debit_spec.rb +483 -0
  47. data/spec/lib/sps_king/message_spec.rb +128 -0
  48. data/spec/lib/sps_king/structured_remittance_information_spec.rb +32 -0
  49. data/spec/lib/sps_king/transaction/credit_transfer_transaction_spec.rb +53 -0
  50. data/spec/lib/sps_king/transaction/direct_debit_transaction_spec.rb +56 -0
  51. data/spec/lib/sps_king/transaction_spec.rb +133 -0
  52. data/spec/lib/sps_king/validation_spec.rb +23 -0
  53. data/spec/lib/sps_king/validator_spec.rb +78 -0
  54. data/spec/spec_helper.rb +33 -0
  55. data/spec/support/active_model.rb +30 -0
  56. data/spec/support/custom_matcher.rb +60 -0
  57. data/spec/support/factories.rb +33 -0
  58. data/spec/support/validations.rb +27 -0
  59. data/sps_king.gemspec +31 -0
  60. metadata +237 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6cd77b54487aa19572d341aacb94135014482406
4
+ data.tar.gz: c2b795d7d60742a76ef3bc1b335ea0901ecee526
5
+ SHA512:
6
+ metadata.gz: b1153883b2c58b05b2cc890c5c90bdaeab9d8296a1c0e2ef02766421028d3ff40ff673ea65f6e4b99a3c8e5785ecc7f1ccae508b4102931191ff4dd90583e827
7
+ data.tar.gz: 9b9546cb0777778b9ff24b7c4405a60cf62a1b899ccfd91b5fb6c8068f6ca4b927288263073b82d204ee6f9403d1eae55f69b8fed74eb8bfbba955fa232a97f5
@@ -0,0 +1,9 @@
1
+ nbproject/*
2
+ .rvmrc
3
+ coverage/*
4
+ rdoc/*
5
+ pkg/*
6
+ .DS_Store
7
+ Gemfile.lock
8
+ # tmp disable
9
+ docs/
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format progress
@@ -0,0 +1,32 @@
1
+ rvm:
2
+ - 2.1.1
3
+ - 2.2.10
4
+ - 2.3.7
5
+ - 2.4.4
6
+ - 2.5.1
7
+ gemfile:
8
+ - gemfiles/Gemfile-activemodel-3.1.x
9
+ - gemfiles/Gemfile-activemodel-3.2.x
10
+ - gemfiles/Gemfile-activemodel-4.0.x
11
+ - gemfiles/Gemfile-activemodel-4.1.x
12
+ - gemfiles/Gemfile-activemodel-4.2.x
13
+ - gemfiles/Gemfile-activemodel-5.0.x
14
+ - gemfiles/Gemfile-activemodel-5.1.x
15
+ - gemfiles/Gemfile-activemodel-5.2.x
16
+ matrix:
17
+ exclude:
18
+ - rvm: 2.1.1
19
+ gemfile: gemfiles/Gemfile-activemodel-5.0.x
20
+ - rvm: 2.1.1
21
+ gemfile: gemfiles/Gemfile-activemodel-5.1.x
22
+ - rvm: 2.1.1
23
+ gemfile: gemfiles/Gemfile-activemodel-5.2.x
24
+ - rvm: 2.4.4
25
+ gemfile: gemfiles/Gemfile-activemodel-4.1.x
26
+ - rvm: 2.4.4
27
+ gemfile: gemfiles/Gemfile-activemodel-4.2.x
28
+ - rvm: 2.5.1
29
+ gemfile: gemfiles/Gemfile-activemodel-4.1.x
30
+ - rvm: 2.5.1
31
+ gemfile: gemfiles/Gemfile-activemodel-4.2.x
32
+ sudo: false
@@ -0,0 +1,38 @@
1
+ We love pull requests. Here's a quick guide:
2
+
3
+ 1. Fork the repo.
4
+
5
+ 2. Run the tests. We only take pull requests with passing tests, and it's great
6
+ to know that you have a clean slate: `bundle && rake`
7
+
8
+ 3. Add a test for your change. Only refactoring and documentation changes
9
+ require no new tests. If you are adding functionality or fixing a bug, we need
10
+ a test!
11
+
12
+ 4. Make the test pass.
13
+
14
+ 5. Push to your fork and submit a pull request.
15
+
16
+
17
+ At this point you're waiting on us. We like to at least comment on, if not
18
+ accept, pull requests within three business days (and, typically, one business
19
+ day). We may suggest some changes or improvements or alternatives.
20
+
21
+ Some things that will increase the chance that your pull request is accepted,
22
+ taken straight from the Ruby on Rails guide:
23
+
24
+ * Use Rails idioms and helpers
25
+ * Include tests that fail without your code, and pass with it
26
+ * Update the documentation, the surrounding one, examples elsewhere, guides,
27
+ whatever is affected by your contribution
28
+
29
+ Syntax:
30
+
31
+ * Two spaces, no tabs.
32
+ * No trailing whitespace. Blank lines should not have any space.
33
+ * Prefer &&/|| over and/or.
34
+ * MyClass.my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
35
+ * a = b and not a=b.
36
+ * Follow the conventions you see used in the source already.
37
+
38
+ And in case we didn't emphasize it enough: we love tests!
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
@@ -0,0 +1,24 @@
1
+ Copyright (c) 2018 Tobias Schoknecht
2
+
3
+ Copyright (c) 2013-2017 Georg Leciejewski (Sales King GmbH) & Georg Ledermann for portions of this project copied from sepa_king
4
+
5
+ MIT License
6
+
7
+ Permission is hereby granted, free of charge, to any person obtaining
8
+ a copy of this software and associated documentation files (the
9
+ "Software"), to deal in the Software without restriction, including
10
+ without limitation the rights to use, copy, modify, merge, publish,
11
+ distribute, sublicense, and/or sell copies of the Software, and to
12
+ permit persons to whom the Software is furnished to do so, subject to
13
+ the following conditions:
14
+
15
+ The above copyright notice and this permission notice shall be
16
+ included in all copies or substantial portions of the Software.
17
+
18
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
22
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,246 @@
1
+ # Ruby gem for creating SPS XML files
2
+
3
+ [![Build Status](https://travis-ci.org/Barzahlen/sps_king.svg)](http://travis-ci.org/Barzahlen/sps_king)
4
+ [![Gem Version](https://badge.fury.io/rb/sps_king.svg)](http://badge.fury.io/rb/sps_king)
5
+
6
+ sps_king is a Ruby gem which implements **pain** (**Pa**yment **In**itiation) file building for the Swiss Payment Standard, which is a subset of the ISO 20022 standard.
7
+ This is currently implemented in v1.8 for Swiss Credit Transfers (`pain.001.001.03.ch.02`) and v1.2 for Swiss Direct Debits (`pain.008.001.02.ch.03`).
8
+
9
+ It is a forked of [sepa_king](https://github.com/salesking/sepa_king) and therefore heavily inspired by the structure and the API.
10
+
11
+
12
+ ## Requirements
13
+
14
+ * Ruby 2.1 or newer
15
+ * ActiveModel 3.1 or newer
16
+
17
+
18
+ ## Installation
19
+
20
+ gem install sps_king
21
+
22
+
23
+ ## Usage
24
+
25
+ How to create the XML for **Direct Debit Initiation** (in German: "Lastschriften")
26
+
27
+ ```ruby
28
+ # First: Create the main object
29
+ sdd = SPS::DirectDebit.new(
30
+ # Name of the initiating party and creditor, in German: "Auftraggeber"
31
+ # String, max. 70 char
32
+ name: 'Gläubiger GmbH',
33
+
34
+ # Optional: ISR Participant Number for the swiss ISR debit system. Only for Swiss Direct Debits with ISR references
35
+ # Numeric, 9 digits, last digit is checkdigit recursive with modulo 10
36
+ isr_participant_number: '010001456',
37
+
38
+ # International Bank Account Number of the creditor
39
+ # String, max. 34 chars
40
+ iban: 'CH7081232000001998736',
41
+
42
+ # Creditor Identifier, in German: Gläubiger-Identifikationsnummer
43
+ # String, max. 35 chars
44
+ creditor_identifier: 'ABC1W'
45
+ )
46
+
47
+ # Second: Add transactions
48
+ sdd.add_transaction(
49
+ # Name of the debtor, in German: "Zahlungspflichtiger"
50
+ # String, max. 70 char
51
+ name: 'Zahlemann & Söhne GbR',
52
+
53
+ # International Bank Account Number of the debtor's account
54
+ # String, max. 34 chars
55
+ iban: 'CH9804835011062385295',
56
+
57
+ # Amount
58
+ # Number with two decimal digit
59
+ amount: 39.99,
60
+
61
+ # OPTIONAL: Currency, CHF by default (ISO 4217 standard)
62
+ # String, 3 char
63
+ currency: 'CHF',
64
+
65
+ # Instruction Identification, will not be submitted to the debtor
66
+ # String, max. 35 char
67
+ instruction: '12345',
68
+
69
+ # OPTIONAL: End-To-End-Identification, will be submitted to the debtor
70
+ # String, max. 35 char
71
+ reference: 'XYZ/2013-08-ABO/6789',
72
+
73
+ # OPTIONAL: Unstructured remittance information, in German "Verwendungszweck"
74
+ # String, max. 140 char
75
+ remittance_information: 'Vielen Dank für Ihren Einkauf!',
76
+
77
+ # OPTIONAL: Structured remittance information, in German "Strukturierter Verwendungszweck". Required for e.g. Swiss Direct Debits
78
+ # StructuredRemittanceInformation
79
+ structured_remittance_information: SPS::StructuredRemittanceInformation.new(
80
+ # Defines how the reference field should be interpreted for Swiss Direct Debits
81
+ # One of these strings:
82
+ # 'ESR' ("ESR-Referenznummer")
83
+ # 'IPI' ("IPI-Verwendungszweck")
84
+ proprietary: 'ESR',
85
+ # if proprietary is 'ESR': 27 character ISR reference number
86
+ # if proprietary is 'IPI': 20 character IPI remittance
87
+ reference: '609323234234234353453423423'
88
+ ),
89
+
90
+ # Service Level
91
+ # One of these strings:
92
+ # 'CHTA' ("Banklastschrift") - Only for Swiss Direct Debits
93
+ # 'CHDD' ("PostFinance-Lastschrift") - Only for Swiss Direct Debits
94
+ service_level: 'CHTA'
95
+
96
+ # Local instrument, in German "Lastschriftart"
97
+ # One of these strings:
98
+ # 'DDCOR1' ("Basis-Lastschrift") - only for service_level 'CHDD'
99
+ # 'DDB2B' ("Firmen-Lastschrift") - only for service_level 'CHDD'
100
+ # 'LSV+' ("Basis-Lastschrift") - only for service_level 'CHTA'
101
+ # 'BDD' ("Firmen-Lastschrift") - only for service_level 'CHTA'
102
+ local_instrument: 'LSV+',
103
+
104
+ # OPTIONAL: Requested collection date, in German "Fälligkeitsdatum der Lastschrift"
105
+ # Date
106
+ requested_date: Date.new(2013,9,5),
107
+
108
+ # OPTIONAL: Use a different creditor account
109
+ # CreditorAccount
110
+ creditor_account: SPS::CreditorAccount.new(
111
+ name: 'Creditor Inc.',
112
+ iban: 'CH7081232000001998736',
113
+ creditor_identifier: '12312'
114
+ )
115
+
116
+ # Specify the country & address of the debtor (The individually required fields depend on the local legal requirements)
117
+ debtor_address: SPS::DebtorAddress.new(
118
+ country_code: 'CH',
119
+ # Not required if individual fields are used
120
+ address_line1: 'Mustergasse 123a',
121
+ address_line2: '1234 Musterstadt'
122
+ # Not required if address_line1 and address_line2 are used
123
+ street_name: 'Mustergasse',
124
+ post_code: '1234',
125
+ town_name: 'Musterstadt'
126
+ )
127
+ )
128
+ sdd.add_transaction ...
129
+
130
+ # Last: create XML string
131
+ xml_string = sdd.to_xml # Use latest schema pain.008.001.02.ch.03
132
+ ```
133
+
134
+
135
+ How to create the XML for **Credit Transfer Initiation** (in German: "Überweisungen")
136
+
137
+ ```ruby
138
+ # First: Create the main object
139
+ sct = SPS::CreditTransfer.new(
140
+ # Name of the initiating party and debtor, in German: "Auftraggeber"
141
+ # String, max. 70 char
142
+ name: 'Schuldner GmbH',
143
+
144
+ # Business Identifier Code (SWIFT-Code) of the debtor
145
+ # String, 8 or 11 char
146
+ bic: 'RAIFCH22',
147
+
148
+ # International Bank Account Number of the debtor
149
+ # String, max. 34 chars
150
+ iban: 'CH5481230000001998736'
151
+ )
152
+
153
+ # Second: Add transactions
154
+ sct.add_transaction(
155
+ # Name of the creditor, in German: "Zahlungsempfänger"
156
+ # String, max. 70 char
157
+ name: 'Contoso AG',
158
+
159
+ # Business Identifier Code (SWIFT-Code) of the creditor's account
160
+ # String, 8 or 11 char
161
+ bic: 'CRESCHZZ80A',
162
+
163
+ # International Bank Account Number of the creditor's account
164
+ # String, max. 34 chars
165
+ iban: 'CH9300762011623852957',
166
+
167
+ # Amount
168
+ # Number with two decimal digit
169
+ amount: 102.50,
170
+
171
+ # OPTIONAL: Currency, CHF by default (ISO 4217 standard)
172
+ # String, 3 char
173
+ currency: 'CHF',
174
+
175
+ # OPTIONAL: Instruction Identification, will not be submitted to the creditor
176
+ # String, max. 35 char
177
+ instruction: '12345',
178
+
179
+ # OPTIONAL: End-To-End-Identification, will be submitted to the creditor
180
+ # String, max. 35 char
181
+ reference: 'XYZ-1234/123',
182
+
183
+ # OPTIONAL: Unstructured remittance information, in German "Verwendungszweck"
184
+ # String, max. 140 char
185
+ remittance_information: 'Rechnung vom 22.08.2013',
186
+
187
+ # OPTIONAL: Requested execution date, in German "Ausführungstermin"
188
+ # Date
189
+ requested_date: Date.new(2013,9,5),
190
+
191
+ # OPTIONAL: Enables or disables batch booking, in German "Sammelbuchung / Einzelbuchung"
192
+ # True or False
193
+ batch_booking: true,
194
+
195
+ # OPTIONAL: Urgent Payment
196
+ # One of these strings:
197
+ # 'SEPA' ("SEPA-Zahlung")
198
+ # 'URGP' ("Taggleiche Eilüberweisung")
199
+ service_level: 'URGP'
200
+
201
+ # OPTIONAL: Unstructured information to indicate the purpose of the payment
202
+ # String, max. 4 char
203
+ category_purpose: 'SALA',
204
+
205
+ # Specify the country & address of the creditor. The required fields may vary depending on the legal requirements.
206
+ creditor_address: SPS::CreditorAddress.new(
207
+ country_code: 'CH',
208
+ # Not required if individual fields are used
209
+ address_line1: 'Mustergasse 123a',
210
+ address_line2: '1234 Musterstadt'
211
+ # Not required if address_line1 and address_line2 are used
212
+ street_name: 'Mustergasse',
213
+ building_number: '123a',
214
+ post_code: '1234',
215
+ town_name: 'Musterstadt'
216
+ )
217
+ )
218
+ sct.add_transaction ...
219
+
220
+ # Last: create XML string
221
+ xml_string = sct.to_xml # Use latest schema pain.001.001.03.ch.02
222
+ ```
223
+
224
+ ## Changelog
225
+
226
+ https://github.com/Barzahlen/sps_king/releases
227
+
228
+
229
+ ## Contributors
230
+
231
+ https://github.com/Barzahlen/sps_king/graphs/contributors
232
+
233
+
234
+ ## Resources
235
+
236
+ * https://www.six-group.com/interbank-clearing/de/home/standardization/iso-payments/customer-bank/implementation-guidelines.html
237
+ * https://www.lsv.ch/en/home/financial-institutions/direct-debit-procedures/support.html
238
+ * https://www.six-group.com/interbank-clearing/de/home/bank-master-data/inquiry-bc-number.html
239
+
240
+ ## License
241
+
242
+ Released under the MIT license
243
+
244
+ Copyright (c) 2018 Tobias Schoknecht
245
+
246
+ Copyright (c) 2013-2017 Georg Leciejewski (Sales King GmbH) & Georg Ledermann for portions of this project copied from sepa_king
@@ -0,0 +1,6 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec path: '..'
4
+
5
+ gem 'activemodel', '~>3.1.12'
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec path: '..'
4
+
5
+ gem 'activemodel', '~>3.2.22.2'
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec path: '..'
4
+
5
+ gem 'activemodel', '~>4.0.13'
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec path: '..'
4
+
5
+ gem 'activemodel', '~>4.1.15'
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec path: '..'
4
+
5
+ gem 'activemodel', '~>4.2.6'
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec path: '..'
4
+
5
+ gem 'activemodel', '~> 5.0.0'
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec path: '..'
4
+
5
+ gem 'activemodel', '~> 5.1.0'
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec path: '..'
4
+
5
+ gem 'activemodel', '~> 5.2.0'
@@ -0,0 +1,1212 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!--
3
+ (C) Copyright 2010, SKSF, www.sksf.ch
4
+ CH Version fuer pain.001 Credit Transfer: xmlns="http://www.iso-payments.ch"
5
+ .ch.: Identification for this CH version
6
+ Last part (.02): Version of this scheme
7
+
8
+ Based on ISO pain.001.001.03 (urn:iso:std:iso:20022:tech:xsd:pain.001.001.03)
9
+
10
+ Anregungen und Fragen zu diesem Dokument können an das jeweilige Finanzinstitut gerichtet werden.
11
+ Allgemeine Anregungen können auch bei der SIX Interbank Clearing AG unter folgender Adresse angebracht werden:
12
+ pm@six-group.com
13
+
14
+ History
15
+ 15.02.2010 V01 initial version, targetNamespace="http://www.six-interbank-clearing.com/de/pain.001.001.03.ch.01.xsd" File:pain.001.001.03.ch.01.xsd
16
+ 30.04.2010 V02 added: element Initiating Party/Contact Details contains Software name and Version of producing application
17
+ changed: name in "PartyIdentification32-CH_Name" mandatory
18
+ -->
19
+ <!-- V01: changed:
20
+ -->
21
+ <xs:schema xmlns="http://www.six-interbank-clearing.com/de/pain.001.001.03.ch.02.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.six-interbank-clearing.com/de/pain.001.001.03.ch.02.xsd" elementFormDefault="qualified">
22
+ <xs:element name="Document" type="Document"/>
23
+ <!-- V01: changed: CH version changes applied -->
24
+ <xs:complexType name="AccountIdentification4Choice-CH">
25
+ <xs:sequence>
26
+ <xs:choice>
27
+ <xs:element name="IBAN" type="IBAN2007Identifier"/>
28
+ <xs:element name="Othr" type="GenericAccountIdentification1-CH"/>
29
+ </xs:choice>
30
+ </xs:sequence>
31
+ </xs:complexType>
32
+ <!-- V01: unused
33
+ <xs:complexType name="AccountSchemeName1Choice">
34
+ <xs:sequence>
35
+ <xs:choice>
36
+ <xs:element name="Cd" type="ExternalAccountIdentification1Code"/>
37
+ <xs:element name="Prtry" type="Max35Text"/>
38
+ </xs:choice>
39
+ </xs:sequence>
40
+ </xs:complexType>
41
+ -->
42
+ <xs:simpleType name="ActiveOrHistoricCurrencyAndAmount_SimpleType">
43
+ <xs:restriction base="xs:decimal">
44
+ <xs:minInclusive value="0"/>
45
+ <xs:fractionDigits value="5"/>
46
+ <xs:totalDigits value="18"/>
47
+ </xs:restriction>
48
+ </xs:simpleType>
49
+ <xs:complexType name="ActiveOrHistoricCurrencyAndAmount">
50
+ <xs:simpleContent>
51
+ <xs:extension base="ActiveOrHistoricCurrencyAndAmount_SimpleType">
52
+ <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCode" use="required"/>
53
+ </xs:extension>
54
+ </xs:simpleContent>
55
+ </xs:complexType>
56
+ <xs:simpleType name="ActiveOrHistoricCurrencyCode">
57
+ <xs:restriction base="xs:string">
58
+ <xs:pattern value="[A-Z]{3,3}"/>
59
+ </xs:restriction>
60
+ </xs:simpleType>
61
+ <xs:simpleType name="AddressType2Code">
62
+ <xs:restriction base="xs:string">
63
+ <xs:enumeration value="ADDR"/>
64
+ <xs:enumeration value="PBOX"/>
65
+ <xs:enumeration value="HOME"/>
66
+ <xs:enumeration value="BIZZ"/>
67
+ <xs:enumeration value="MLTO"/>
68
+ <xs:enumeration value="DLVY"/>
69
+ </xs:restriction>
70
+ </xs:simpleType>
71
+ <xs:complexType name="AmountType3Choice">
72
+ <xs:sequence>
73
+ <xs:choice>
74
+ <xs:element name="InstdAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
75
+ <xs:element name="EqvtAmt" type="EquivalentAmount2"/>
76
+ </xs:choice>
77
+ </xs:sequence>
78
+ </xs:complexType>
79
+ <xs:simpleType name="AnyBICIdentifier">
80
+ <xs:restriction base="xs:string">
81
+ <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
82
+ </xs:restriction>
83
+ </xs:simpleType>
84
+ <!-- V01: unused: type Authorisation1Choice is not allowed or used in CH Version
85
+ <xs:complexType name="Authorisation1Choice">
86
+ <xs:sequence>
87
+ <xs:choice>
88
+ <xs:element name="Cd" type="Authorisation1Code"/>
89
+ <xs:element name="Prtry" type="Max128Text"/>
90
+ </xs:choice>
91
+ </xs:sequence>
92
+ </xs:complexType>
93
+ <xs:simpleType name="Authorisation1Code">
94
+ <xs:restriction base="xs:string">
95
+ <xs:enumeration value="AUTH"/>
96
+ <xs:enumeration value="FDET"/>
97
+ <xs:enumeration value="FSUM"/>
98
+ <xs:enumeration value="ILEV"/>
99
+ </xs:restriction>
100
+ </xs:simpleType>
101
+ -->
102
+ <!-- V01: added: CH version supports only this character set. All text fields use this type -->
103
+ <xs:simpleType name="BasicText-CH">
104
+ <xs:restriction base="xs:string">
105
+ <xs:pattern value="([a-zA-Z0-9\.,;:'\+\-/\(\)?\*\[\]\{\}\\`´~ ]|[!&quot;#%&amp;&lt;&gt;÷=@_$£]|[àáâäçèéêëìíîïñòóôöùúûüýßÀÁÂÄÇÈÉÊËÌÍÎÏÒÓÔÖÙÚÛÜÑ])*"/>
106
+ </xs:restriction>
107
+ </xs:simpleType>
108
+ <!-- V01: added: This is the SWIFT character set -->
109
+ <xs:simpleType name="BasicText-Swift">
110
+ <xs:restriction base="xs:string">
111
+ <xs:pattern value="([A-Za-z0-9]|[+|\?|/|\-|:|\(|\)|\.|,|'|\p{Zs}])*"/>
112
+ </xs:restriction>
113
+ </xs:simpleType>
114
+ <xs:simpleType name="BICIdentifier">
115
+ <xs:restriction base="xs:string">
116
+ <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
117
+ </xs:restriction>
118
+ </xs:simpleType>
119
+ <xs:simpleType name="BaseOneRate">
120
+ <xs:restriction base="xs:decimal">
121
+ <xs:fractionDigits value="10"/>
122
+ <xs:totalDigits value="11"/>
123
+ </xs:restriction>
124
+ </xs:simpleType>
125
+ <xs:simpleType name="BatchBookingIndicator">
126
+ <xs:restriction base="xs:boolean"/>
127
+ </xs:simpleType>
128
+ <xs:complexType name="BranchAndFinancialInstitutionIdentification4">
129
+ <xs:sequence>
130
+ <xs:element name="FinInstnId" type="FinancialInstitutionIdentification7"/>
131
+ <xs:element name="BrnchId" type="BranchData2" minOccurs="0"/>
132
+ </xs:sequence>
133
+ </xs:complexType>
134
+ <!-- VO1: added: definition of FI where only BIC or Clearing Id is allowed, but no branch data -->
135
+ <xs:complexType name="BranchAndFinancialInstitutionIdentification4-CH_BicOrClrId">
136
+ <xs:sequence>
137
+ <xs:element name="FinInstnId" type="FinancialInstitutionIdentification7-CH_BicOrClrId"/>
138
+ <!-- V01: unused
139
+ <xs:element name="BrnchId" type="BranchData2" minOccurs="0"/>
140
+ -->
141
+ </xs:sequence>
142
+ </xs:complexType>
143
+ <!-- VO1: added: definition of FI where all elements are allowed, but no branch data -->
144
+ <xs:complexType name="BranchAndFinancialInstitutionIdentification4-CH">
145
+ <xs:sequence>
146
+ <xs:element name="FinInstnId" type="FinancialInstitutionIdentification7-CH"/>
147
+ <!-- V01: unused
148
+ <xs:element name="BrnchId" type="BranchData2" minOccurs="0"/>
149
+ -->
150
+ </xs:sequence>
151
+ </xs:complexType>
152
+ <xs:complexType name="BranchData2">
153
+ <xs:sequence>
154
+ <xs:element name="Id" type="Max35Text" minOccurs="0"/>
155
+ <xs:element name="Nm" type="Max140Text" minOccurs="0"/>
156
+ <xs:element name="PstlAdr" type="PostalAddress6" minOccurs="0"/>
157
+ </xs:sequence>
158
+ </xs:complexType>
159
+ <!-- V01: changed: CH version changes applied -->
160
+ <xs:complexType name="CashAccount16-CH_IdAndCurrency">
161
+ <xs:sequence>
162
+ <xs:element name="Id" type="AccountIdentification4Choice-CH"/>
163
+ <xs:element name="Ccy" type="ActiveOrHistoricCurrencyCode" minOccurs="0"/>
164
+ <!-- V01: unused
165
+ <xs:element name="Tp" type="CashAccountType2" minOccurs="0"/>
166
+ <xs:element name="Nm" type="Max70Text" minOccurs="0"/>
167
+ -->
168
+ </xs:sequence>
169
+ </xs:complexType>
170
+ <!-- V01: added -->
171
+ <xs:complexType name="CashAccount16-CH_IdTpCcy">
172
+ <xs:sequence>
173
+ <xs:element name="Id" type="AccountIdentification4Choice-CH"/>
174
+ <xs:element name="Tp" type="CashAccountType2" minOccurs="0"/>
175
+ <xs:element name="Ccy" type="ActiveOrHistoricCurrencyCode" minOccurs="0"/>
176
+ <!-- V01: unused
177
+ <xs:element name="Nm" type="Max70Text" minOccurs="0"/>
178
+ -->
179
+ </xs:sequence>
180
+ </xs:complexType>
181
+ <!-- V01: added -->
182
+ <xs:complexType name="CashAccount16-CH_Id">
183
+ <xs:sequence>
184
+ <xs:element name="Id" type="AccountIdentification4Choice-CH"/>
185
+ <!-- V01: unused
186
+ <xs:element name="Tp" type="CashAccountType2" minOccurs="0"/>
187
+ <xs:element name="Ccy" type="ActiveOrHistoricCurrencyCode" minOccurs="0"/>
188
+ <xs:element name="Nm" type="Max70Text" minOccurs="0"/>
189
+ -->
190
+ </xs:sequence>
191
+ </xs:complexType>
192
+ <xs:complexType name="CashAccountType2">
193
+ <xs:sequence>
194
+ <xs:choice>
195
+ <xs:element name="Cd" type="CashAccountType4Code"/>
196
+ <xs:element name="Prtry" type="Max35Text"/>
197
+ </xs:choice>
198
+ </xs:sequence>
199
+ </xs:complexType>
200
+ <xs:simpleType name="CashAccountType4Code">
201
+ <xs:restriction base="xs:string">
202
+ <xs:enumeration value="CASH"/>
203
+ <xs:enumeration value="CHAR"/>
204
+ <xs:enumeration value="COMM"/>
205
+ <xs:enumeration value="TAXE"/>
206
+ <xs:enumeration value="CISH"/>
207
+ <xs:enumeration value="TRAS"/>
208
+ <xs:enumeration value="SACC"/>
209
+ <xs:enumeration value="CACC"/>
210
+ <xs:enumeration value="SVGS"/>
211
+ <xs:enumeration value="ONDP"/>
212
+ <xs:enumeration value="MGLD"/>
213
+ <xs:enumeration value="NREX"/>
214
+ <xs:enumeration value="MOMA"/>
215
+ <xs:enumeration value="LOAN"/>
216
+ <xs:enumeration value="SLRY"/>
217
+ <xs:enumeration value="ODFT"/>
218
+ </xs:restriction>
219
+ </xs:simpleType>
220
+ <!-- V01: changed: Only element Code allowed in Ch version -->
221
+ <xs:complexType name="CategoryPurpose1-CH_Code">
222
+ <xs:sequence>
223
+ <xs:element name="Cd" type="ExternalCategoryPurpose1Code"/>
224
+ <!-- V01: unused
225
+ <xs:element name="Prtry" type="Max35Text"/>
226
+ -->
227
+ </xs:sequence>
228
+ </xs:complexType>
229
+ <!-- -->
230
+ <xs:simpleType name="ChargeBearerType1Code">
231
+ <xs:restriction base="xs:string">
232
+ <xs:enumeration value="DEBT"/>
233
+ <xs:enumeration value="CRED"/>
234
+ <xs:enumeration value="SHAR"/>
235
+ <xs:enumeration value="SLEV"/>
236
+ </xs:restriction>
237
+ </xs:simpleType>
238
+ <!-- V01: unused
239
+ <xs:complexType name="Cheque6">
240
+ <xs:sequence>
241
+ <xs:element name="ChqTp" type="ChequeType2Code" minOccurs="0"/>
242
+ <xs:element name="ChqNb" type="Max35Text" minOccurs="0"/>
243
+ <xs:element name="ChqFr" type="NameAndAddress10" minOccurs="0"/>
244
+ <xs:element name="DlvryMtd" type="ChequeDeliveryMethod1Choice" minOccurs="0"/>
245
+ <xs:element name="DlvrTo" type="NameAndAddress10" minOccurs="0"/>
246
+ <xs:element name="InstrPrty" type="Priority2Code" minOccurs="0"/>
247
+ <xs:element name="ChqMtrtyDt" type="ISODate" minOccurs="0"/>
248
+ <xs:element name="FrmsCd" type="Max35Text" minOccurs="0"/>
249
+ <xs:element name="MemoFld" type="Max35Text" minOccurs="0" maxOccurs="2"/>
250
+ <xs:element name="RgnlClrZone" type="Max35Text" minOccurs="0"/>
251
+ <xs:element name="PrtLctn" type="Max35Text" minOccurs="0"/>
252
+ </xs:sequence>
253
+ </xs:complexType>
254
+ -->
255
+ <!-- V01: added -->
256
+ <xs:complexType name="Cheque6-CH">
257
+ <xs:sequence>
258
+ <xs:element name="ChqTp" type="ChequeType2Code" minOccurs="0"/>
259
+ <xs:element name="DlvryMtd" type="ChequeDeliveryMethod1Choice" minOccurs="0"/>
260
+ <!-- V01: unused
261
+ <xs:element name="ChqNb" type="Max35Text" minOccurs="0"/>
262
+ <xs:element name="ChqFr" type="NameAndAddress10" minOccurs="0"/>
263
+ <xs:element name="DlvrTo" type="NameAndAddress10" minOccurs="0"/>
264
+ <xs:element name="InstrPrty" type="Priority2Code" minOccurs="0"/>
265
+ <xs:element name="ChqMtrtyDt" type="ISODate" minOccurs="0"/>
266
+ <xs:element name="FrmsCd" type="Max35Text" minOccurs="0"/>
267
+ <xs:element name="MemoFld" type="Max35Text" minOccurs="0" maxOccurs="2"/>
268
+ <xs:element name="RgnlClrZone" type="Max35Text" minOccurs="0"/>
269
+ <xs:element name="PrtLctn" type="Max35Text" minOccurs="0"/>
270
+ -->
271
+ </xs:sequence>
272
+ </xs:complexType>
273
+ <xs:simpleType name="ChequeDelivery1Code">
274
+ <xs:restriction base="xs:string">
275
+ <xs:enumeration value="MLDB"/>
276
+ <xs:enumeration value="MLCD"/>
277
+ <xs:enumeration value="MLFA"/>
278
+ <xs:enumeration value="CRDB"/>
279
+ <xs:enumeration value="CRCD"/>
280
+ <xs:enumeration value="CRFA"/>
281
+ <xs:enumeration value="PUDB"/>
282
+ <xs:enumeration value="PUCD"/>
283
+ <xs:enumeration value="PUFA"/>
284
+ <xs:enumeration value="RGDB"/>
285
+ <xs:enumeration value="RGCD"/>
286
+ <xs:enumeration value="RGFA"/>
287
+ </xs:restriction>
288
+ </xs:simpleType>
289
+ <xs:complexType name="ChequeDeliveryMethod1Choice">
290
+ <xs:sequence>
291
+ <xs:choice>
292
+ <xs:element name="Cd" type="ChequeDelivery1Code"/>
293
+ <xs:element name="Prtry" type="Max35Text"/>
294
+ </xs:choice>
295
+ </xs:sequence>
296
+ </xs:complexType>
297
+ <xs:simpleType name="ChequeType2Code">
298
+ <xs:restriction base="xs:string">
299
+ <xs:enumeration value="CCHQ"/>
300
+ <xs:enumeration value="CCCH"/>
301
+ <xs:enumeration value="BCHQ"/>
302
+ <xs:enumeration value="DRFT"/>
303
+ <xs:enumeration value="ELDR"/>
304
+ </xs:restriction>
305
+ </xs:simpleType>
306
+ <xs:complexType name="ClearingSystemIdentification2Choice">
307
+ <xs:sequence>
308
+ <xs:choice>
309
+ <xs:element name="Cd" type="ExternalClearingSystemIdentification1Code"/>
310
+ <xs:element name="Prtry" type="Max35Text"/>
311
+ </xs:choice>
312
+ </xs:sequence>
313
+ </xs:complexType>
314
+ <xs:complexType name="ClearingSystemMemberIdentification2">
315
+ <xs:sequence>
316
+ <xs:element name="ClrSysId" type="ClearingSystemIdentification2Choice" minOccurs="0"/>
317
+ <xs:element name="MmbId" type="Max35Text"/>
318
+ </xs:sequence>
319
+ </xs:complexType>
320
+ <xs:complexType name="ContactDetails2">
321
+ <xs:sequence>
322
+ <xs:element name="NmPrfx" type="NamePrefix1Code" minOccurs="0"/>
323
+ <xs:element name="Nm" type="Max140Text" minOccurs="0"/>
324
+ <xs:element name="PhneNb" type="PhoneNumber" minOccurs="0"/>
325
+ <xs:element name="MobNb" type="PhoneNumber" minOccurs="0"/>
326
+ <xs:element name="FaxNb" type="PhoneNumber" minOccurs="0"/>
327
+ <xs:element name="EmailAdr" type="Max2048Text" minOccurs="0"/>
328
+ <xs:element name="Othr" type="Max35Text" minOccurs="0"/>
329
+ </xs:sequence>
330
+ </xs:complexType>
331
+ <!-- V02: changed: include Contact Details for Software name and version -->
332
+ <xs:complexType name="ContactDetails2-CH">
333
+ <xs:sequence>
334
+ <xs:element name="Nm" type="Max70Text" minOccurs="0"/>
335
+ <xs:element name="Othr" type="Max35Text" minOccurs="0"/>
336
+ <!-- V02: unused
337
+ <xs:element name="NmPrfx" type="NamePrefix1Code" minOccurs="0"/>
338
+ <xs:element name="PhneNb" type="PhoneNumber" minOccurs="0"/>
339
+ <xs:element name="MobNb" type="PhoneNumber" minOccurs="0"/>
340
+ <xs:element name="FaxNb" type="PhoneNumber" minOccurs="0"/>
341
+ <xs:element name="EmailAdr" type="Max2048Text" minOccurs="0"/>
342
+ -->
343
+ </xs:sequence>
344
+ </xs:complexType>
345
+ <xs:simpleType name="CountryCode">
346
+ <xs:restriction base="xs:string">
347
+ <xs:pattern value="[A-Z]{2,2}"/>
348
+ </xs:restriction>
349
+ </xs:simpleType>
350
+ <xs:simpleType name="CreditDebitCode">
351
+ <xs:restriction base="xs:string">
352
+ <xs:enumeration value="CRDT"/>
353
+ <xs:enumeration value="DBIT"/>
354
+ </xs:restriction>
355
+ </xs:simpleType>
356
+ <xs:complexType name="CreditTransferTransactionInformation10-CH">
357
+ <xs:sequence>
358
+ <xs:element name="PmtId" type="PaymentIdentification1"/>
359
+ <xs:element name="PmtTpInf" type="PaymentTypeInformation19-CH" minOccurs="0"/>
360
+ <xs:element name="Amt" type="AmountType3Choice"/>
361
+ <xs:element name="XchgRateInf" type="ExchangeRateInformation1" minOccurs="0"/>
362
+ <xs:element name="ChrgBr" type="ChargeBearerType1Code" minOccurs="0"/>
363
+ <xs:element name="ChqInstr" type="Cheque6-CH" minOccurs="0"/>
364
+ <xs:element name="UltmtDbtr" type="PartyIdentification32-CH" minOccurs="0"/>
365
+ <xs:element name="IntrmyAgt1" type="BranchAndFinancialInstitutionIdentification4-CH" minOccurs="0"/>
366
+ <xs:element name="CdtrAgt" type="BranchAndFinancialInstitutionIdentification4-CH" minOccurs="0"/>
367
+ <!-- V02: changed: element Name mandatory -->
368
+ <xs:element name="Cdtr" type="PartyIdentification32-CH_Name" minOccurs="0"/>
369
+ <xs:element name="CdtrAcct" type="CashAccount16-CH_Id" minOccurs="0"/>
370
+ <!-- V02: changed: element Name mandatory -->
371
+ <xs:element name="UltmtCdtr" type="PartyIdentification32-CH_Name" minOccurs="0"/>
372
+ <xs:element name="InstrForCdtrAgt" type="InstructionForCreditorAgent1" minOccurs="0" maxOccurs="unbounded"/>
373
+ <xs:element name="InstrForDbtrAgt" type="Max140Text" minOccurs="0"/>
374
+ <xs:element name="Purp" type="Purpose2-CH_Code" minOccurs="0"/>
375
+ <xs:element name="RgltryRptg" type="RegulatoryReporting3" minOccurs="0" maxOccurs="10"/>
376
+ <xs:element name="RmtInf" type="RemittanceInformation5-CH" minOccurs="0"/>
377
+ <!-- V01: usused
378
+ <xs:element name="IntrmyAgt1Acct" type="CashAccount16" minOccurs="0"/>
379
+ <xs:element name="IntrmyAgt2" type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
380
+ <xs:element name="IntrmyAgt2Acct" type="CashAccount16" minOccurs="0"/>
381
+ <xs:element name="IntrmyAgt3" type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
382
+ <xs:element name="IntrmyAgt3Acct" type="CashAccount16" minOccurs="0"/>
383
+ <xs:element name="CdtrAgtAcct" type="CashAccount16-CH_Id" minOccurs="0"/>
384
+ <xs:element name="Tax" type="TaxInformation3" minOccurs="0"/>
385
+ <xs:element name="RltdRmtInf" type="RemittanceLocation2" minOccurs="0" maxOccurs="10"/>
386
+ -->
387
+ </xs:sequence>
388
+ </xs:complexType>
389
+ <xs:complexType name="CreditorReferenceInformation2">
390
+ <xs:sequence>
391
+ <xs:element name="Tp" type="CreditorReferenceType2" minOccurs="0"/>
392
+ <xs:element name="Ref" type="Max35Text" minOccurs="0"/>
393
+ </xs:sequence>
394
+ </xs:complexType>
395
+ <xs:complexType name="CreditorReferenceType1Choice">
396
+ <xs:sequence>
397
+ <xs:choice>
398
+ <xs:element name="Cd" type="DocumentType3Code"/>
399
+ <xs:element name="Prtry" type="Max35Text"/>
400
+ </xs:choice>
401
+ </xs:sequence>
402
+ </xs:complexType>
403
+ <xs:complexType name="CreditorReferenceType2">
404
+ <xs:sequence>
405
+ <xs:element name="CdOrPrtry" type="CreditorReferenceType1Choice"/>
406
+ <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
407
+ </xs:sequence>
408
+ </xs:complexType>
409
+ <xs:complexType name="CustomerCreditTransferInitiationV03-CH">
410
+ <xs:sequence>
411
+ <xs:element name="GrpHdr" type="GroupHeader32-CH"/>
412
+ <xs:element name="PmtInf" type="PaymentInstructionInformation3-CH" maxOccurs="unbounded"/>
413
+ </xs:sequence>
414
+ </xs:complexType>
415
+ <xs:complexType name="DateAndPlaceOfBirth">
416
+ <xs:sequence>
417
+ <xs:element name="BirthDt" type="ISODate"/>
418
+ <xs:element name="PrvcOfBirth" type="Max35Text" minOccurs="0"/>
419
+ <xs:element name="CityOfBirth" type="Max35Text"/>
420
+ <xs:element name="CtryOfBirth" type="CountryCode"/>
421
+ </xs:sequence>
422
+ </xs:complexType>
423
+ <!-- V01: unused
424
+ <xs:complexType name="DatePeriodDetails">
425
+ <xs:sequence>
426
+ <xs:element name="FrDt" type="ISODate"/>
427
+ <xs:element name="ToDt" type="ISODate"/>
428
+ </xs:sequence>
429
+ </xs:complexType>
430
+ -->
431
+ <xs:simpleType name="DecimalNumber">
432
+ <xs:restriction base="xs:decimal">
433
+ <xs:fractionDigits value="17"/>
434
+ <xs:totalDigits value="18"/>
435
+ </xs:restriction>
436
+ </xs:simpleType>
437
+ <xs:complexType name="Document">
438
+ <xs:sequence>
439
+ <xs:element name="CstmrCdtTrfInitn" type="CustomerCreditTransferInitiationV03-CH"/>
440
+ </xs:sequence>
441
+ </xs:complexType>
442
+ <xs:complexType name="DocumentAdjustment1">
443
+ <xs:sequence>
444
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
445
+ <xs:element name="CdtDbtInd" type="CreditDebitCode" minOccurs="0"/>
446
+ <xs:element name="Rsn" type="Max4Text" minOccurs="0"/>
447
+ <xs:element name="AddtlInf" type="Max140Text" minOccurs="0"/>
448
+ </xs:sequence>
449
+ </xs:complexType>
450
+ <xs:simpleType name="DocumentType3Code">
451
+ <xs:restriction base="xs:string">
452
+ <xs:enumeration value="RADM"/>
453
+ <xs:enumeration value="RPIN"/>
454
+ <xs:enumeration value="FXDR"/>
455
+ <xs:enumeration value="DISP"/>
456
+ <xs:enumeration value="PUOR"/>
457
+ <xs:enumeration value="SCOR"/>
458
+ </xs:restriction>
459
+ </xs:simpleType>
460
+ <xs:simpleType name="DocumentType5Code">
461
+ <xs:restriction base="xs:string">
462
+ <xs:enumeration value="MSIN"/>
463
+ <xs:enumeration value="CNFA"/>
464
+ <xs:enumeration value="DNFA"/>
465
+ <xs:enumeration value="CINV"/>
466
+ <xs:enumeration value="CREN"/>
467
+ <xs:enumeration value="DEBN"/>
468
+ <xs:enumeration value="HIRI"/>
469
+ <xs:enumeration value="SBIN"/>
470
+ <xs:enumeration value="CMCN"/>
471
+ <xs:enumeration value="SOAC"/>
472
+ <xs:enumeration value="DISP"/>
473
+ <xs:enumeration value="BOLD"/>
474
+ <xs:enumeration value="VCHR"/>
475
+ <xs:enumeration value="AROI"/>
476
+ <xs:enumeration value="TSUT"/>
477
+ </xs:restriction>
478
+ </xs:simpleType>
479
+ <xs:complexType name="EquivalentAmount2">
480
+ <xs:sequence>
481
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
482
+ <xs:element name="CcyOfTrf" type="ActiveOrHistoricCurrencyCode"/>
483
+ </xs:sequence>
484
+ </xs:complexType>
485
+ <xs:complexType name="ExchangeRateInformation1">
486
+ <xs:sequence>
487
+ <xs:element name="XchgRate" type="BaseOneRate" minOccurs="0"/>
488
+ <xs:element name="RateTp" type="ExchangeRateType1Code" minOccurs="0"/>
489
+ <xs:element name="CtrctId" type="Max35Text" minOccurs="0"/>
490
+ </xs:sequence>
491
+ </xs:complexType>
492
+ <xs:simpleType name="ExchangeRateType1Code">
493
+ <xs:restriction base="xs:string">
494
+ <xs:enumeration value="SPOT"/>
495
+ <xs:enumeration value="SALE"/>
496
+ <xs:enumeration value="AGRD"/>
497
+ </xs:restriction>
498
+ </xs:simpleType>
499
+ <!-- V01: unused:
500
+ <xs:simpleType name="ExternalAccountIdentification1Code">
501
+ <xs:restriction base="xs:string">
502
+ <xs:minLength value="1"/>
503
+ <xs:maxLength value="4"/>
504
+ </xs:restriction>
505
+ </xs:simpleType>
506
+ -->
507
+ <xs:simpleType name="ExternalCategoryPurpose1Code">
508
+ <xs:restriction base="xs:string">
509
+ <xs:minLength value="1"/>
510
+ <xs:maxLength value="4"/>
511
+ </xs:restriction>
512
+ </xs:simpleType>
513
+ <xs:simpleType name="ExternalClearingSystemIdentification1Code">
514
+ <xs:restriction base="xs:string">
515
+ <xs:minLength value="1"/>
516
+ <xs:maxLength value="5"/>
517
+ </xs:restriction>
518
+ </xs:simpleType>
519
+ <xs:simpleType name="ExternalFinancialInstitutionIdentification1Code">
520
+ <xs:restriction base="xs:string">
521
+ <xs:minLength value="1"/>
522
+ <xs:maxLength value="4"/>
523
+ </xs:restriction>
524
+ </xs:simpleType>
525
+ <xs:simpleType name="ExternalLocalInstrument1Code">
526
+ <xs:restriction base="xs:string">
527
+ <xs:minLength value="1"/>
528
+ <xs:maxLength value="35"/>
529
+ </xs:restriction>
530
+ </xs:simpleType>
531
+ <xs:simpleType name="ExternalOrganisationIdentification1Code">
532
+ <xs:restriction base="xs:string">
533
+ <xs:minLength value="1"/>
534
+ <xs:maxLength value="4"/>
535
+ </xs:restriction>
536
+ </xs:simpleType>
537
+ <xs:simpleType name="ExternalPersonIdentification1Code">
538
+ <xs:restriction base="xs:string">
539
+ <xs:minLength value="1"/>
540
+ <xs:maxLength value="4"/>
541
+ </xs:restriction>
542
+ </xs:simpleType>
543
+ <xs:simpleType name="ExternalPurpose1Code">
544
+ <xs:restriction base="xs:string">
545
+ <xs:minLength value="1"/>
546
+ <xs:maxLength value="4"/>
547
+ </xs:restriction>
548
+ </xs:simpleType>
549
+ <xs:simpleType name="ExternalServiceLevel1Code">
550
+ <xs:restriction base="xs:string">
551
+ <xs:minLength value="1"/>
552
+ <xs:maxLength value="4"/>
553
+ </xs:restriction>
554
+ </xs:simpleType>
555
+ <xs:complexType name="FinancialIdentificationSchemeName1Choice">
556
+ <xs:sequence>
557
+ <xs:choice>
558
+ <xs:element name="Cd" type="ExternalFinancialInstitutionIdentification1Code"/>
559
+ <xs:element name="Prtry" type="Max35Text"/>
560
+ </xs:choice>
561
+ </xs:sequence>
562
+ </xs:complexType>
563
+ <xs:complexType name="FinancialInstitutionIdentification7">
564
+ <xs:sequence>
565
+ <xs:element name="BIC" type="BICIdentifier" minOccurs="0"/>
566
+ <xs:element name="ClrSysMmbId" type="ClearingSystemMemberIdentification2" minOccurs="0"/>
567
+ <xs:element name="Nm" type="Max140Text" minOccurs="0"/>
568
+ <xs:element name="PstlAdr" type="PostalAddress6" minOccurs="0"/>
569
+ <xs:element name="Othr" type="GenericFinancialIdentification1" minOccurs="0"/>
570
+ </xs:sequence>
571
+ </xs:complexType>
572
+ <!-- V01: added: definition of FI where only BIC or Clearing Id is allowed -->
573
+ <xs:complexType name="FinancialInstitutionIdentification7-CH_BicOrClrId">
574
+ <xs:sequence>
575
+ <xs:element name="BIC" type="BICIdentifier" minOccurs="0"/>
576
+ <xs:element name="ClrSysMmbId" type="ClearingSystemMemberIdentification2" minOccurs="0"/>
577
+ <!-- V01: unused
578
+ <xs:element name="Nm" type="Max140Text" minOccurs="0"/>
579
+ <xs:element name="PstlAdr" type="PostalAddress6" minOccurs="0"/>
580
+ <xs:element name="Othr" type="GenericFinancialIdentification1" minOccurs="0"/>
581
+ -->
582
+ </xs:sequence>
583
+ </xs:complexType>
584
+ <!-- V01: added: definition of FI where all elements are allowed (in a CH version) -->
585
+ <xs:complexType name="FinancialInstitutionIdentification7-CH">
586
+ <xs:sequence>
587
+ <xs:element name="BIC" type="BICIdentifier" minOccurs="0"/>
588
+ <xs:element name="ClrSysMmbId" type="ClearingSystemMemberIdentification2" minOccurs="0"/>
589
+ <xs:element name="Nm" type="Max70Text" minOccurs="0"/>
590
+ <xs:element name="PstlAdr" type="PostalAddress6-CH" minOccurs="0"/>
591
+ <xs:element name="Othr" type="GenericFinancialIdentification1-CH" minOccurs="0"/>
592
+ <!-- V01: unused
593
+ -->
594
+ </xs:sequence>
595
+ </xs:complexType>
596
+ <!-- V01: changed: only element ID allowed in CH version -->
597
+ <xs:complexType name="GenericAccountIdentification1-CH">
598
+ <xs:sequence>
599
+ <xs:element name="Id" type="Max34Text"/>
600
+ <!-- V01: unused
601
+ <xs:element name="SchmeNm" type="AccountSchemeName1Choice" minOccurs="0"/>
602
+ <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
603
+ -->
604
+ </xs:sequence>
605
+ </xs:complexType>
606
+ <xs:complexType name="GenericFinancialIdentification1">
607
+ <xs:sequence>
608
+ <xs:element name="Id" type="Max35Text"/>
609
+ <xs:element name="SchmeNm" type="FinancialIdentificationSchemeName1Choice" minOccurs="0"/>
610
+ <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
611
+ </xs:sequence>
612
+ </xs:complexType>
613
+ <!-- V01: added: only element Id allowed in CH version -->
614
+ <xs:complexType name="GenericFinancialIdentification1-CH">
615
+ <xs:sequence>
616
+ <xs:element name="Id" type="Max35Text"/>
617
+ <!-- V01: unused
618
+ <xs:element name="SchmeNm" type="FinancialIdentificationSchemeName1Choice" minOccurs="0"/>
619
+ <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
620
+ -->
621
+ </xs:sequence>
622
+ </xs:complexType>
623
+ <xs:complexType name="GenericOrganisationIdentification1">
624
+ <xs:sequence>
625
+ <xs:element name="Id" type="Max35Text"/>
626
+ <xs:element name="SchmeNm" type="OrganisationIdentificationSchemeName1Choice" minOccurs="0"/>
627
+ <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
628
+ </xs:sequence>
629
+ </xs:complexType>
630
+ <xs:complexType name="GenericPersonIdentification1">
631
+ <xs:sequence>
632
+ <xs:element name="Id" type="Max35Text"/>
633
+ <xs:element name="SchmeNm" type="PersonIdentificationSchemeName1Choice" minOccurs="0"/>
634
+ <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
635
+ </xs:sequence>
636
+ </xs:complexType>
637
+ <xs:complexType name="GroupHeader32-CH">
638
+ <xs:sequence>
639
+ <xs:element name="MsgId" type="Max35Text-Swift"/>
640
+ <xs:element name="CreDtTm" type="ISODateTime"/>
641
+ <xs:element name="NbOfTxs" type="Max15NumericText"/>
642
+ <xs:element name="CtrlSum" type="DecimalNumber" minOccurs="0"/>
643
+ <!-- V02: changed: include Contact Details for Software name and version -->
644
+ <xs:element name="InitgPty" type="PartyIdentification32-CH_NameAndId"/>
645
+ <xs:element name="FwdgAgt" type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
646
+ <!-- V01: unused: type Authorisation1Choice is not allowed or used in CH Version
647
+ <xs:element name="Authstn" type="Authorisation1Choice" minOccurs="0" maxOccurs="2"/>
648
+ -->
649
+ <!-- V01: changed: Initiating party only to contain name and id in CH version
650
+ <xs:element name="InitgPty" type="PartyIdentification32"/>
651
+ -->
652
+ </xs:sequence>
653
+ </xs:complexType>
654
+ <xs:simpleType name="IBAN2007Identifier">
655
+ <xs:restriction base="xs:string">
656
+ <xs:pattern value="[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"/>
657
+ </xs:restriction>
658
+ </xs:simpleType>
659
+ <xs:simpleType name="ISODate">
660
+ <xs:restriction base="xs:date"/>
661
+ </xs:simpleType>
662
+ <xs:simpleType name="ISODateTime">
663
+ <xs:restriction base="xs:dateTime"/>
664
+ </xs:simpleType>
665
+ <xs:simpleType name="Instruction3Code">
666
+ <xs:restriction base="xs:string">
667
+ <xs:enumeration value="CHQB"/>
668
+ <xs:enumeration value="HOLD"/>
669
+ <xs:enumeration value="PHOB"/>
670
+ <xs:enumeration value="TELB"/>
671
+ </xs:restriction>
672
+ </xs:simpleType>
673
+ <xs:complexType name="InstructionForCreditorAgent1">
674
+ <xs:sequence>
675
+ <xs:element name="Cd" type="Instruction3Code" minOccurs="0"/>
676
+ <xs:element name="InstrInf" type="Max140Text" minOccurs="0"/>
677
+ </xs:sequence>
678
+ </xs:complexType>
679
+ <xs:complexType name="LocalInstrument2Choice">
680
+ <xs:sequence>
681
+ <xs:choice>
682
+ <xs:element name="Cd" type="ExternalLocalInstrument1Code"/>
683
+ <xs:element name="Prtry" type="Max35Text"/>
684
+ </xs:choice>
685
+ </xs:sequence>
686
+ </xs:complexType>
687
+ <xs:simpleType name="Max10Text">
688
+ <xs:restriction base="BasicText-CH">
689
+ <xs:minLength value="1"/>
690
+ <xs:maxLength value="10"/>
691
+ </xs:restriction>
692
+ </xs:simpleType>
693
+ <!-- V01: unused
694
+ <xs:simpleType name="Max128Text">
695
+ <xs:restriction base="BasicText-CH">
696
+ <xs:minLength value="1"/>
697
+ <xs:maxLength value="128"/>
698
+ </xs:restriction>
699
+ </xs:simpleType>
700
+ -->
701
+ <xs:simpleType name="Max140Text">
702
+ <xs:restriction base="BasicText-CH">
703
+ <xs:minLength value="1"/>
704
+ <xs:maxLength value="140"/>
705
+ </xs:restriction>
706
+ </xs:simpleType>
707
+ <xs:simpleType name="Max15NumericText">
708
+ <xs:restriction base="xs:string">
709
+ <xs:pattern value="[0-9]{1,15}"/>
710
+ </xs:restriction>
711
+ </xs:simpleType>
712
+ <xs:simpleType name="Max16Text">
713
+ <xs:restriction base="BasicText-CH">
714
+ <xs:minLength value="1"/>
715
+ <xs:maxLength value="16"/>
716
+ </xs:restriction>
717
+ </xs:simpleType>
718
+ <xs:simpleType name="Max2048Text">
719
+ <xs:restriction base="BasicText-CH">
720
+ <xs:minLength value="1"/>
721
+ <xs:maxLength value="2048"/>
722
+ </xs:restriction>
723
+ </xs:simpleType>
724
+ <xs:simpleType name="Max34Text">
725
+ <xs:restriction base="BasicText-CH">
726
+ <xs:minLength value="1"/>
727
+ <xs:maxLength value="34"/>
728
+ </xs:restriction>
729
+ </xs:simpleType>
730
+ <xs:simpleType name="Max35Text">
731
+ <xs:restriction base="BasicText-CH">
732
+ <xs:minLength value="1"/>
733
+ <xs:maxLength value="35"/>
734
+ </xs:restriction>
735
+ </xs:simpleType>
736
+ <!-- V01: added: replacement type for Max35Text where only the Swift character set is allowed -->
737
+ <xs:simpleType name="Max35Text-Swift">
738
+ <xs:restriction base="BasicText-Swift">
739
+ <xs:minLength value="1"/>
740
+ <xs:maxLength value="35"/>
741
+ </xs:restriction>
742
+ </xs:simpleType>
743
+ <xs:simpleType name="Max4Text">
744
+ <xs:restriction base="BasicText-CH">
745
+ <xs:minLength value="1"/>
746
+ <xs:maxLength value="4"/>
747
+ </xs:restriction>
748
+ </xs:simpleType>
749
+ <xs:simpleType name="Max70Text">
750
+ <xs:restriction base="BasicText-CH">
751
+ <xs:minLength value="1"/>
752
+ <xs:maxLength value="70"/>
753
+ </xs:restriction>
754
+ </xs:simpleType>
755
+ <!-- V01: unused
756
+ <xs:complexType name="NameAndAddress10">
757
+ <xs:sequence>
758
+ <xs:element name="Nm" type="Max140Text"/>
759
+ <xs:element name="Adr" type="PostalAddress6"/>
760
+ </xs:sequence>
761
+ </xs:complexType>
762
+ -->
763
+ <!-- V01: added: CH-Version: unused (prepared for later usage)
764
+ <xs:complexType name="NameAndAddress10-CH">
765
+ <xs:sequence>
766
+ <xs:element name="Nm" type="Max70Text"/>
767
+ <xs:element name="Adr" type="PostalAddress6-CH"/>
768
+ </xs:sequence>
769
+ </xs:complexType>
770
+ -->
771
+ <xs:simpleType name="NamePrefix1Code">
772
+ <xs:restriction base="xs:string">
773
+ <xs:enumeration value="DOCT"/>
774
+ <xs:enumeration value="MIST"/>
775
+ <xs:enumeration value="MISS"/>
776
+ <xs:enumeration value="MADM"/>
777
+ </xs:restriction>
778
+ </xs:simpleType>
779
+ <!-- V01: unused
780
+ <xs:simpleType name="Number">
781
+ <xs:restriction base="xs:decimal">
782
+ <xs:fractionDigits value="0"/>
783
+ <xs:totalDigits value="18"/>
784
+ </xs:restriction>
785
+ </xs:simpleType>
786
+ -->
787
+ <xs:complexType name="OrganisationIdentification4">
788
+ <xs:sequence>
789
+ <xs:element name="BICOrBEI" type="AnyBICIdentifier" minOccurs="0"/>
790
+ <xs:element name="Othr" type="GenericOrganisationIdentification1" minOccurs="0" maxOccurs="unbounded"/>
791
+ </xs:sequence>
792
+ </xs:complexType>
793
+ <!-- V01: added: only one occurance of element other allowed in CH version -->
794
+ <xs:complexType name="OrganisationIdentification4-CH">
795
+ <xs:sequence>
796
+ <xs:element name="BICOrBEI" type="AnyBICIdentifier" minOccurs="0"/>
797
+ <xs:element name="Othr" type="GenericOrganisationIdentification1" minOccurs="0"/>
798
+ </xs:sequence>
799
+ </xs:complexType>
800
+ <xs:complexType name="OrganisationIdentificationSchemeName1Choice">
801
+ <xs:sequence>
802
+ <xs:choice>
803
+ <xs:element name="Cd" type="ExternalOrganisationIdentification1Code"/>
804
+ <xs:element name="Prtry" type="Max35Text"/>
805
+ </xs:choice>
806
+ </xs:sequence>
807
+ </xs:complexType>
808
+ <xs:complexType name="Party6Choice">
809
+ <xs:sequence>
810
+ <xs:choice>
811
+ <xs:element name="OrgId" type="OrganisationIdentification4"/>
812
+ <xs:element name="PrvtId" type="PersonIdentification5"/>
813
+ </xs:choice>
814
+ </xs:sequence>
815
+ </xs:complexType>
816
+ <!-- V01: added: -->
817
+ <xs:complexType name="Party6Choice-CH">
818
+ <xs:sequence>
819
+ <xs:choice>
820
+ <xs:element name="OrgId" type="OrganisationIdentification4-CH"/>
821
+ <xs:element name="PrvtId" type="PersonIdentification5-CH"/>
822
+ </xs:choice>
823
+ </xs:sequence>
824
+ </xs:complexType>
825
+ <xs:complexType name="PartyIdentification32">
826
+ <xs:sequence>
827
+ <xs:element name="Nm" type="Max140Text" minOccurs="0"/>
828
+ <xs:element name="PstlAdr" type="PostalAddress6" minOccurs="0"/>
829
+ <xs:element name="Id" type="Party6Choice" minOccurs="0"/>
830
+ <xs:element name="CtryOfRes" type="CountryCode" minOccurs="0"/>
831
+ <xs:element name="CtctDtls" type="ContactDetails2" minOccurs="0"/>
832
+ </xs:sequence>
833
+ </xs:complexType>
834
+ <!-- V01: added: replacement type for PartyIdentification8 where only elements Name and Id may be used -->
835
+ <xs:complexType name="PartyIdentification32-CH_NameAndId">
836
+ <xs:sequence>
837
+ <xs:element name="Nm" type="Max70Text" minOccurs="0"/>
838
+ <xs:element name="Id" type="Party6Choice-CH" minOccurs="0"/>
839
+ <!-- V02: added: Contact Details for Software name and version -->
840
+ <xs:element name="CtctDtls" type="ContactDetails2-CH" minOccurs="0"/>
841
+ </xs:sequence>
842
+ </xs:complexType>
843
+ <!-- V01: added -->
844
+ <xs:complexType name="PartyIdentification32-CH">
845
+ <xs:sequence>
846
+ <xs:element name="Nm" type="Max70Text" minOccurs="0"/>
847
+ <xs:element name="PstlAdr" type="PostalAddress6-CH" minOccurs="0"/>
848
+ <xs:element name="Id" type="Party6Choice-CH" minOccurs="0"/>
849
+ <!-- changed -->
850
+ <!-- unused
851
+ <xs:element name="CtryOfRes" type="CountryCode" minOccurs="0"/>
852
+ -->
853
+ </xs:sequence>
854
+ </xs:complexType>
855
+ <!-- V02: changed: element Name mandatory -->
856
+ <xs:complexType name="PartyIdentification32-CH_Name">
857
+ <xs:sequence>
858
+ <xs:element name="Nm" type="Max70Text"/>
859
+ <xs:element name="PstlAdr" type="PostalAddress6-CH" minOccurs="0"/>
860
+ <xs:element name="Id" type="Party6Choice-CH" minOccurs="0"/>
861
+ <!-- changed -->
862
+ <!-- unused
863
+ <xs:element name="CtryOfRes" type="CountryCode" minOccurs="0"/>
864
+ -->
865
+ </xs:sequence>
866
+ </xs:complexType>
867
+ <!--
868
+ <xs:complexType name="PartyIdentification32-CH_Debtor">
869
+ <xs:sequence>
870
+ <xs:element name="Nm" type="Max70Text" minOccurs="0"/>
871
+ <xs:element name="PstlAdr" type="PostalAddress6-CH" minOccurs="0"/>
872
+ <xs:element name="Id" type="Party6Choice-CH" minOccurs="0"/>
873
+
874
+ <xs:element name="CtryOfRes" type="CountryCode" minOccurs="0"/>
875
+ <xs:element name="CtctDtls" type="ContactDetails2" minOccurs="0"/>
876
+
877
+ </xs:sequence>
878
+ </xs:complexType>
879
+
880
+ <xs:complexType name="PartyIdentification32-CH_Creditor">
881
+ <xs:sequence>
882
+ <xs:element name="Nm" type="Max70Text" minOccurs="0"/>
883
+ <xs:element name="PstlAdr" type="PostalAddress6-CH" minOccurs="0"/>
884
+ <xs:element name="Id" type="Party6Choice-CH" minOccurs="0"/>
885
+
886
+ <xs:element name="CtryOfRes" type="CountryCode" minOccurs="0"/>
887
+ <xs:element name="CtctDtls" type="ContactDetails2" minOccurs="0"/>
888
+
889
+ </xs:sequence>
890
+ </xs:complexType>
891
+ -->
892
+ <xs:complexType name="PaymentIdentification1">
893
+ <xs:sequence>
894
+ <xs:element name="InstrId" type="Max35Text-Swift" minOccurs="0"/>
895
+ <xs:element name="EndToEndId" type="Max35Text-Swift"/>
896
+ </xs:sequence>
897
+ </xs:complexType>
898
+ <!-- V01: changed: CH-version changes applied -->
899
+ <xs:complexType name="PaymentInstructionInformation3-CH">
900
+ <xs:sequence>
901
+ <xs:element name="PmtInfId" type="Max35Text-Swift"/>
902
+ <xs:element name="PmtMtd" type="PaymentMethod3Code"/>
903
+ <xs:element name="BtchBookg" type="BatchBookingIndicator" minOccurs="0"/>
904
+ <xs:element name="NbOfTxs" type="Max15NumericText" minOccurs="0"/>
905
+ <xs:element name="CtrlSum" type="DecimalNumber" minOccurs="0"/>
906
+ <xs:element name="PmtTpInf" type="PaymentTypeInformation19-CH" minOccurs="0"/>
907
+ <xs:element name="ReqdExctnDt" type="ISODate"/>
908
+ <xs:element name="Dbtr" type="PartyIdentification32-CH"/>
909
+ <xs:element name="DbtrAcct" type="CashAccount16-CH_IdTpCcy"/>
910
+ <xs:element name="DbtrAgt" type="BranchAndFinancialInstitutionIdentification4-CH_BicOrClrId"/>
911
+ <xs:element name="UltmtDbtr" type="PartyIdentification32-CH" minOccurs="0"/>
912
+ <xs:element name="ChrgBr" type="ChargeBearerType1Code" minOccurs="0"/>
913
+ <xs:element name="ChrgsAcct" type="CashAccount16-CH_IdAndCurrency" minOccurs="0"/>
914
+ <xs:element name="CdtTrfTxInf" type="CreditTransferTransactionInformation10-CH" maxOccurs="unbounded"/>
915
+ <!-- V01: unused
916
+ <xs:element name="PoolgAdjstmntDt" type="ISODate" minOccurs="0"/>
917
+ <xs:element name="DbtrAgtAcct" type="CashAccount16" minOccurs="0"/>
918
+ <xs:element name="ChrgsAcctAgt" type="BranchAndFinancialInstitutionIdentification4" minOccurs="0"/>
919
+ -->
920
+ </xs:sequence>
921
+ </xs:complexType>
922
+ <xs:simpleType name="PaymentMethod3Code">
923
+ <xs:restriction base="xs:string">
924
+ <xs:enumeration value="CHK"/>
925
+ <xs:enumeration value="TRF"/>
926
+ <xs:enumeration value="TRA"/>
927
+ </xs:restriction>
928
+ </xs:simpleType>
929
+ <!-- V01: changed: CH version changes applied -->
930
+ <xs:complexType name="PaymentTypeInformation19-CH">
931
+ <xs:sequence>
932
+ <xs:element name="InstrPrty" type="Priority2Code" minOccurs="0"/>
933
+ <xs:element name="SvcLvl" type="ServiceLevel8Choice" minOccurs="0"/>
934
+ <xs:element name="LclInstrm" type="LocalInstrument2Choice" minOccurs="0"/>
935
+ <xs:element name="CtgyPurp" type="CategoryPurpose1-CH_Code" minOccurs="0"/>
936
+ </xs:sequence>
937
+ </xs:complexType>
938
+ <!-- V01: unused
939
+ <xs:simpleType name="PercentageRate">
940
+ <xs:restriction base="xs:decimal">
941
+ <xs:fractionDigits value="10"/>
942
+ <xs:totalDigits value="11"/>
943
+ </xs:restriction>
944
+ </xs:simpleType>
945
+ -->
946
+ <xs:complexType name="PersonIdentification5">
947
+ <xs:sequence>
948
+ <xs:element name="DtAndPlcOfBirth" type="DateAndPlaceOfBirth" minOccurs="0"/>
949
+ <xs:element name="Othr" type="GenericPersonIdentification1" minOccurs="0" maxOccurs="unbounded"/>
950
+ </xs:sequence>
951
+ </xs:complexType>
952
+ <!-- V01: changed: only one occurance of element Othr allowed in CH version -->
953
+ <xs:complexType name="PersonIdentification5-CH">
954
+ <xs:sequence>
955
+ <xs:element name="DtAndPlcOfBirth" type="DateAndPlaceOfBirth" minOccurs="0"/>
956
+ <xs:element name="Othr" type="GenericPersonIdentification1" minOccurs="0"/>
957
+ </xs:sequence>
958
+ </xs:complexType>
959
+ <xs:complexType name="PersonIdentificationSchemeName1Choice">
960
+ <xs:sequence>
961
+ <xs:choice>
962
+ <xs:element name="Cd" type="ExternalPersonIdentification1Code"/>
963
+ <xs:element name="Prtry" type="Max35Text"/>
964
+ </xs:choice>
965
+ </xs:sequence>
966
+ </xs:complexType>
967
+ <xs:simpleType name="PhoneNumber">
968
+ <xs:restriction base="xs:string">
969
+ <xs:pattern value="\+[0-9]{1,3}-[0-9()+\-]{1,30}"/>
970
+ </xs:restriction>
971
+ </xs:simpleType>
972
+ <xs:complexType name="PostalAddress6">
973
+ <xs:sequence>
974
+ <xs:element name="AdrTp" type="AddressType2Code" minOccurs="0"/>
975
+ <xs:element name="Dept" type="Max70Text" minOccurs="0"/>
976
+ <xs:element name="SubDept" type="Max70Text" minOccurs="0"/>
977
+ <xs:element name="StrtNm" type="Max70Text" minOccurs="0"/>
978
+ <xs:element name="BldgNb" type="Max16Text" minOccurs="0"/>
979
+ <xs:element name="PstCd" type="Max16Text" minOccurs="0"/>
980
+ <xs:element name="TwnNm" type="Max35Text" minOccurs="0"/>
981
+ <xs:element name="CtrySubDvsn" type="Max35Text" minOccurs="0"/>
982
+ <xs:element name="Ctry" type="CountryCode" minOccurs="0"/>
983
+ <xs:element name="AdrLine" type="Max70Text" minOccurs="0" maxOccurs="7"/>
984
+ </xs:sequence>
985
+ </xs:complexType>
986
+ <!-- V01: added: only 2 lines of address lines allowed in CH version -->
987
+ <xs:complexType name="PostalAddress6-CH">
988
+ <xs:sequence>
989
+ <xs:element name="AdrTp" type="AddressType2Code" minOccurs="0"/>
990
+ <xs:element name="Dept" type="Max70Text" minOccurs="0"/>
991
+ <xs:element name="SubDept" type="Max70Text" minOccurs="0"/>
992
+ <xs:element name="StrtNm" type="Max70Text" minOccurs="0"/>
993
+ <xs:element name="BldgNb" type="Max16Text" minOccurs="0"/>
994
+ <xs:element name="PstCd" type="Max16Text" minOccurs="0"/>
995
+ <xs:element name="TwnNm" type="Max35Text" minOccurs="0"/>
996
+ <xs:element name="CtrySubDvsn" type="Max35Text" minOccurs="0"/>
997
+ <xs:element name="Ctry" type="CountryCode" minOccurs="0"/>
998
+ <xs:element name="AdrLine" type="Max70Text" minOccurs="0" maxOccurs="2"/>
999
+ <!-- V01: changed: max. 2 occurence -->
1000
+ </xs:sequence>
1001
+ </xs:complexType>
1002
+ <xs:simpleType name="Priority2Code">
1003
+ <xs:restriction base="xs:string">
1004
+ <xs:enumeration value="HIGH"/>
1005
+ <xs:enumeration value="NORM"/>
1006
+ </xs:restriction>
1007
+ </xs:simpleType>
1008
+ <!-- V01: changed: CH-version changes applied -->
1009
+ <xs:complexType name="Purpose2-CH_Code">
1010
+ <xs:sequence>
1011
+ <xs:element name="Cd" type="ExternalPurpose1Code"/>
1012
+ </xs:sequence>
1013
+ </xs:complexType>
1014
+ <xs:complexType name="ReferredDocumentInformation3">
1015
+ <xs:sequence>
1016
+ <xs:element name="Tp" type="ReferredDocumentType2" minOccurs="0"/>
1017
+ <xs:element name="Nb" type="Max35Text" minOccurs="0"/>
1018
+ <xs:element name="RltdDt" type="ISODate" minOccurs="0"/>
1019
+ </xs:sequence>
1020
+ </xs:complexType>
1021
+ <xs:complexType name="ReferredDocumentType1Choice">
1022
+ <xs:sequence>
1023
+ <xs:choice>
1024
+ <xs:element name="Cd" type="DocumentType5Code"/>
1025
+ <xs:element name="Prtry" type="Max35Text"/>
1026
+ </xs:choice>
1027
+ </xs:sequence>
1028
+ </xs:complexType>
1029
+ <xs:complexType name="ReferredDocumentType2">
1030
+ <xs:sequence>
1031
+ <xs:element name="CdOrPrtry" type="ReferredDocumentType1Choice"/>
1032
+ <xs:element name="Issr" type="Max35Text" minOccurs="0"/>
1033
+ </xs:sequence>
1034
+ </xs:complexType>
1035
+ <xs:complexType name="RegulatoryAuthority2">
1036
+ <xs:sequence>
1037
+ <xs:element name="Nm" type="Max140Text" minOccurs="0"/>
1038
+ <xs:element name="Ctry" type="CountryCode" minOccurs="0"/>
1039
+ </xs:sequence>
1040
+ </xs:complexType>
1041
+ <xs:complexType name="RegulatoryReporting3">
1042
+ <xs:sequence>
1043
+ <xs:element name="DbtCdtRptgInd" type="RegulatoryReportingType1Code" minOccurs="0"/>
1044
+ <xs:element name="Authrty" type="RegulatoryAuthority2" minOccurs="0"/>
1045
+ <xs:element name="Dtls" type="StructuredRegulatoryReporting3" minOccurs="0" maxOccurs="unbounded"/>
1046
+ </xs:sequence>
1047
+ </xs:complexType>
1048
+ <xs:simpleType name="RegulatoryReportingType1Code">
1049
+ <xs:restriction base="xs:string">
1050
+ <xs:enumeration value="CRED"/>
1051
+ <xs:enumeration value="DEBT"/>
1052
+ <xs:enumeration value="BOTH"/>
1053
+ </xs:restriction>
1054
+ </xs:simpleType>
1055
+ <xs:complexType name="RemittanceAmount1">
1056
+ <xs:sequence>
1057
+ <xs:element name="DuePyblAmt" type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
1058
+ <xs:element name="DscntApldAmt" type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
1059
+ <xs:element name="CdtNoteAmt" type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
1060
+ <xs:element name="TaxAmt" type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
1061
+ <xs:element name="AdjstmntAmtAndRsn" type="DocumentAdjustment1" minOccurs="0" maxOccurs="unbounded"/>
1062
+ <xs:element name="RmtdAmt" type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
1063
+ </xs:sequence>
1064
+ </xs:complexType>
1065
+ <xs:complexType name="RemittanceInformation5-CH">
1066
+ <xs:sequence>
1067
+ <xs:element name="Ustrd" type="Max140Text" minOccurs="0"/>
1068
+ <xs:element name="Strd" type="StructuredRemittanceInformation7" minOccurs="0"/>
1069
+ </xs:sequence>
1070
+ </xs:complexType>
1071
+ <!-- V01: unused
1072
+ <xs:complexType name="RemittanceLocation2">
1073
+ <xs:sequence>
1074
+ <xs:element name="RmtId" type="Max35Text" minOccurs="0"/>
1075
+ <xs:element name="RmtLctnMtd" type="RemittanceLocationMethod2Code" minOccurs="0"/>
1076
+ <xs:element name="RmtLctnElctrncAdr" type="Max2048Text" minOccurs="0"/>
1077
+ <xs:element name="RmtLctnPstlAdr" type="NameAndAddress10" minOccurs="0"/>
1078
+ </xs:sequence>
1079
+ </xs:complexType>
1080
+ <xs:simpleType name="RemittanceLocationMethod2Code">
1081
+ <xs:restriction base="xs:string">
1082
+ <xs:enumeration value="FAXI"/>
1083
+ <xs:enumeration value="EDIC"/>
1084
+ <xs:enumeration value="URID"/>
1085
+ <xs:enumeration value="EMAL"/>
1086
+ <xs:enumeration value="POST"/>
1087
+ <xs:enumeration value="SMSM"/>
1088
+ </xs:restriction>
1089
+ </xs:simpleType>
1090
+ -->
1091
+ <xs:complexType name="ServiceLevel8Choice">
1092
+ <xs:sequence>
1093
+ <xs:choice>
1094
+ <xs:element name="Cd" type="ExternalServiceLevel1Code"/>
1095
+ <xs:element name="Prtry" type="Max35Text"/>
1096
+ </xs:choice>
1097
+ </xs:sequence>
1098
+ </xs:complexType>
1099
+ <xs:complexType name="StructuredRegulatoryReporting3">
1100
+ <xs:sequence>
1101
+ <xs:element name="Tp" type="Max35Text" minOccurs="0"/>
1102
+ <xs:element name="Dt" type="ISODate" minOccurs="0"/>
1103
+ <xs:element name="Ctry" type="CountryCode" minOccurs="0"/>
1104
+ <xs:element name="Cd" type="Max10Text" minOccurs="0"/>
1105
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
1106
+ <xs:element name="Inf" type="Max35Text" minOccurs="0" maxOccurs="unbounded"/>
1107
+ </xs:sequence>
1108
+ </xs:complexType>
1109
+ <xs:complexType name="StructuredRemittanceInformation7">
1110
+ <xs:sequence>
1111
+ <xs:element name="RfrdDocInf" type="ReferredDocumentInformation3" minOccurs="0" maxOccurs="unbounded"/>
1112
+ <xs:element name="RfrdDocAmt" type="RemittanceAmount1" minOccurs="0"/>
1113
+ <xs:element name="CdtrRefInf" type="CreditorReferenceInformation2" minOccurs="0"/>
1114
+ <xs:element name="Invcr" type="PartyIdentification32" minOccurs="0"/>
1115
+ <xs:element name="Invcee" type="PartyIdentification32" minOccurs="0"/>
1116
+ <xs:element name="AddtlRmtInf" type="Max140Text" minOccurs="0" maxOccurs="3"/>
1117
+ </xs:sequence>
1118
+ </xs:complexType>
1119
+ <!-- V01: unused
1120
+ <xs:complexType name="TaxAmount1">
1121
+ <xs:sequence>
1122
+ <xs:element name="Rate" type="PercentageRate" minOccurs="0"/>
1123
+ <xs:element name="TaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
1124
+ <xs:element name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
1125
+ <xs:element name="Dtls" type="TaxRecordDetails1" minOccurs="0" maxOccurs="unbounded"/>
1126
+ </xs:sequence>
1127
+ </xs:complexType>
1128
+ <xs:complexType name="TaxAuthorisation1">
1129
+ <xs:sequence>
1130
+ <xs:element name="Titl" type="Max35Text" minOccurs="0"/>
1131
+ <xs:element name="Nm" type="Max140Text" minOccurs="0"/>
1132
+ </xs:sequence>
1133
+ </xs:complexType>
1134
+ <xs:complexType name="TaxInformation3">
1135
+ <xs:sequence>
1136
+ <xs:element name="Cdtr" type="TaxParty1" minOccurs="0"/>
1137
+ <xs:element name="Dbtr" type="TaxParty2" minOccurs="0"/>
1138
+ <xs:element name="AdmstnZn" type="Max35Text" minOccurs="0"/>
1139
+ <xs:element name="RefNb" type="Max140Text" minOccurs="0"/>
1140
+ <xs:element name="Mtd" type="Max35Text" minOccurs="0"/>
1141
+ <xs:element name="TtlTaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
1142
+ <xs:element name="TtlTaxAmt" type="ActiveOrHistoricCurrencyAndAmount" minOccurs="0"/>
1143
+ <xs:element name="Dt" type="ISODate" minOccurs="0"/>
1144
+ <xs:element name="SeqNb" type="Number" minOccurs="0"/>
1145
+ <xs:element name="Rcrd" type="TaxRecord1" minOccurs="0" maxOccurs="unbounded"/>
1146
+ </xs:sequence>
1147
+ </xs:complexType>
1148
+ <xs:complexType name="TaxParty1">
1149
+ <xs:sequence>
1150
+ <xs:element name="TaxId" type="Max35Text" minOccurs="0"/>
1151
+ <xs:element name="RegnId" type="Max35Text" minOccurs="0"/>
1152
+ <xs:element name="TaxTp" type="Max35Text" minOccurs="0"/>
1153
+ </xs:sequence>
1154
+ </xs:complexType>
1155
+ <xs:complexType name="TaxParty2">
1156
+ <xs:sequence>
1157
+ <xs:element name="TaxId" type="Max35Text" minOccurs="0"/>
1158
+ <xs:element name="RegnId" type="Max35Text" minOccurs="0"/>
1159
+ <xs:element name="TaxTp" type="Max35Text" minOccurs="0"/>
1160
+ <xs:element name="Authstn" type="TaxAuthorisation1" minOccurs="0"/>
1161
+ </xs:sequence>
1162
+ </xs:complexType>
1163
+ <xs:complexType name="TaxPeriod1">
1164
+ <xs:sequence>
1165
+ <xs:element name="Yr" type="ISODate" minOccurs="0"/>
1166
+ <xs:element name="Tp" type="TaxRecordPeriod1Code" minOccurs="0"/>
1167
+ <xs:element name="FrToDt" type="DatePeriodDetails" minOccurs="0"/>
1168
+ </xs:sequence>
1169
+ </xs:complexType>
1170
+ <xs:complexType name="TaxRecord1">
1171
+ <xs:sequence>
1172
+ <xs:element name="Tp" type="Max35Text" minOccurs="0"/>
1173
+ <xs:element name="Ctgy" type="Max35Text" minOccurs="0"/>
1174
+ <xs:element name="CtgyDtls" type="Max35Text" minOccurs="0"/>
1175
+ <xs:element name="DbtrSts" type="Max35Text" minOccurs="0"/>
1176
+ <xs:element name="CertId" type="Max35Text" minOccurs="0"/>
1177
+ <xs:element name="FrmsCd" type="Max35Text" minOccurs="0"/>
1178
+ <xs:element name="Prd" type="TaxPeriod1" minOccurs="0"/>
1179
+ <xs:element name="TaxAmt" type="TaxAmount1" minOccurs="0"/>
1180
+ <xs:element name="AddtlInf" type="Max140Text" minOccurs="0"/>
1181
+ </xs:sequence>
1182
+ </xs:complexType>
1183
+ <xs:complexType name="TaxRecordDetails1">
1184
+ <xs:sequence>
1185
+ <xs:element name="Prd" type="TaxPeriod1" minOccurs="0"/>
1186
+ <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1187
+ </xs:sequence>
1188
+ </xs:complexType>
1189
+ <xs:simpleType name="TaxRecordPeriod1Code">
1190
+ <xs:restriction base="xs:string">
1191
+ <xs:enumeration value="MM01"/>
1192
+ <xs:enumeration value="MM02"/>
1193
+ <xs:enumeration value="MM03"/>
1194
+ <xs:enumeration value="MM04"/>
1195
+ <xs:enumeration value="MM05"/>
1196
+ <xs:enumeration value="MM06"/>
1197
+ <xs:enumeration value="MM07"/>
1198
+ <xs:enumeration value="MM08"/>
1199
+ <xs:enumeration value="MM09"/>
1200
+ <xs:enumeration value="MM10"/>
1201
+ <xs:enumeration value="MM11"/>
1202
+ <xs:enumeration value="MM12"/>
1203
+ <xs:enumeration value="QTR1"/>
1204
+ <xs:enumeration value="QTR2"/>
1205
+ <xs:enumeration value="QTR3"/>
1206
+ <xs:enumeration value="QTR4"/>
1207
+ <xs:enumeration value="HLF1"/>
1208
+ <xs:enumeration value="HLF2"/>
1209
+ </xs:restriction>
1210
+ </xs:simpleType>
1211
+ -->
1212
+ </xs:schema>