git.iko.soy/typeable/xsd-isogen
on master help sign in
Adjust to the new xsd-parser
commitebd78bac603825f5b1908b5003a4812cd65e684d authorYuras Shumovich <shumovichy@gmail.com> dateThu 13 Feb 2020, 18:09 (7 years ago) parentc70b78c
3 files changed+11−5
cabal.project+1−1 src/Gen.hs+7−2 src/Main.hs+3−2
cabal.project+1−1
@@ -3,4 +3,4 @@ packages: .
33source-repository-package
44 type: git
55 location: https://github.com/typeable/xsd-parser.git
6− tag: be6f2e92d3c6b381922957fa51821e8e57840da3
6+ tag: 58cfd04980fb66590334be9fe80ef4c163669f1b
src/Gen.hs+7−2
@@ -23,6 +23,7 @@ where
2323import qualified Data.Char as Char
2424import Data.Text (Text)
2525import qualified Data.Text as Text
26+import Data.Maybe
2627import Data.Set (Set)
2728import qualified Data.Set as Set
2829import Data.Map (Map)
@@ -156,14 +157,18 @@ allFields (Xsd.TypeComplex t) =
156157 case Xsd.complexContent t of
157158 Xsd.ContentPlain c ->
158159 case Xsd.plainContentModel c of
159− Just (Xsd.Sequence es) -> map Xsd.elementName es
160+ Just (Xsd.Sequence es) -> mapMaybe elementName es
160161 _ -> []
161162 Xsd.ContentSimple _ -> []
162163 Xsd.ContentComplex (Xsd.ComplexContentExtension e) ->
163164 case Xsd.complexExtensionModel e of
164− Just (Xsd.Sequence es) -> map Xsd.elementName es
165+ Just (Xsd.Sequence es) -> mapMaybe elementName es
165166 _ -> []
166167 Xsd.ContentComplex Xsd.ComplexContentRestriction -> []
168+ where
169+ elementName = Xsd.refOr
170+ (const Nothing)
171+ (Just . Xsd.elementName)
167172
168173-- | Prefix field name with based on the type name
169174makePrefixedField :: Text -> Xsd.QName -> Text
src/Main.hs+3−2
@@ -307,8 +307,9 @@ genFieldsForModel _ (Xsd.All _) = do
307307 warn "all: not implemented"
308308 return []
309309
310−genField :: TypeName -> Xsd.Element -> Gen (Maybe Text)
311−genField typeName e = do
310+genField :: TypeName -> Xsd.RefOr Xsd.Element -> Gen (Maybe Text)
311+genField _ (Xsd.Ref _) = return Nothing
312+genField typeName (Xsd.Inline e) = do
312313 fieldName <- makeFieldName typeName (Xsd.elementName e)
313314
314315 fieldTypeName <- case Xsd.elementType e of