@@ -23,6 +23,7 @@ where
23import qualified Data.Char as Char
23import qualified Data.Char as Char
24import Data.Text (Text)
24import Data.Text (Text)
25import qualified Data.Text as Text
25import qualified Data.Text as Text
26import Data.Set (Set)
27import Data.Set (Set)
27import qualified Data.Set as Set
28import qualified Data.Set as Set
28import Data.Map (Map)
29import Data.Map (Map)
@@ -156,14 +157,18 @@ allFields (Xsd.TypeComplex t) =
156 case Xsd.complexContent t of
157 case Xsd.complexContent t of
157 Xsd.ContentPlain c ->
158 Xsd.ContentPlain c ->
158 case Xsd.plainContentModel c of
159 case Xsd.plainContentModel c of
159− Just (Xsd.Sequence es) -> map Xsd.elementName es
160+ Just (Xsd.Sequence es) -> mapMaybe elementName es
161 Xsd.ContentSimple _ -> []
162 Xsd.ContentSimple _ -> []
162 Xsd.ContentComplex (Xsd.ComplexContentExtension e) ->
163 Xsd.ContentComplex (Xsd.ComplexContentExtension e) ->
163 case Xsd.complexExtensionModel e of
164 case Xsd.complexExtensionModel e of
164− Just (Xsd.Sequence es) -> map Xsd.elementName es
165+ Just (Xsd.Sequence es) -> mapMaybe elementName es
166 Xsd.ContentComplex Xsd.ComplexContentRestriction -> []
167 Xsd.ContentComplex Xsd.ComplexContentRestriction -> []
169+ elementName = Xsd.refOr
171+ (Just . Xsd.elementName)
168-- | Prefix field name with based on the type name
173-- | Prefix field name with based on the type name
169makePrefixedField :: Text -> Xsd.QName -> Text
174makePrefixedField :: Text -> Xsd.QName -> Text