Documentation
¶
Index ¶
- Variables
- func IsErrInvalidEDI(err error) bool
- func NewEDIFileFormat(schemaName string) fileformat.FileFormat
- func NewReader(inputName string, r io.Reader, decl *FileDecl, targetXPath string) (*ediReader, error)
- type Elem
- type ErrInvalidEDI
- type FileDecl
- type NonValidatingReader
- type RawSeg
- type RawSegElem
- type SegDecl
Constants ¶
This section is empty.
Variables ¶
var ( // ReaderBufSize is the default buf size for EDI reader. Making it too small might increase // mem-alloc and gc; making it too big increases the initial memory consumption footprint // (unnecessarily) for each reader creation which eventually leads to gc as well. Make it // exported so caller can experiment and set their optimal value. ReaderBufSize = 128 )
Functions ¶
func IsErrInvalidEDI ¶
IsErrInvalidEDI checks if the `err` is of ErrInvalidEDI type.
func NewEDIFileFormat ¶
func NewEDIFileFormat(schemaName string) fileformat.FileFormat
NewEDIFileFormat creates a FileFormat for EDI.
Types ¶
type Elem ¶ added in v0.0.4
type Elem struct {
Name string `json:"name,omitempty"`
Index int `json:"index,omitempty"`
CompIndex *int `json:"component_index,omitempty"`
EmptyIfMissing bool `json:"empty_if_missing,omitempty"` // Deprecated, use Default
Default *string `json:"default,omitempty"`
}
Elem describes an element inside an EDI segment.
type ErrInvalidEDI ¶
type ErrInvalidEDI string
ErrInvalidEDI indicates the EDI content is corrupted. This is a fatal, non-continuable error.
func (ErrInvalidEDI) Error ¶
func (e ErrInvalidEDI) Error() string
type FileDecl ¶ added in v0.0.4
type FileDecl struct {
SegDelim string `json:"segment_delimiter,omitempty"`
ElemDelim string `json:"element_delimiter,omitempty"`
CompDelim *string `json:"component_delimiter,omitempty"`
ReleaseChar *string `json:"release_character,omitempty"`
IgnoreCRLF bool `json:"ignore_crlf,omitempty"`
SegDecls []*SegDecl `json:"segment_declarations,omitempty"`
}
FileDecl describes EDI specific schema settings for omniparser reader.
type NonValidatingReader ¶ added in v0.0.6
type NonValidatingReader struct {
// contains filtered or unexported fields
}
NonValidatingReader is an EDI segment reader that only reads out raw segments (its elements and components) directly without doing any segment structural/hierarchical validation.
func NewNonValidatingReader ¶ added in v0.0.6
func NewNonValidatingReader(r io.Reader, decl *FileDecl) *NonValidatingReader
NewNonValidatingReader creates an instance of NonValidatingReader.
func (*NonValidatingReader) Read ¶ added in v0.0.6
func (r *NonValidatingReader) Read() (RawSeg, error)
Read returns a raw segment of an EDI document. Note all the []byte are not a copy, so READONLY, no modification.
func (*NonValidatingReader) RuneBegin ¶ added in v0.0.6
func (r *NonValidatingReader) RuneBegin() int
RuneBegin returns the current reader's beginning rune position.
func (*NonValidatingReader) RuneEnd ¶ added in v0.0.6
func (r *NonValidatingReader) RuneEnd() int
RuneEnd returns the current reader's ending rune position.
func (*NonValidatingReader) SegCount ¶ added in v0.0.6
func (r *NonValidatingReader) SegCount() int
SegCount returns the current reader's segment count.
type RawSeg ¶ added in v0.0.6
type RawSeg struct {
Name string // name of the segment, e.g. 'ISA', 'GS', etc.
Raw []byte // the raw data of the entire segment, including segment delimiter. not owned, no mod!
Elems []RawSegElem // all the broken down pieces of elements/components of the segment.
// contains filtered or unexported fields
}
RawSeg represents a raw segment of an EDI document.
type RawSegElem ¶ added in v0.0.6
type RawSegElem struct {
// ElemIndex is 1-based element index of this data inside the segment.
ElemIndex int
// CompIndex is 1-based component index of this data inside the element.
CompIndex int
// Data contains the element or component data.
// WARNING: the data is just a slice of the raw input, not a copy - so no modification!
// WARNING: data isn't unescaped if escaping sequence (release_character) is used; to
// unescape, use strs.ByteUnescape.
Data []byte
}
RawSegElem represents an element or a component of a raw segment of an EDI document.
type SegDecl ¶ added in v0.0.4
type SegDecl struct {
Name string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
IsTarget bool `json:"is_target,omitempty"`
Min *int `json:"min,omitempty"`
Max *int `json:"max,omitempty"`
Elems []Elem `json:"elements,omitempty"`
Children []*SegDecl `json:"child_segments,omitempty"`
// contains filtered or unexported fields
}
SegDecl describes an EDI segment declaration/settings.