diff --git a/datadictionary/datadictionary.go b/datadictionary/datadictionary.go index 9342b3dd5..b032d078e 100644 --- a/datadictionary/datadictionary.go +++ b/datadictionary/datadictionary.go @@ -315,6 +315,10 @@ func Parse(path string) (*DataDictionary, error) { func ParseSrc(xmlSrc io.Reader) (*DataDictionary, error) { doc := new(XMLDoc) decoder := xml.NewDecoder(xmlSrc) + decoder.CharsetReader = func(encoding string, input io.Reader) (io.Reader, error) { + return input, nil + } + if err := decoder.Decode(doc); err != nil { return nil, errors.Wrapf(err, "problem parsing XML file") } diff --git a/validation.go b/validation.go index 58fbea80e..72bb06628 100644 --- a/validation.go +++ b/validation.go @@ -246,6 +246,7 @@ func validateVisitGroupField(fieldDef *datadictionary.FieldDef, fieldStack []Tag if childDefs[0].Required() { return fieldStack, RequiredTagMissing(Tag(childDefs[0].Tag())) } + fieldStack = fieldStack[1:] } childDefs = childDefs[1:]