git.iko.soy/typeable/xsd-parser
on master help sign in
Handle default namespace (#6)
a440293Yuras
src/Xsd/Parser.hs+3−2
@@ -235,7 +235,7 @@ parseComplexContent c = do
235 _ -> parseError c "Expected one of restriction or extension"
235 _ -> parseError c "Expected one of restriction or extension"
236
236
237parseComplexExtension :: Cursor -> P Xsd.ComplexExtension
237parseComplexExtension :: Cursor -> P Xsd.ComplexExtension
238−parseComplexExtension c = do
238+parseComplexExtension c = handleNamespaces c $ do
239 base <- theAttribute "base" c >>= makeQName c
239 base <- theAttribute "base" c >>= makeQName c
240 attributes <- parseAttributes c
240 attributes <- parseAttributes c
241 model <- parseModelGroup c
241 model <- parseModelGroup c
@@ -452,8 +452,9 @@ makeElemAxis name = do
452makeQName :: Cursor -> Text -> P Xsd.QName
452makeQName :: Cursor -> Text -> P Xsd.QName
453makeQName c t = case Text.splitOn ":" t of
453makeQName c t = case Text.splitOn ":" t of
454 [n] -> do
454 [n] -> do
455+ ns <- asks (lookup Nothing . envPrefixes)
455 return Xsd.QName
456 return Xsd.QName
456− { Xsd.qnNamespace = Nothing
457+ { Xsd.qnNamespace = ns
457 , Xsd.qnName = n
458 , Xsd.qnName = n
458 }
459 }
459 [p, n] -> do
460 [p, n] -> do