module DTD_erik where
import Xml2Haskell
{-Type decls-}
data Kenmerk = Kenmerk Kenmerk_Attrs [Kenmerk_]
deriving (Eq,Show)
data Kenmerk_Attrs = Kenmerk_Attrs
{ kenmerkKmc :: String
, kenmerkGewicht :: (Defaultable String)
} deriving (Eq,Show)
data Kenmerk_ = Kenmerk_Str String
| Kenmerk_Begin Begin
| Kenmerk_Eind Eind
deriving (Eq,Show)
newtype Begin = Begin [String] deriving (Eq,Show)
newtype Eind = Eind String deriving (Eq,Show)
{-Instance decls-}
instance XmlContent Kenmerk where
fromElem (CElem (Elem "kenmerk" as c0):rest) =
(\(a,ca)->
(Just (Kenmerk (fromAttrs as) a), rest))
(many fromElem c0)
fromElem rest = (Nothing, rest)
toElem (Kenmerk as a) =
[CElem (Elem "kenmerk" (toAttrs as) (concatMap toElem a))]
instance XmlAttributes Kenmerk_Attrs where
fromAttrs as =
Kenmerk_Attrs
{ kenmerkKmc = definiteA fromAttrToStr "kenmerk" "kmc" as
, kenmerkGewicht = defaultA fromAttrToStr "1" "gewicht" as
}
toAttrs v = catMaybes
[ toAttrFrStr "kmc" (kenmerkKmc v)
, defaultToAttr toAttrFrStr "gewicht" (kenmerkGewicht v)
]
instance XmlContent Kenmerk_ where
fromElem c0 =
case (fromText c0) of
(Just a,rest) -> (Just (Kenmerk_Str a), rest)
(Nothing,_) ->
case (fromElem c0) of
(Just a,rest) -> (Just (Kenmerk_Begin a), rest)
(Nothing,_) ->
case (fromElem c0) of
(Just a,rest) -> (Just (Kenmerk_Eind a), rest)
(Nothing,_) ->
(Nothing, c0)
toElem (Kenmerk_Str a) = [CElem (Elem "kenmerk" [] (toText a) )]
toElem (Kenmerk_Begin a) = [CElem (Elem "kenmerk" [] (toElem a) )]
toElem (Kenmerk_Eind a) = [CElem (Elem "kenmerk" [] (toElem a) )]
instance XmlContent Begin where
fromElem (CElem (Elem "begin" [] c0):rest) =
(\(a,ca)->
(Just (Begin a), rest))
(many fromText c0)
fromElem rest = (Nothing, rest)
toElem (Begin a) =
[CElem (Elem "begin" [] (concatMap toText a))]
instance XmlContent Eind where
fromElem (CElem (Elem "eind" [] c0):rest) =
(\(a,ca)->
(Just (Eind a), rest))
(definite fromText "text" "eind" c0)
fromElem rest = (Nothing, rest)
toElem (Eind a) =
[CElem (Elem "eind" [] (toText a))]
{-Done-}
|