adding quickfix
This commit is contained in:
63
quickfix/datadictionary/xml.go
Normal file
63
quickfix/datadictionary/xml.go
Normal file
@ -0,0 +1,63 @@
|
||||
package datadictionary
|
||||
|
||||
import (
|
||||
"encoding/xml"
|
||||
)
|
||||
|
||||
// XMLDoc is the unmarshalled root of a FIX Dictionary.
|
||||
type XMLDoc struct {
|
||||
Type string `xml:"type,attr"`
|
||||
Major string `xml:"major,attr"`
|
||||
Minor string `xml:"minor,attr"`
|
||||
ServicePack int `xml:"servicepack,attr"`
|
||||
|
||||
Header *XMLComponent `xml:"header"`
|
||||
Trailer *XMLComponent `xml:"trailer"`
|
||||
Messages []*XMLComponent `xml:"messages>message"`
|
||||
Components []*XMLComponent `xml:"components>component"`
|
||||
Fields []*XMLField `xml:"fields>field"`
|
||||
}
|
||||
|
||||
// XMLComponent can represent header, trailer, messages/message, or components/component xml elements.
|
||||
type XMLComponent struct {
|
||||
Name string `xml:"name,attr"`
|
||||
MsgCat string `xml:"msgcat,attr"`
|
||||
MsgType string `xml:"msgtype,attr"`
|
||||
|
||||
Members []*XMLComponentMember `xml:",any"`
|
||||
}
|
||||
|
||||
// XMLField represents the fields/field xml element.
|
||||
type XMLField struct {
|
||||
Number int `xml:"number,attr"`
|
||||
Name string `xml:"name,attr"`
|
||||
Type string `xml:"type,attr"`
|
||||
Values []*XMLValue `xml:"value"`
|
||||
}
|
||||
|
||||
// XMLValue represents the fields/field/value xml element.
|
||||
type XMLValue struct {
|
||||
Enum string `xml:"enum,attr"`
|
||||
Description string `xml:"description,attr"`
|
||||
}
|
||||
|
||||
// XMLComponentMember represents child elements of header, trailer, messages/message, and components/component elements.
|
||||
type XMLComponentMember struct {
|
||||
XMLName xml.Name
|
||||
Name string `xml:"name,attr"`
|
||||
Required string `xml:"required,attr"`
|
||||
|
||||
Members []*XMLComponentMember `xml:",any"`
|
||||
}
|
||||
|
||||
func (member XMLComponentMember) isComponent() bool {
|
||||
return member.XMLName.Local == "component"
|
||||
}
|
||||
|
||||
func (member XMLComponentMember) isGroup() bool {
|
||||
return member.XMLName.Local == "group"
|
||||
}
|
||||
|
||||
func (member XMLComponentMember) isRequired() bool {
|
||||
return member.Required == "Y"
|
||||
}
|
||||
Reference in New Issue
Block a user