diff --git a/build.go b/build.go index e4a8449..359e88d 100644 --- a/build.go +++ b/build.go @@ -247,15 +247,18 @@ func makeComponentSchemasMap(schemas *Schemas) map[string]interface{} { for _, s := range *schemas { scheme := make(map[string]interface{}) - scheme[keyType] = s.Type - scheme[keyProperties] = makePropertiesMap(&s.Properties) - scheme[keyRef] = s.Ref - if s.XML.Name != "" { - scheme[keyXML] = s.XML - } + if s.Ref != "" { + scheme[keyRef] = s.Ref + } else { + scheme[keyType] = s.Type + schemesMap[s.Name] = scheme + scheme[keyProperties] = makePropertiesMap(&s.Properties) - schemesMap[s.Name] = scheme + if s.XML.Name != "" { + scheme[keyXML] = s.XML + } + } } return schemesMap