epics 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +6 -0
  5. data/CONTRIBUTING.md +5 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +165 -0
  8. data/README.md +197 -0
  9. data/Rakefile +7 -0
  10. data/epics.gemspec +50 -0
  11. data/lib/epics.rb +35 -0
  12. data/lib/epics/cct.rb +42 -0
  13. data/lib/epics/cd1.rb +42 -0
  14. data/lib/epics/cdd.rb +42 -0
  15. data/lib/epics/client.rb +216 -0
  16. data/lib/epics/error.rb +324 -0
  17. data/lib/epics/generic_request.rb +99 -0
  18. data/lib/epics/generic_upload_request.rb +89 -0
  19. data/lib/epics/haa.rb +40 -0
  20. data/lib/epics/hia.rb +78 -0
  21. data/lib/epics/hpb.rb +29 -0
  22. data/lib/epics/hpd.rb +40 -0
  23. data/lib/epics/htd.rb +40 -0
  24. data/lib/epics/ini.rb +69 -0
  25. data/lib/epics/key.rb +79 -0
  26. data/lib/epics/mgf.rb +41 -0
  27. data/lib/epics/middleware/parse_ebics.rb +15 -0
  28. data/lib/epics/middleware/xmlsig.rb +18 -0
  29. data/lib/epics/ptk.rb +52 -0
  30. data/lib/epics/response.rb +93 -0
  31. data/lib/epics/signer.rb +40 -0
  32. data/lib/epics/sta.rb +52 -0
  33. data/lib/epics/version.rb +3 -0
  34. data/lib/letter/ini.erb +231 -0
  35. data/spec/client_spec.rb +98 -0
  36. data/spec/fixtures/a006.pem +28 -0
  37. data/spec/fixtures/bank_e.pem +6 -0
  38. data/spec/fixtures/e002.pem +28 -0
  39. data/spec/fixtures/x002.pem +28 -0
  40. data/spec/fixtures/xml/cd1.xml +87 -0
  41. data/spec/fixtures/xml/ebics_business_nok.xml +21 -0
  42. data/spec/fixtures/xml/ebics_technical_nok.xml +12 -0
  43. data/spec/fixtures/xml/hia.xml +2 -0
  44. data/spec/fixtures/xml/hia_request_order_data.xml +2 -0
  45. data/spec/fixtures/xml/hpb.xml +34 -0
  46. data/spec/fixtures/xml/hpb_request.xml +34 -0
  47. data/spec/fixtures/xml/hpb_response.xml +21 -0
  48. data/spec/fixtures/xml/hpb_response_order.xml +22 -0
  49. data/spec/fixtures/xml/htd_order_data.xml +153 -0
  50. data/spec/fixtures/xml/ini.xml +2 -0
  51. data/spec/fixtures/xml/signature_pub_key_order_data.xml +2 -0
  52. data/spec/fixtures/xml/upload_init_response.xml +31 -0
  53. data/spec/hpb_spec.rb +15 -0
  54. data/spec/key_spec.rb +35 -0
  55. data/spec/mgf_spec.rb +36 -0
  56. data/spec/middleware/parse_ebics_spec.rb +18 -0
  57. data/spec/orders/cct_spec.rb +17 -0
  58. data/spec/orders/cd1_spec.rb +17 -0
  59. data/spec/orders/cdd_spec.rb +17 -0
  60. data/spec/orders/haa_spec.rb +11 -0
  61. data/spec/orders/hia_spec.rb +34 -0
  62. data/spec/orders/hpb_spec.rb +11 -0
  63. data/spec/orders/hpd_spec.rb +11 -0
  64. data/spec/orders/htd_spec.rb +11 -0
  65. data/spec/orders/ini_spec.rb +36 -0
  66. data/spec/orders/ptk_spec.rb +11 -0
  67. data/spec/orders/sta_spec.rb +11 -0
  68. data/spec/response_spec.rb +34 -0
  69. data/spec/signer_spec.rb +34 -0
  70. data/spec/spec_helper.rb +43 -0
  71. data/spec/support/ebics_matcher.rb +22 -0
  72. data/spec/xsd/ebics_H004.xsd +11 -0
  73. data/spec/xsd/ebics_hev.xsd +135 -0
  74. data/spec/xsd/ebics_keymgmt_request_H004.xsd +543 -0
  75. data/spec/xsd/ebics_keymgmt_response_H004.xsd +137 -0
  76. data/spec/xsd/ebics_orders_H004.xsd +1892 -0
  77. data/spec/xsd/ebics_request_H004.xsd +355 -0
  78. data/spec/xsd/ebics_response_H004.xsd +166 -0
  79. data/spec/xsd/ebics_signature.xsd +217 -0
  80. data/spec/xsd/ebics_types_H004.xsd +2426 -0
  81. data/spec/xsd/xmldsig-core-schema.xsd +318 -0
  82. metadata +319 -0
@@ -0,0 +1,36 @@
1
+ RSpec.describe Epics::INI do
2
+
3
+ let(:client) { Epics::Client.new( File.open(File.join( File.dirname(__FILE__), '..', 'fixtures', 'SIZBN001.key')), 'secret' , 'https://194.180.18.30/ebicsweb/ebicsweb', 'SIZBN001', 'EBIX', 'EBICS') }
4
+
5
+ before { allow(subject).to receive(:timestamp) { "2014-10-10T11:16:00Z" } }
6
+
7
+ subject { described_class.new(client) }
8
+
9
+ describe '#to_xml' do
10
+ specify { expect(subject.to_xml).to be_a_valid_ebics_doc }
11
+
12
+ describe 'validate against fixture' do
13
+
14
+ let(:signature_order_data) { Nokogiri::XML(File.read(File.join( File.dirname(__FILE__), '..', 'fixtures', 'xml', 'ini.xml'))) }
15
+
16
+ it "will match exactly" do
17
+ expect(Nokogiri::XML(subject.to_xml)).to be_equivalent_to(signature_order_data)
18
+ end
19
+ end
20
+ end
21
+
22
+ describe '#key_signature' do
23
+
24
+ specify { expect(subject.key_signature).to be_a_valid_ebics_doc }
25
+
26
+ describe 'validate against fixture' do
27
+
28
+ let(:signature_order_data) { Nokogiri::XML(File.read(File.join( File.dirname(__FILE__), '..', 'fixtures', 'xml', 'signature_pub_key_order_data.xml'))) }
29
+
30
+ it "will match exactly" do
31
+ expect(Nokogiri::XML(subject.key_signature)).to be_equivalent_to(signature_order_data)
32
+ end
33
+ end
34
+ end
35
+
36
+ end
@@ -0,0 +1,11 @@
1
+ RSpec.describe Epics::PTK do
2
+
3
+ let(:client) { Epics::Client.new( File.open(File.join( File.dirname(__FILE__), '..', 'fixtures', 'SIZBN001.key')), 'secret' , 'https://194.180.18.30/ebicsweb/ebicsweb', 'SIZBN001', 'EBIX', 'EBICS') }
4
+
5
+ subject { described_class.new(client, "2014-09-01", "2014-09-30") }
6
+
7
+ describe '#to_xml' do
8
+ specify { expect(subject.to_xml).to be_a_valid_ebics_doc }
9
+ end
10
+
11
+ end
@@ -0,0 +1,11 @@
1
+ RSpec.describe Epics::STA do
2
+
3
+ let(:client) { Epics::Client.new( File.open(File.join( File.dirname(__FILE__), '..', 'fixtures', 'SIZBN001.key')), 'secret' , 'https://194.180.18.30/ebicsweb/ebicsweb', 'SIZBN001', 'EBIX', 'EBICS') }
4
+
5
+ subject { described_class.new(client, "2014-09-01", "2014-09-30") }
6
+
7
+ describe '#to_xml' do
8
+ specify { expect(subject.to_xml).to be_a_valid_ebics_doc }
9
+ end
10
+
11
+ end
@@ -0,0 +1,34 @@
1
+ RSpec.describe Epics::Response do
2
+ let(:client) { Epics::Client.new( File.open(File.join( File.dirname(__FILE__), 'fixtures', 'SIZBN001.key')), 'secret' , 'https://194.180.18.30/ebicsweb/ebicsweb', 'SIZBN001', 'EBIX', 'EBICS') }
3
+ subject { described_class.new( client, File.read('spec/fixtures/xml/upload_init_response.xml') ) }
4
+
5
+ describe '#digest_valid?' do
6
+ it 'checks if //ds:DigestValue matches the calculated digest' do
7
+ expect(subject.digest_valid?).to be(true)
8
+ end
9
+ end
10
+
11
+ describe '#signature_valid?' do
12
+ it 'checks if the signature value can be verified with the bank key' do
13
+ expect(subject.signature_valid?).to be(true)
14
+ end
15
+ end
16
+
17
+ describe '#public_digest_valid?' do
18
+ subject { described_class.new( client, File.read('spec/fixtures/xml/hpb_response.xml') ) }
19
+
20
+ it "checks if //xmlns:EncryptionPubKeyDigest matches the user encryption key" do
21
+ expect(subject.public_digest_valid?).to be(true)
22
+ end
23
+ end
24
+
25
+ describe 'order_data' do
26
+ let(:order_data) { File.read('spec/fixtures/xml/hpb_response_order.xml') }
27
+ subject { described_class.new( client, File.read('spec/fixtures/xml/hpb_response.xml') ) }
28
+
29
+ it "retrieves the decrypted order data" do
30
+ expect(subject.order_data).to eq(order_data)
31
+ end
32
+ end
33
+
34
+ end
@@ -0,0 +1,34 @@
1
+ RSpec.describe Epics::Signer do
2
+ let(:client) { Epics::Client.new( File.open(File.join( File.dirname(__FILE__), 'fixtures', 'SIZBN001.key')), 'secret' , 'https://194.180.18.30/ebicsweb/ebicsweb', 'SIZBN001', 'EBIX', 'EBICS') }
3
+ let(:hpb) { Epics::HPB.new(client) }
4
+
5
+ before do
6
+ allow(hpb).to receive(:nonce) { "014a82626a51ee1cab547bbaf18a13a0" }
7
+ allow(hpb).to receive(:timestamp) { "2014-09-09T09:33:12Z" }
8
+ subject.digest!
9
+ subject.sign!
10
+ end
11
+
12
+ subject { described_class.new(client, hpb.to_xml) }
13
+
14
+ describe '#digest!' do
15
+ it 'creates a digest of the *[authorized=true] nodes' do
16
+ expect(subject.digest_node.content).to eq("iXchWJ3xMy508YBhzx0Fn9cYNyyAiS+X8CB8zb7tyfM=")
17
+ end
18
+
19
+ it 'bar' do
20
+ expect(Epics::Response.new(client, subject.doc.to_xml(save_with: 32)).digest_valid?).to be(true)
21
+ end
22
+ end
23
+
24
+ describe '#sign!' do
25
+ it 'signs the complete ds:SignedInfo node' do
26
+ expect(subject.doc.xpath("//ds:SignatureValue").first.content).to eq("o6G7zeU6IhEkQ51Mp5/aIhPcYiZAG1rERxFad+rVdbRCYJGUn6/BNath1cdTgoHQ+ZWn9+Y6IgFsKUYFp8QHrhYBJNhd38fi5wj2Eqv+J4nsfmSD9x6YFa8Q13cJ9/CakHp/C59bgFSJj77BzRFUPnW1Y1NuHj8n1OJ3iFTyF1vF6H6oRKHoE4cbK4jhD3f6udRvGglhW5J+TUFBM+2aE8njpzBZFjyQlct+5XUx3o+1GvaMUk5riH5sCQ95PAKuGTXFu0OLZvECDMA3kOia/l3VF09QUGsjxYF0jUn5WG6TnLy8+Odrh9tUgV9bS/swSeQ41Cah4Ehb0qTYFZoJ+w==")
27
+ end
28
+
29
+ it 'can be verified with the same key' do
30
+ expect(client.x.key.verify(OpenSSL::Digest::SHA256.new, Base64.decode64(subject.doc.xpath("//ds:SignatureValue").first.content), subject.signature_node.canonicalize)).to be(true)
31
+ end
32
+ end
33
+
34
+ end
@@ -0,0 +1,43 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+
4
+ require 'rspec'
5
+ require 'epics'
6
+ require 'webmock/rspec'
7
+ require 'rspec/matchers' # req by equivalent-xml custom matcher `be_equivalent_to`
8
+ require 'equivalent-xml'
9
+
10
+ Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f}
11
+
12
+ RSpec.configure do |config|
13
+ # rspec-expectations config goes here. You can use an alternate
14
+ # assertion/expectation library such as wrong or the stdlib/minitest
15
+ # assertions if you prefer.
16
+ config.expect_with :rspec do |expectations|
17
+ # This option will default to `true` in RSpec 4. It makes the `description`
18
+ # and `failure_message` of custom matchers include text for helper methods
19
+ # defined using `chain`, e.g.:
20
+ # be_bigger_than(2).and_smaller_than(4).description
21
+ # # => "be bigger than 2 and smaller than 4"
22
+ # ...rather than:
23
+ # # => "be bigger than 2"
24
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
25
+ end
26
+
27
+ # rspec-mocks config goes here. You can use an alternate test double
28
+ # library (such as bogus or mocha) by changing the `mock_with` option here.
29
+ config.mock_with :rspec do |mocks|
30
+ # Prevents you from mocking or stubbing a method that does not exist on
31
+ # a real object. This is generally recommended, and will default to
32
+ # `true` in RSpec 4.
33
+ mocks.verify_partial_doubles = true
34
+ end
35
+
36
+ config.order = :random
37
+
38
+ Kernel.srand config.seed
39
+
40
+ if config.files_to_run.one?
41
+ config.default_formatter = 'doc'
42
+ end
43
+ end
@@ -0,0 +1,22 @@
1
+ RSpec::Matchers.define :be_a_valid_ebics_doc do
2
+
3
+ ##
4
+ # use #open instead of #read to have the includes working
5
+ # http://stackoverflow.com/questions/11996326/nokogirixmlschema-syntaxerror-on-schema-load/22971456#22971456
6
+ def xsd
7
+ @xsd ||= Nokogiri::XML::Schema(File.open( File.join( File.dirname(__FILE__), '..', 'xsd', 'ebics_H004.xsd') ))
8
+ end
9
+
10
+ match do |actual|
11
+ xsd.valid?(Nokogiri::XML(actual))
12
+ end
13
+
14
+ failure_message do |actual|
15
+ "expected that #{actual} would be a valid EBICS doc:\n\n #{xsd.validate(Nokogiri::XML(actual))}"
16
+ end
17
+
18
+ description do
19
+ "be a valid EBCIS document"
20
+ end
21
+
22
+ end
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ebics="urn:org:ebics:H004" targetNamespace="urn:org:ebics:H004" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
3
+ <annotation>
4
+ <documentation xml:lang="de">ebics_H004.xsd inkludiert alle Schemadateien des EBICS-Protokolls, um die Eindeutigkeit von Element- und Typnamen im EBCIS Namespace zu erzwingen.</documentation>
5
+ <documentation xml:lang="en">ebics_H004.xsd includes all schema files for the EBICS protocol in order to enforce unique element and type names in the EBICS namespace.</documentation>
6
+ </annotation>
7
+ <include schemaLocation="ebics_request_H004.xsd"/>
8
+ <include schemaLocation="ebics_response_H004.xsd"/>
9
+ <include schemaLocation="ebics_keymgmt_request_H004.xsd"/>
10
+ <include schemaLocation="ebics_keymgmt_response_H004.xsd"/>
11
+ </schema>
@@ -0,0 +1,135 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ebics="http://www.ebics.org/H000" targetNamespace="http://www.ebics.org/H000" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
3
+ <xs:annotation>
4
+ <xs:documentation xml:lang="de">ebics_hev.xsd ist das EBICS-Protokollschema entweder für Anfragen oder Rückmeldungen der Bank zu unterstützten EBICS-Versionen.</xs:documentation>
5
+ <xs:documentation xml:lang="en">ebics_hev.xsd is the appropriate EBICS protocol schema either for requests or responses according the EBICS versions supported by a bank.</xs:documentation>
6
+ </xs:annotation>
7
+ <xs:simpleType name="HostIDType">
8
+ <xs:annotation>
9
+ <xs:documentation xml:lang="de">Datentyp für die Host-ID.</xs:documentation>
10
+ <xs:documentation xml:lang="en">Dataype for Host-ID.</xs:documentation>
11
+ </xs:annotation>
12
+ <xs:restriction base="xs:token">
13
+ <xs:maxLength value="35"/>
14
+ </xs:restriction>
15
+ </xs:simpleType>
16
+ <xs:simpleType name="OrderTBaseType">
17
+ <xs:annotation>
18
+ <xs:documentation xml:lang="de">Datentyp für allgemeine Auftragsarten (Grundtyp).</xs:documentation>
19
+ <xs:documentation xml:lang="en">Datatype for general order types (basic type).</xs:documentation>
20
+ </xs:annotation>
21
+ <xs:restriction base="xs:token">
22
+ <xs:length value="3"/>
23
+ <xs:pattern value="HEV"/>
24
+ </xs:restriction>
25
+ </xs:simpleType>
26
+ <xs:simpleType name="ReturnCodeType">
27
+ <xs:annotation>
28
+ <xs:documentation xml:lang="de">Datentyp für Antwortcodes.</xs:documentation>
29
+ <xs:documentation xml:lang="en">Datatype for the return code</xs:documentation>
30
+ </xs:annotation>
31
+ <xs:restriction base="xs:token">
32
+ <xs:length value="6"/>
33
+ <xs:pattern value="\d{6}"/>
34
+ </xs:restriction>
35
+ </xs:simpleType>
36
+ <xs:simpleType name="ReportTextType">
37
+ <xs:annotation>
38
+ <xs:documentation xml:lang="de">Datentyp für den Erklärungstext zum Antwortcode.</xs:documentation>
39
+ <xs:documentation xml:lang="en">Datatype for report text with respect to the return code</xs:documentation>
40
+ </xs:annotation>
41
+ <xs:restriction base="xs:normalizedString">
42
+ <xs:maxLength value="256"/>
43
+ </xs:restriction>
44
+ </xs:simpleType>
45
+ <xs:simpleType name="VersionNumberType">
46
+ <xs:annotation>
47
+ <xs:documentation xml:lang="de">Datentyp für eine Versionsnummer</xs:documentation>
48
+ <xs:documentation xml:lang="en">Datatype for a release number </xs:documentation>
49
+ </xs:annotation>
50
+ <xs:restriction base="xs:token">
51
+ <xs:length value="5"/>
52
+ <xs:pattern value="[0-9]{2}[.][0-9]{2}"/>
53
+ </xs:restriction>
54
+ </xs:simpleType>
55
+ <xs:simpleType name="ProtocolVersionType">
56
+ <xs:annotation>
57
+ <xs:documentation xml:lang="de">Datentyp für Versionsnummer des EBICS-schemas</xs:documentation>
58
+ <xs:documentation xml:lang="en">Datatype for release-number of the EBICS scheme</xs:documentation>
59
+ </xs:annotation>
60
+ <xs:restriction base="xs:token">
61
+ <xs:length value="4"/>
62
+ <xs:pattern value="H\d{3}"/>
63
+ </xs:restriction>
64
+ </xs:simpleType>
65
+ <xs:complexType name="SystemReturnCodeType">
66
+ <xs:annotation>
67
+ <xs:documentation xml:lang="de">Datentyp für technische Fehler.</xs:documentation>
68
+ <xs:documentation xml:lang="en">Datatype for technical error</xs:documentation>
69
+ </xs:annotation>
70
+ <xs:sequence>
71
+ <xs:element name="ReturnCode" type="ebics:ReturnCodeType">
72
+ <xs:annotation>
73
+ <xs:documentation xml:lang="de">Rückmeldung des Ausführungsstatus mit einer eindeutigen Fehlernummer.</xs:documentation>
74
+ <xs:documentation xml:lang="en">Confirmation of the carried out status with a unique error code.</xs:documentation>
75
+ </xs:annotation>
76
+ </xs:element>
77
+ <xs:element name="ReportText" type="ebics:ReportTextType">
78
+ <xs:annotation>
79
+ <xs:documentation xml:lang="de">Klartext der Rückmeldung des Ausführungsstatus.</xs:documentation>
80
+ <xs:documentation xml:lang="en">Clear text of the response (carried out status).</xs:documentation>
81
+ </xs:annotation>
82
+ </xs:element>
83
+ </xs:sequence>
84
+ </xs:complexType>
85
+ <xs:complexType name="HEVRequestDataType">
86
+ <xs:annotation>
87
+ <xs:documentation xml:lang="de">Datentyp für die Request-Daten</xs:documentation>
88
+ <xs:documentation xml:lang="en">Data type for Request data</xs:documentation>
89
+ </xs:annotation>
90
+ <xs:sequence>
91
+ <xs:element name="HostID" type="ebics:HostIDType"/>
92
+ <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
93
+ </xs:sequence>
94
+ </xs:complexType>
95
+ <xs:complexType name="HEVResponseDataType">
96
+ <xs:annotation>
97
+ <xs:documentation xml:lang="en">Datentyp für die Response-Daten</xs:documentation>
98
+ <xs:documentation xml:lang="en">Data type for Request data</xs:documentation>
99
+ </xs:annotation>
100
+ <xs:sequence>
101
+ <xs:element name="SystemReturnCode" type="ebics:SystemReturnCodeType"/>
102
+ <xs:element name="VersionNumber" minOccurs="0" maxOccurs="unbounded">
103
+ <xs:annotation>
104
+ <xs:documentation xml:lang="de">Von der Bank unterstützte EBICS-Versionen, z.B. 2.4</xs:documentation>
105
+ <xs:documentation xml:lang="en">EBICS-releases supported by the bank, e.g. 2.4</xs:documentation>
106
+ </xs:annotation>
107
+ <xs:complexType>
108
+ <xs:simpleContent>
109
+ <xs:extension base="ebics:VersionNumberType">
110
+ <xs:attribute name="ProtocolVersion" type="ebics:ProtocolVersionType" use="required">
111
+ <xs:annotation>
112
+ <xs:documentation xml:lang="de">der EBICS-Version eindeutig zugeordnete Schema-Version, z.B. H003</xs:documentation>
113
+ <xs:documentation xml:lang="en">EBICS-scheme-version, e.g. H003, well-defined for EBICS-release-Version</xs:documentation>
114
+ </xs:annotation>
115
+ </xs:attribute>
116
+ </xs:extension>
117
+ </xs:simpleContent>
118
+ </xs:complexType>
119
+ </xs:element>
120
+ <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
121
+ </xs:sequence>
122
+ </xs:complexType>
123
+ <xs:element name="ebicsHEVRequest" type="ebics:HEVRequestDataType">
124
+ <xs:annotation>
125
+ <xs:documentation xml:lang="de">Requestdaten</xs:documentation>
126
+ <xs:documentation xml:lang="en">request data</xs:documentation>
127
+ </xs:annotation>
128
+ </xs:element>
129
+ <xs:element name="ebicsHEVResponse" type="ebics:HEVResponseDataType">
130
+ <xs:annotation>
131
+ <xs:documentation xml:lang="de">Responsedaten</xs:documentation>
132
+ <xs:documentation xml:lang="en">response data</xs:documentation>
133
+ </xs:annotation>
134
+ </xs:element>
135
+ </xs:schema>
@@ -0,0 +1,543 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Mit XMLSpy v2008 rel. 2 sp2 (http://www.altova.com) von benutzerservice benutzerservice (SIZ GmbH) bearbeitet -->
3
+ <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ebics="urn:org:ebics:H004" targetNamespace="urn:org:ebics:H004" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
4
+ <annotation>
5
+ <documentation xml:lang="de">ebics_keymgmt_request_H004.xsd ist das EBICS-Protokollschema für Schlüsselmanagement-Anfragen (HIA, HPB, HSA, INI).</documentation>
6
+ </annotation>
7
+ <import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd">
8
+ <annotation>
9
+ <documentation xml:lang="de">XML-Signature.</documentation>
10
+ </annotation>
11
+ </import>
12
+ <include schemaLocation="ebics_types_H004.xsd"/>
13
+ <include schemaLocation="ebics_orders_H004.xsd"/>
14
+ <complexType name="StaticHeaderBaseType" abstract="true">
15
+ <annotation>
16
+ <documentation xml:lang="de">Datentyp für den statischen EBICS-Header (allgemein).</documentation>
17
+ </annotation>
18
+ <sequence>
19
+ <element name="HostID" type="ebics:HostIDType">
20
+ <annotation>
21
+ <documentation xml:lang="de">Hostname des Banksystems.</documentation>
22
+ </annotation>
23
+ </element>
24
+ <element name="Nonce" type="ebics:NonceType" minOccurs="0">
25
+ <annotation>
26
+ <documentation xml:lang="de">Zufallswert; damit wird die Initialisierungsnachricht des Clients einzigartig; nur anzugeben, falls Authentifikationssignatur vorhanden.</documentation>
27
+ </annotation>
28
+ </element>
29
+ <element name="Timestamp" type="ebics:TimestampType" minOccurs="0">
30
+ <annotation>
31
+ <documentation xml:lang="de">aktueller Zeitstempel zur Begrenzung der serverseitigen Nonce-Speicherung; nur anzugeben, falls Authentifikationssignatur vorhanden.</documentation>
32
+ </annotation>
33
+ </element>
34
+ <element name="PartnerID" type="ebics:PartnerIDType">
35
+ <annotation>
36
+ <documentation xml:lang="de">Kunden-ID des serverseitig administrierten Kunden.</documentation>
37
+ </annotation>
38
+ </element>
39
+ <element name="UserID" type="ebics:UserIDType">
40
+ <annotation>
41
+ <documentation xml:lang="de">Teilnehmer-ID des serverseitig zu diesem Kunden administrierten Teilnehmers.</documentation>
42
+ </annotation>
43
+ </element>
44
+ <element name="SystemID" type="ebics:UserIDType" minOccurs="0">
45
+ <annotation>
46
+ <documentation xml:lang="de">technische User-ID für Multi-User-Systeme.</documentation>
47
+ </annotation>
48
+ </element>
49
+ <element name="Product" type="ebics:ProductElementType" nillable="true" minOccurs="0">
50
+ <annotation>
51
+ <documentation xml:lang="de">Kennung des Kundenprodukts bzw. Herstellerkennung oder Name.</documentation>
52
+ </annotation>
53
+ </element>
54
+ <element name="OrderDetails" type="ebics:OrderDetailsType">
55
+ <annotation>
56
+ <documentation xml:lang="de">Auftragsdetails.</documentation>
57
+ </annotation>
58
+ </element>
59
+ <element name="SecurityMedium" type="ebics:SecurityMediumType">
60
+ <annotation>
61
+ <documentation xml:lang="de">Angabe des Sicherheitsmediums, das der Kunde verwendet.</documentation>
62
+ </annotation>
63
+ </element>
64
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
65
+ </sequence>
66
+ </complexType>
67
+ <complexType name="OrderDetailsType" abstract="true">
68
+ <annotation>
69
+ <documentation xml:lang="de">Datentyp für OrderDetails im statischen EBICS-Header (allgemein).</documentation>
70
+ </annotation>
71
+ <sequence>
72
+ <element name="OrderType" type="ebics:OrderTBaseType">
73
+ <annotation>
74
+ <documentation xml:lang="de">Auftragsart.</documentation>
75
+ </annotation>
76
+ </element>
77
+ <element name="OrderAttribute" type="ebics:OrderAttributeBaseType">
78
+ <annotation>
79
+ <documentation xml:lang="de">Auftragsattribut.</documentation>
80
+ </annotation>
81
+ </element>
82
+ </sequence>
83
+ </complexType>
84
+ <complexType name="ProductElementType">
85
+ <annotation>
86
+ <documentation xml:lang="de">Datentyp für Element mit Kennung des Kundenprodukts bzw. Herstellerkennung oder Name.</documentation>
87
+ </annotation>
88
+ <simpleContent>
89
+ <extension base="ebics:ProductType">
90
+ <attribute name="Language" type="ebics:LanguageType" use="required">
91
+ <annotation>
92
+ <documentation xml:lang="de">Sprachkennzeichen der Kundenproduktversion (gemäß ISO 639).</documentation>
93
+ </annotation>
94
+ </attribute>
95
+ <attribute name="InstituteID" type="ebics:InstituteIDType" use="optional">
96
+ <annotation>
97
+ <documentation xml:lang="de">Kennung des Herausgebers des Kundenprodukts bzw. des betreuenden Kreditinstituts.</documentation>
98
+ </annotation>
99
+ </attribute>
100
+ </extension>
101
+ </simpleContent>
102
+ </complexType>
103
+ <complexType name="EmptyMutableHeaderType">
104
+ <annotation>
105
+ <documentation xml:lang="de">Datentyp für den leeren variablen EBICS-Header von Key Managemen Aufträgen.</documentation>
106
+ </annotation>
107
+ <sequence>
108
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
109
+ </sequence>
110
+ </complexType>
111
+ <element name="ebicsUnsecuredRequest">
112
+ <annotation>
113
+ <documentation>Anfragestruktur für ungesicherte Auftragsarten HIA (Authentifikations- und Verschlüsselungsschlüssel senden) und INI (bankfachllichen Schlüssel senden).</documentation>
114
+ </annotation>
115
+ <complexType>
116
+ <sequence>
117
+ <element name="header">
118
+ <annotation>
119
+ <documentation xml:lang="de">enthält die technischen Transaktionsdaten.</documentation>
120
+ </annotation>
121
+ <complexType>
122
+ <sequence>
123
+ <element name="static" type="ebics:UnsecuredRequestStaticHeaderType">
124
+ <annotation>
125
+ <documentation xml:lang="de">enhält alle festen Headereinträge.</documentation>
126
+ </annotation>
127
+ </element>
128
+ <element name="mutable" type="ebics:EmptyMutableHeaderType">
129
+ <annotation>
130
+ <documentation xml:lang="de">enthält alle variablen Headereinträge.</documentation>
131
+ </annotation>
132
+ </element>
133
+ </sequence>
134
+ <attributeGroup ref="ebics:AuthenticationMarker"/>
135
+ </complexType>
136
+ </element>
137
+ <element name="body">
138
+ <annotation>
139
+ <documentation xml:lang="de">enthält die Auftragsdaten.</documentation>
140
+ </annotation>
141
+ <complexType>
142
+ <sequence>
143
+ <annotation>
144
+ <documentation xml:lang="de"/>
145
+ </annotation>
146
+ <element name="DataTransfer">
147
+ <annotation>
148
+ <documentation xml:lang="de">Transfer von Auftragsdaten.</documentation>
149
+ </annotation>
150
+ <complexType>
151
+ <sequence>
152
+ <element name="OrderData">
153
+ <annotation>
154
+ <documentation xml:lang="de">enthält Auftragsdaten.</documentation>
155
+ </annotation>
156
+ <complexType>
157
+ <simpleContent>
158
+ <extension base="ebics:OrderDataType">
159
+ <anyAttribute namespace="##targetNamespace" processContents="lax"/>
160
+ </extension>
161
+ </simpleContent>
162
+ </complexType>
163
+ </element>
164
+ </sequence>
165
+ </complexType>
166
+ </element>
167
+ </sequence>
168
+ </complexType>
169
+ </element>
170
+ </sequence>
171
+ <attributeGroup ref="ebics:VersionAttrGroup"/>
172
+ </complexType>
173
+ </element>
174
+ <complexType name="UnsecuredRequestStaticHeaderType">
175
+ <annotation>
176
+ <documentation xml:lang="de">Datentyp für den statischen EBICS-Header bei ungesicherten Sendeauftragsarten (Aufträge HIA und INI): kein Nonce, kein Timestamp, keine EU-Datei, keine X001 Authentifizierung, keine Verschlüsselung, keine Digests der öffentlichen Bankschlüssel, Nutzdaten komprimiert, Auftragsattribut DZNNN</documentation>
177
+ </annotation>
178
+ <complexContent>
179
+ <restriction base="ebics:StaticHeaderBaseType">
180
+ <sequence>
181
+ <element name="HostID" type="ebics:HostIDType">
182
+ <annotation>
183
+ <documentation xml:lang="de">Hostname des Banksystems.</documentation>
184
+ </annotation>
185
+ </element>
186
+ <element name="Nonce" type="ebics:NonceType" minOccurs="0" maxOccurs="0">
187
+ <annotation>
188
+ <documentation xml:lang="de">Zufallswert; damit wird die Initialisierungsnachricht des Clients einzigartig; nicht anzugeben für ebicsUnsecuredRequest.</documentation>
189
+ </annotation>
190
+ </element>
191
+ <element name="Timestamp" type="ebics:TimestampType" minOccurs="0" maxOccurs="0">
192
+ <annotation>
193
+ <documentation xml:lang="de">aktueller Zeitstempel zur Begrenzung der serverseitigen Nonce-Speicherung; nicht anzugeben für ebicsUnsecuredRequest.</documentation>
194
+ </annotation>
195
+ </element>
196
+ <element name="PartnerID" type="ebics:PartnerIDType">
197
+ <annotation>
198
+ <documentation xml:lang="de">Kunden-ID des serverseitig administrierten Kunden.</documentation>
199
+ </annotation>
200
+ </element>
201
+ <element name="UserID" type="ebics:UserIDType">
202
+ <annotation>
203
+ <documentation xml:lang="de">Teilnehmer-ID des serverseitig zu diesem Kunden administrierten Teilnehmers.</documentation>
204
+ </annotation>
205
+ </element>
206
+ <element name="SystemID" type="ebics:UserIDType" minOccurs="0">
207
+ <annotation>
208
+ <documentation xml:lang="de">technische User-ID für Multi-User-Systeme.</documentation>
209
+ </annotation>
210
+ </element>
211
+ <element name="Product" type="ebics:ProductElementType" nillable="true" minOccurs="0">
212
+ <annotation>
213
+ <documentation xml:lang="de">Kennung des Kundenprodukts bzw. Herstellerkennung oder Name.</documentation>
214
+ </annotation>
215
+ </element>
216
+ <element name="OrderDetails" type="ebics:UnsecuredReqOrderDetailsType">
217
+ <annotation>
218
+ <documentation xml:lang="de">Auftragsdetails.</documentation>
219
+ </annotation>
220
+ </element>
221
+ <element name="SecurityMedium" type="ebics:SecurityMediumType">
222
+ <annotation>
223
+ <documentation xml:lang="de">Angabe des Sicherheitsmediums, das der Kunde verwendet.</documentation>
224
+ </annotation>
225
+ </element>
226
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
227
+ </sequence>
228
+ </restriction>
229
+ </complexContent>
230
+ </complexType>
231
+ <complexType name="UnsecuredReqOrderDetailsType">
232
+ <annotation>
233
+ <documentation xml:lang="de">Datentyp für OrderDetails im statischen EBICS-Header von ebicsUnsecuredRequest.</documentation>
234
+ </annotation>
235
+ <complexContent>
236
+ <restriction base="ebics:OrderDetailsType">
237
+ <sequence>
238
+ <element name="OrderType" type="ebics:OrderTBaseType">
239
+ <annotation>
240
+ <documentation xml:lang="de">Auftragsart.</documentation>
241
+ </annotation>
242
+ </element>
243
+ <element name="OrderAttribute" type="ebics:OrderAttributeBaseType" fixed="DZNNN">
244
+ <annotation>
245
+ <documentation xml:lang="de">Auftragsattribut: DZNNN.</documentation>
246
+ </annotation>
247
+ </element>
248
+ </sequence>
249
+ </restriction>
250
+ </complexContent>
251
+ </complexType>
252
+ <element name="ebicsNoPubKeyDigestsRequest">
253
+ <annotation>
254
+ <documentation>Anfragestruktur für Auftragsarten ohne Übertragung der Digests der öffentlichen Bankschlüssel (HPB Bankschlüssel abholen).</documentation>
255
+ </annotation>
256
+ <complexType>
257
+ <sequence>
258
+ <element name="header">
259
+ <annotation>
260
+ <documentation xml:lang="de">enthält die technischen Transaktionsdaten.</documentation>
261
+ </annotation>
262
+ <complexType>
263
+ <sequence>
264
+ <element name="static" type="ebics:NoPubKeyDigestsRequestStaticHeaderType">
265
+ <annotation>
266
+ <documentation xml:lang="de">enhält alle festen Headereinträge.</documentation>
267
+ </annotation>
268
+ </element>
269
+ <element name="mutable" type="ebics:EmptyMutableHeaderType">
270
+ <annotation>
271
+ <documentation xml:lang="de">enthält alle variablen Headereinträge.</documentation>
272
+ </annotation>
273
+ </element>
274
+ </sequence>
275
+ <attributeGroup ref="ebics:AuthenticationMarker"/>
276
+ </complexType>
277
+ </element>
278
+ <element ref="ebics:AuthSignature">
279
+ <annotation>
280
+ <documentation xml:lang="de">Authentifikationssignatur.</documentation>
281
+ </annotation>
282
+ </element>
283
+ <element name="body">
284
+ <annotation>
285
+ <documentation xml:lang="de">enthält optionale Zertifikate (vorgesehen).</documentation>
286
+ </annotation>
287
+ <complexType>
288
+ <sequence>
289
+ <annotation>
290
+ <documentation xml:lang="de"/>
291
+ </annotation>
292
+ <element ref="ds:X509Data" minOccurs="0" maxOccurs="0">
293
+ <annotation>
294
+ <documentation xml:lang="de">X.509-Daten des Teilnehmers.</documentation>
295
+ </annotation>
296
+ </element>
297
+ </sequence>
298
+ </complexType>
299
+ </element>
300
+ </sequence>
301
+ <attributeGroup ref="ebics:VersionAttrGroup"/>
302
+ </complexType>
303
+ </element>
304
+ <complexType name="NoPubKeyDigestsRequestStaticHeaderType">
305
+ <annotation>
306
+ <documentation xml:lang="de">Datentyp für den statischen EBICS-Header bei Aufträgen ohne Übertragung der Digests der Bankschlüssel (Auftrag HBP): keine Digests der öffentlichen Bankschlüssel, keine EU-Datei, keine Nutzdaten, OrderId optional!, Nonce, Timestamp, X001 Authentifizierung, Auftragsattribut DZHNN</documentation>
307
+ </annotation>
308
+ <complexContent>
309
+ <restriction base="ebics:StaticHeaderBaseType">
310
+ <sequence>
311
+ <element name="HostID" type="ebics:HostIDType">
312
+ <annotation>
313
+ <documentation xml:lang="de">Hostname des Banksystems.</documentation>
314
+ </annotation>
315
+ </element>
316
+ <element name="Nonce" type="ebics:NonceType">
317
+ <annotation>
318
+ <documentation xml:lang="de">Zufallswert; damit wird die Initialisierungsnachricht des Clients einzigartig.</documentation>
319
+ </annotation>
320
+ </element>
321
+ <element name="Timestamp" type="ebics:TimestampType">
322
+ <annotation>
323
+ <documentation xml:lang="de">aktueller Zeitstempel zur Begrenzung der serverseitigen Nonce-Speicherung.</documentation>
324
+ </annotation>
325
+ </element>
326
+ <element name="PartnerID" type="ebics:PartnerIDType">
327
+ <annotation>
328
+ <documentation xml:lang="de">Kunden-ID des serverseitig administrierten Kunden.</documentation>
329
+ </annotation>
330
+ </element>
331
+ <element name="UserID" type="ebics:UserIDType">
332
+ <annotation>
333
+ <documentation xml:lang="de">Teilnehmer-ID des serverseitig zu diesem Kunden administrierten Teilnehmers.</documentation>
334
+ </annotation>
335
+ </element>
336
+ <element name="SystemID" type="ebics:UserIDType" minOccurs="0">
337
+ <annotation>
338
+ <documentation xml:lang="de">technische User-ID für Multi-User-Systeme.</documentation>
339
+ </annotation>
340
+ </element>
341
+ <element name="Product" type="ebics:ProductElementType" nillable="true" minOccurs="0">
342
+ <annotation>
343
+ <documentation xml:lang="de">Kennung des Kundenprodukts bzw. Herstellerkennung oder Name.</documentation>
344
+ </annotation>
345
+ </element>
346
+ <element name="OrderDetails" type="ebics:NoPubKeyDigestsReqOrderDetailsType">
347
+ <annotation>
348
+ <documentation xml:lang="de">Auftragsdetails.</documentation>
349
+ </annotation>
350
+ </element>
351
+ <element name="SecurityMedium" type="ebics:SecurityMediumType">
352
+ <annotation>
353
+ <documentation xml:lang="de">Angabe des Sicherheitsmediums, das der Kunde verwendet.</documentation>
354
+ </annotation>
355
+ </element>
356
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
357
+ </sequence>
358
+ </restriction>
359
+ </complexContent>
360
+ </complexType>
361
+ <complexType name="NoPubKeyDigestsReqOrderDetailsType">
362
+ <annotation>
363
+ <documentation xml:lang="de">Datentyp für OrderDetails im statischen EBICS-Header von ebicsNoPubKeyDigestsRequest.</documentation>
364
+ </annotation>
365
+ <complexContent>
366
+ <restriction base="ebics:OrderDetailsType">
367
+ <sequence>
368
+ <element name="OrderType" type="ebics:OrderTBaseType">
369
+ <annotation>
370
+ <documentation xml:lang="de">Auftragsart.</documentation>
371
+ </annotation>
372
+ </element>
373
+ <element name="OrderAttribute" type="ebics:OrderAttributeBaseType" fixed="DZHNN">
374
+ <annotation>
375
+ <documentation xml:lang="de">Auftragsattribut: DZHNN.</documentation>
376
+ </annotation>
377
+ </element>
378
+ </sequence>
379
+ </restriction>
380
+ </complexContent>
381
+ </complexType>
382
+ <element name="ebicsUnsignedRequest">
383
+ <annotation>
384
+ <documentation xml:lang="en">The structure for uploads contains order data and the ESs, but without an authentication signature and data digest of bank keys.</documentation>
385
+ <documentation>Anfragestruktur für Sendeaufträge mit EU-Datei und Nutzdaten aber ohne Authentifizierungssignatur und Digests der Bankschlüssel.</documentation>
386
+ </annotation>
387
+ <complexType>
388
+ <sequence>
389
+ <element name="header">
390
+ <annotation>
391
+ <documentation xml:lang="en">Contains technical transaction data.</documentation>
392
+ <documentation xml:lang="de">enthält die technischen Transaktionsdaten.</documentation>
393
+ </annotation>
394
+ <complexType>
395
+ <sequence>
396
+ <element name="static" type="ebics:UnsignedRequestStaticHeaderType">
397
+ <annotation>
398
+ <documentation xml:lang="en">Contains all fixed header entries.</documentation>
399
+ <documentation xml:lang="de">enhält alle festen Headereinträge.</documentation>
400
+ </annotation>
401
+ </element>
402
+ <element name="mutable" type="ebics:EmptyMutableHeaderType">
403
+ <annotation>
404
+ <documentation xml:lang="en">Contains all mutable header entries.</documentation>
405
+ <documentation xml:lang="de">enthält alle variablen Headereinträge.</documentation>
406
+ </annotation>
407
+ </element>
408
+ </sequence>
409
+ <attributeGroup ref="ebics:AuthenticationMarker"/>
410
+ </complexType>
411
+ </element>
412
+ <element name="body">
413
+ <annotation>
414
+ <documentation xml:lang="en">Contains the order data and the ESs.</documentation>
415
+ <documentation xml:lang="de">enthält die Auftragsdaten und EUs.</documentation>
416
+ </annotation>
417
+ <complexType>
418
+ <sequence>
419
+ <annotation>
420
+ <documentation xml:lang="de"/>
421
+ </annotation>
422
+ <element name="DataTransfer">
423
+ <annotation>
424
+ <documentation xml:lang="en">Transfer of order data and the ESs.</documentation>
425
+ <documentation xml:lang="de">Transfer von Auftragsdaten und EUs.</documentation>
426
+ </annotation>
427
+ <complexType>
428
+ <sequence>
429
+ <element name="SignatureData">
430
+ <annotation>
431
+ <documentation xml:lang="en">Contains the ESs.</documentation>
432
+ <documentation xml:lang="de">enthält Signaturdaten (EUs).</documentation>
433
+ </annotation>
434
+ <complexType>
435
+ <simpleContent>
436
+ <extension base="ebics:SignatureDataType">
437
+ <attributeGroup ref="ebics:AuthenticationMarker"/>
438
+ </extension>
439
+ </simpleContent>
440
+ </complexType>
441
+ </element>
442
+ <element name="OrderData">
443
+ <annotation>
444
+ <documentation xml:lang="en">Contains the order data</documentation>
445
+ <documentation xml:lang="de">enthält Auftragsdaten.</documentation>
446
+ </annotation>
447
+ <complexType>
448
+ <simpleContent>
449
+ <extension base="ebics:OrderDataType">
450
+ <anyAttribute namespace="##targetNamespace" processContents="lax"/>
451
+ </extension>
452
+ </simpleContent>
453
+ </complexType>
454
+ </element>
455
+ </sequence>
456
+ </complexType>
457
+ </element>
458
+ </sequence>
459
+ </complexType>
460
+ </element>
461
+ </sequence>
462
+ <attributeGroup ref="ebics:VersionAttrGroup"/>
463
+ </complexType>
464
+ </element>
465
+ <complexType name="UnsignedRequestStaticHeaderType">
466
+ <annotation>
467
+ <documentation xml:lang="de">Datentyp für den statischen EBICS-Header für ebicsUnsignedRequest.Datentyp für den statischen EBICS-Header bei Aufträgen ohne Authentifizierungssignatur (Auftrag HSA): keine X001 Authentifizierung, keine Digests der öffentlichen Bankschlüssel, EU-Datei, Nutzdaten, Nonce, Timestamp, OrderId, Auftragsattribut OZNNN</documentation>
468
+ </annotation>
469
+ <complexContent>
470
+ <restriction base="ebics:StaticHeaderBaseType">
471
+ <sequence>
472
+ <element name="HostID" type="ebics:HostIDType">
473
+ <annotation>
474
+ <documentation xml:lang="de">Hostname des Banksystems.</documentation>
475
+ </annotation>
476
+ </element>
477
+ <element name="Nonce" type="ebics:NonceType" minOccurs="0" maxOccurs="0">
478
+ <annotation>
479
+ <documentation xml:lang="de">Zufallswert; damit wird die Initialisierungsnachricht des Clients einzigartig; nicht anzugeben bei ebicsUnsignedRequest.</documentation>
480
+ </annotation>
481
+ </element>
482
+ <element name="Timestamp" type="ebics:TimestampType" minOccurs="0" maxOccurs="0">
483
+ <annotation>
484
+ <documentation xml:lang="de">aktueller Zeitstempel zur Begrenzung der serverseitigen Nonce-Speicherung; nicht anzugeben bei ebicsUnsignedRequest.</documentation>
485
+ </annotation>
486
+ </element>
487
+ <element name="PartnerID" type="ebics:PartnerIDType">
488
+ <annotation>
489
+ <documentation xml:lang="de">Kunden-ID des serverseitig administrierten Kunden.</documentation>
490
+ </annotation>
491
+ </element>
492
+ <element name="UserID" type="ebics:UserIDType">
493
+ <annotation>
494
+ <documentation xml:lang="de">Teilnehmer-ID des serverseitig zu diesem Kunden administrierten Teilnehmers.</documentation>
495
+ </annotation>
496
+ </element>
497
+ <element name="SystemID" type="ebics:UserIDType" minOccurs="0">
498
+ <annotation>
499
+ <documentation xml:lang="de">technische User-ID für Multi-User-Systeme.</documentation>
500
+ </annotation>
501
+ </element>
502
+ <element name="Product" type="ebics:ProductElementType" nillable="true" minOccurs="0">
503
+ <annotation>
504
+ <documentation xml:lang="de">Kennung des Kundenprodukts bzw. Herstellerkennung oder Name.</documentation>
505
+ </annotation>
506
+ </element>
507
+ <element name="OrderDetails" type="ebics:UnsignedReqOrderDetailsType">
508
+ <annotation>
509
+ <documentation xml:lang="de">Auftragsdetails.</documentation>
510
+ </annotation>
511
+ </element>
512
+ <element name="SecurityMedium" type="ebics:SecurityMediumType">
513
+ <annotation>
514
+ <documentation xml:lang="de">Angabe des Sicherheitsmediums, das der Kunde verwendet.</documentation>
515
+ </annotation>
516
+ </element>
517
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
518
+ </sequence>
519
+ </restriction>
520
+ </complexContent>
521
+ </complexType>
522
+ <complexType name="UnsignedReqOrderDetailsType">
523
+ <annotation>
524
+ <documentation xml:lang="de">Datentyp für OrderDetails im statischen EBICS-Header von ebicsUnsignedRequest.</documentation>
525
+ </annotation>
526
+ <complexContent>
527
+ <restriction base="ebics:OrderDetailsType">
528
+ <sequence>
529
+ <element name="OrderType" type="ebics:OrderTBaseType">
530
+ <annotation>
531
+ <documentation xml:lang="de">Auftragsart.</documentation>
532
+ </annotation>
533
+ </element>
534
+ <element name="OrderAttribute" type="ebics:OrderAttributeBaseType" fixed="OZNNN">
535
+ <annotation>
536
+ <documentation xml:lang="de">Auftragsattribut: OZNNN.</documentation>
537
+ </annotation>
538
+ </element>
539
+ </sequence>
540
+ </restriction>
541
+ </complexContent>
542
+ </complexType>
543
+ </schema>