-
Notifications
You must be signed in to change notification settings - Fork 0
/
camt.020.001.04.xsd.go
131 lines (109 loc) · 5.02 KB
/
camt.020.001.04.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
// Code generated by download. DO NOT EDIT.
package iso20022_camt_020_001_04
import (
"bytes"
"encoding/xml"
"time"
)
type BusinessInformationCriteria1 struct {
NewQryNm Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 NewQryNm,omitempty"`
SchCrit []GeneralBusinessInformationSearchCriteria1 `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 SchCrit,omitempty"`
RtrCrit GeneralBusinessInformationReturnCriteria1 `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 RtrCrit,omitempty"`
}
type BusinessInformationQueryDefinition3 struct {
QryTp QueryType2Code `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 QryTp,omitempty"`
GnlBizInfCrit GeneralBusinessInformationCriteriaDefinition1Choice `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 GnlBizInfCrit,omitempty"`
}
type CharacterSearch1Choice struct {
EQ Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 EQ,omitempty"`
NEQ Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 NEQ,omitempty"`
CT Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 CT,omitempty"`
NCT Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 NCT,omitempty"`
}
type Document struct {
GetGnlBizInf GetGeneralBusinessInformationV04 `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 GetGnlBizInf"`
}
type GeneralBusinessInformationCriteriaDefinition1Choice struct {
QryNm Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 QryNm,omitempty"`
NewCrit BusinessInformationCriteria1 `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 NewCrit,omitempty"`
}
type GeneralBusinessInformationReturnCriteria1 struct {
QlfrInd bool `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 QlfrInd,omitempty"`
SbjtInd bool `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 SbjtInd,omitempty"`
SbjtDtlsInd bool `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 SbjtDtlsInd,omitempty"`
}
type GeneralBusinessInformationSearchCriteria1 struct {
Ref []Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 Ref,omitempty"`
Sbjt []CharacterSearch1Choice `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 Sbjt,omitempty"`
Qlfr []InformationQualifierType1 `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 Qlfr,omitempty"`
}
type GetGeneralBusinessInformationV04 struct {
MsgHdr MessageHeader1 `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 MsgHdr"`
GnlBizInfQryDef BusinessInformationQueryDefinition3 `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 GnlBizInfQryDef,omitempty"`
SplmtryData []SupplementaryData1 `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 SplmtryData,omitempty"`
}
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()
}
type InformationQualifierType1 struct {
IsFrmtd bool `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 IsFrmtd,omitempty"`
Prty Priority1Code `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 Prty,omitempty"`
}
// May be no more than 350 items long
type Max350Text string
// May be no more than 35 items long
type Max35Text string
type MessageHeader1 struct {
MsgId Max35Text `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 MsgId"`
CreDtTm ISODateTime `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 CreDtTm,omitempty"`
}
// May be one of HIGH, NORM, LOWW
type Priority1Code string
// May be one of ALLL, CHNG, MODF, DELD
type QueryType2Code string
type SupplementaryData1 struct {
PlcAndNm Max350Text `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 PlcAndNm,omitempty"`
Envlp SupplementaryDataEnvelope1 `xml:"urn:iso:std:iso:20022:tech:xsd:camt.020.001.04 Envlp"`
}
type SupplementaryDataEnvelope1 struct {
Item string `xml:",any"`
}
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
}
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
}