-
Notifications
You must be signed in to change notification settings - Fork 0
/
acmt.035.001.02.xsd.go
145 lines (123 loc) · 4.73 KB
/
acmt.035.001.02.xsd.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
// Code generated by download. DO NOT EDIT.
package iso20022_acmt_035_001_02
import (
"bytes"
"encoding/xml"
"time"
)
type AccountSwitchDetails1 struct {
UnqRefNb Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:acmt.035.001.02 UnqRefNb"`
RtgUnqRefNb Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:acmt.035.001.02 RtgUnqRefNb"`
SwtchRcvdDtTm ISODateTime `xml:"urn:iso:std:iso:20022:tech:xsd:acmt.035.001.02 SwtchRcvdDtTm,omitempty"`
SwtchDt ISODate `xml:"urn:iso:std:iso:20022:tech:xsd:acmt.035.001.02 SwtchDt,omitempty"`
SwtchTp SwitchType1Code `xml:"urn:iso:std:iso:20022:tech:xsd:acmt.035.001.02 SwtchTp"`
SwtchSts SwitchStatus1Code `xml:"urn:iso:std:iso:20022:tech:xsd:acmt.035.001.02 SwtchSts,omitempty"`
BalTrfWndw BalanceTransferWindow1Code `xml:"urn:iso:std:iso:20022:tech:xsd:acmt.035.001.02 BalTrfWndw,omitempty"`
Rspn []ResponseDetails1 `xml:"urn:iso:std:iso:20022:tech:xsd:acmt.035.001.02 Rspn,omitempty"`
}
type AccountSwitchPaymentResponseV02 struct {
MsgId MessageIdentification1 `xml:"urn:iso:std:iso:20022:tech:xsd:acmt.035.001.02 MsgId"`
AcctSwtchDtls AccountSwitchDetails1 `xml:"urn:iso:std:iso:20022:tech:xsd:acmt.035.001.02 AcctSwtchDtls"`
SplmtryData []SupplementaryData1 `xml:"urn:iso:std:iso:20022:tech:xsd:acmt.035.001.02 SplmtryData,omitempty"`
}
// May be one of DAYH, EARL
type BalanceTransferWindow1Code string
type Document struct {
AcctSwtchPmtRspn AccountSwitchPaymentResponseV02 `xml:"urn:iso:std:iso:20022:tech:xsd:acmt.035.001.02 AcctSwtchPmtRspn"`
}
type ISODate time.Time
func (t *ISODate) UnmarshalText(text []byte) error {
return (*xsdDate)(t).UnmarshalText(text)
}
func (t ISODate) MarshalText() ([]byte, error) {
return xsdDate(t).MarshalText()
}
type ISODateTime time.Time
func (t *ISODateTime) UnmarshalText(text []byte) error {
return (*xsdDateTime)(t).UnmarshalText(text)
}
func (t ISODateTime) MarshalText() ([]byte, error) {
return xsdDateTime(t).MarshalText()
}
// May be no more than 350 items long
type Max350Text string
// May be no more than 35 items long
type Max35Text string
type MessageIdentification1 struct {
Id Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:acmt.035.001.02 Id"`
CreDtTm ISODateTime `xml:"urn:iso:std:iso:20022:tech:xsd:acmt.035.001.02 CreDtTm"`
}
type ResponseDetails1 struct {
RspnCd Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:acmt.035.001.02 RspnCd"`
AddtlDtls Max350Text `xml:"urn:iso:std:iso:20022:tech:xsd:acmt.035.001.02 AddtlDtls,omitempty"`
}
type SupplementaryData1 struct {
PlcAndNm Max350Text `xml:"urn:iso:std:iso:20022:tech:xsd:acmt.035.001.02 PlcAndNm,omitempty"`
Envlp SupplementaryDataEnvelope1 `xml:"urn:iso:std:iso:20022:tech:xsd:acmt.035.001.02 Envlp"`
}
type SupplementaryDataEnvelope1 struct {
Item string `xml:",any"`
}
// May be one of ACPT, BTRQ, BTRS, COMP, REDT, REDE, REJT, REQU, TMTN
type SwitchStatus1Code string
// May be one of FULL, PART
type SwitchType1Code string
type xsdDate time.Time
func (t *xsdDate) UnmarshalText(text []byte) error {
return _unmarshalTime(text, (*time.Time)(t), "2006-01-02")
}
func (t xsdDate) MarshalText() ([]byte, error) {
return _marshalTime((time.Time)(t), "2006-01-02")
}
func (t xsdDate) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
if (time.Time)(t).IsZero() {
return nil
}
m, err := t.MarshalText()
if err != nil {
return err
}
return e.EncodeElement(m, start)
}
func (t xsdDate) MarshalXMLAttr(name xml.Name) (xml.Attr, error) {
if (time.Time)(t).IsZero() {
return xml.Attr{}, nil
}
m, err := t.MarshalText()
return xml.Attr{Name: name, Value: string(m)}, err
}
func _unmarshalTime(text []byte, t *time.Time, format string) (err error) {
s := string(bytes.TrimSpace(text))
*t, err = time.Parse(format, s)
if _, ok := err.(*time.ParseError); ok {
*t, err = time.Parse(format+"Z07:00", s)
}
return err
}
func _marshalTime(t time.Time, format string) ([]byte, error) {
return []byte(t.Format(format + "Z07:00")), nil
}
type xsdDateTime time.Time
func (t *xsdDateTime) UnmarshalText(text []byte) error {
return _unmarshalTime(text, (*time.Time)(t), "2006-01-02T15:04:05.999999999")
}
func (t xsdDateTime) MarshalText() ([]byte, error) {
return _marshalTime((time.Time)(t), "2006-01-02T15:04:05.999999999")
}
func (t xsdDateTime) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
if (time.Time)(t).IsZero() {
return nil
}
m, err := t.MarshalText()
if err != nil {
return err
}
return e.EncodeElement(m, start)
}
func (t xsdDateTime) MarshalXMLAttr(name xml.Name) (xml.Attr, error) {
if (time.Time)(t).IsZero() {
return xml.Attr{}, nil
}
m, err := t.MarshalText()
return xml.Attr{Name: name, Value: string(m)}, err
}