Go implementation of the ISO 20022 standard
This package consumes valid iso20022 XML strings and returns Go structs to be processed by an iso20022 application.
go get github.com/figassis/bankiso
go get github.com/davecgh/go-spew/spew --for debugging purposes only. Not required if not building
cd $GOPATH/src/github.com/figassis/bankiso go build
./bankiso -f bankiso -f msg-examples/payments/pain.009.001.04/business3-pain.009.001.04.xml
Take a look at https://github.com/figassis/bankiso/blob/master/main.go
Each iso20022 schema results in a different struct, and therefore a different go type. I've decided to use interfaces, type assertions and type switches to provide a sane way to handle all messages.
I’ve created an interface ISOMessage, which all iso20022 (and later 8583) messages implement, so they can all be returned from the same function.
The package maintains a library of struct types that it picks according to the message code it reads from the XML string.
A function then unmarshals the XML into the chosen struct and returns an ISOMessage.
You can then use a type switch to type assert the message and call the correct handling function.
Q Public License 1.0 (QPL-1.0)
Copyright © Assis Ngolo