packages feed

property-list-0.0.0.7: src/Data/PropertyList/Xml/Dtd_1_13.hs

{-
 -      generated by DtdToHaskell (from HaXml 1.13.3)
 -      altered to fix ambiguities and build errors
 -       (why is this the "preferred" HaXml version, anyway?)
 -}

module Data.PropertyList.Xml.Dtd_1_13 where

import Text.XML.HaXml.Xml2Haskell
import Text.XML.HaXml.OneOfN
import Data.Char (isSpace)

import Prelude (Eq, Show, String, Maybe(..), all, concatMap, (++))

{-Type decls-}

data Plist = PlistArray Plist_Attrs Array
           | PlistData Plist_Attrs Data
           | PlistDate Plist_Attrs Date
           | PlistDict Plist_Attrs Dict
           | PlistAReal Plist_Attrs AReal
           | PlistAInteger Plist_Attrs AInteger
           | PlistAString Plist_Attrs AString
           | PlistTrue Plist_Attrs True
           | PlistFalse Plist_Attrs False
           deriving (Eq,Show)
data Plist_Attrs = Plist_Attrs
    { plistVersion :: (Defaultable String)
    } deriving (Eq,Show)
newtype Array = Array [(OneOf9 Array Data Date Dict AReal AInteger AString True False)] 		deriving (Eq,Show)
newtype Dict = Dict [Dict_] 		deriving (Eq,Show)
data Dict_ = Dict_ Key
                   (OneOf9 Array Data Date Dict AReal AInteger AString True False)
           deriving (Eq,Show)
newtype Key = Key String 		deriving (Eq,Show)
newtype AString = AString String 		deriving (Eq,Show)
newtype Data = Data String 		deriving (Eq,Show)
newtype Date = Date String 		deriving (Eq,Show)
data True = True 		deriving (Eq,Show)
data False = False 		deriving (Eq,Show)
newtype AReal = AReal String 		deriving (Eq,Show)
newtype AInteger = AInteger String 		deriving (Eq,Show)


{-Instance decls-}

instance XmlContent Plist where
    fromElem (CElem (Elem "plist" as c0):rest) =
        case (fromElem c0) of
        (Just a,_) -> (Just (PlistArray (fromAttrs as) a), rest)
        (_,_) ->
                case (fromElem c0) of
                (Just a,_) -> (Just (PlistData (fromAttrs as) a), rest)
                (_,_) ->
                        case (fromElem c0) of
                        (Just a,_) -> (Just (PlistDate (fromAttrs as) a), rest)
                        (_,_) ->
                                case (fromElem c0) of
                                (Just a,_) -> (Just (PlistDict (fromAttrs as) a), rest)
                                (_,_) ->
                                        case (fromElem c0) of
                                        (Just a,_) -> (Just (PlistAReal (fromAttrs as) a), rest)
                                        (_,_) ->
                                                case (fromElem c0) of
                                                (Just a,_) -> (Just (PlistAInteger (fromAttrs as) a), rest)
                                                (_,_) ->
                                                        case (fromElem c0) of
                                                        (Just a,_) -> (Just (PlistAString (fromAttrs as) a), rest)
                                                        (_,_) ->
                                                                case (fromElem c0) of
                                                                (Just a,_) -> (Just (PlistTrue (fromAttrs as) a), rest)
                                                                (_,_) ->
                                                                        case (fromElem c0) of
                                                                        (Just a,_) -> (Just (PlistFalse (fromAttrs as) a), rest)
                                                                        (_,_) ->
                                                                            (Nothing, c0)
    fromElem (CMisc _:rest) = fromElem rest
    fromElem (CString _ s:rest) | all isSpace s = fromElem rest
    fromElem rest = (Nothing, rest)
    toElem (PlistArray as a) = [CElem (Elem "plist" (toAttrs as) (toElem a) )]
    toElem (PlistData as a) = [CElem (Elem "plist" (toAttrs as) (toElem a) )]
    toElem (PlistDate as a) = [CElem (Elem "plist" (toAttrs as) (toElem a) )]
    toElem (PlistDict as a) = [CElem (Elem "plist" (toAttrs as) (toElem a) )]
    toElem (PlistAReal as a) = [CElem (Elem "plist" (toAttrs as) (toElem a) )]
    toElem (PlistAInteger as a) = [CElem (Elem "plist" (toAttrs as) (toElem a) )]
    toElem (PlistAString as a) = [CElem (Elem "plist" (toAttrs as) (toElem a) )]
    toElem (PlistTrue as a) = [CElem (Elem "plist" (toAttrs as) (toElem a) )]
    toElem (PlistFalse as a) = [CElem (Elem "plist" (toAttrs as) (toElem a) )]
instance XmlAttributes Plist_Attrs where
    fromAttrs as =
        Plist_Attrs
          { plistVersion = defaultA fromAttrToStr "1.0" "version" as
          }
    toAttrs v = catMaybes 
        [ defaultToAttr toAttrFrStr "version" (plistVersion v)
        ]
instance XmlContent Array where
    fromElem (CElem (Elem "array" [] c0):rest) =
        (\(a,ca)->
           (Just (Array a), rest))
        (many fromElem c0)
    fromElem (CMisc _:rest) = fromElem rest
    fromElem (CString _ s:rest) | all isSpace s = fromElem rest
    fromElem rest = (Nothing, rest)
    toElem (Array a) =
        [CElem (Elem "array" [] (concatMap toElem a))]
instance XmlContent Dict where
    fromElem (CElem (Elem "dict" [] c0):rest) =
        (\(a,ca)->
           (Just (Dict a), rest))
        (many fromElem c0)
    fromElem (CMisc _:rest) = fromElem rest
    fromElem (CString _ s:rest) | all isSpace s = fromElem rest
    fromElem rest = (Nothing, rest)
    toElem (Dict a) =
        [CElem (Elem "dict" [] (concatMap toElem a))]
instance XmlContent Dict_ where
    fromElem c0 =
        case (\(a,ca)->
                (\(b,cb)->
                   (a,b,cb))
                (fromElem ca))
             (fromElem c0) of
        (Just a,Just b,rest) -> (Just (Dict_ a b), rest)
        (_,_,_) ->
            (Nothing, c0)
    toElem (Dict_ a b) =
        (toElem a ++ toElem b)
instance XmlContent Key where
    fromElem (CElem (Elem "key" [] c0):rest) =
        (\(a,ca)->
           (Just (Key a), rest))
        (definite fromText "text" "key" c0)
    fromElem (CMisc _:rest) = fromElem rest
    fromElem (CString _ s:rest) | all isSpace s = fromElem rest
    fromElem rest = (Nothing, rest)
    toElem (Key a) =
        [CElem (Elem "key" [] (toText a))]
instance XmlContent AString where
    fromElem (CElem (Elem "string" [] c0):rest) =
        (\(a,ca)->
           (Just (AString a), rest))
        (definite fromText "text" "string" c0)
    fromElem (CMisc _:rest) = fromElem rest
    fromElem (CString _ s:rest) | all isSpace s = fromElem rest
    fromElem rest = (Nothing, rest)
    toElem (AString a) =
        [CElem (Elem "string" [] (toText a))]
instance XmlContent Data where
    fromElem (CElem (Elem "data" [] c0):rest) =
        (\(a,ca)->
           (Just (Data a), rest))
        (definite fromText "text" "data" c0)
    fromElem (CMisc _:rest) = fromElem rest
    fromElem (CString _ s:rest) | all isSpace s = fromElem rest
    fromElem rest = (Nothing, rest)
    toElem (Data a) =
        [CElem (Elem "data" [] (toText a))]
instance XmlContent Date where
    fromElem (CElem (Elem "date" [] c0):rest) =
        (\(a,ca)->
           (Just (Date a), rest))
        (definite fromText "text" "date" c0)
    fromElem (CMisc _:rest) = fromElem rest
    fromElem (CString _ s:rest) | all isSpace s = fromElem rest
    fromElem rest = (Nothing, rest)
    toElem (Date a) =
        [CElem (Elem "date" [] (toText a))]
instance XmlContent True where
    fromElem (CElem (Elem "true" [] []):rest) =
        (Just True, rest)
    fromElem (CMisc _:rest) = fromElem rest
    fromElem (CString _ s:rest) | all isSpace s = fromElem rest
    fromElem rest = (Nothing, rest)
    toElem True =
        [CElem (Elem "true" [] [])]
instance XmlContent False where
    fromElem (CElem (Elem "false" [] []):rest) =
        (Just False, rest)
    fromElem (CMisc _:rest) = fromElem rest
    fromElem (CString _ s:rest) | all isSpace s = fromElem rest
    fromElem rest = (Nothing, rest)
    toElem False =
        [CElem (Elem "false" [] [])]
instance XmlContent AReal where
    fromElem (CElem (Elem "real" [] c0):rest) =
        (\(a,ca)->
           (Just (AReal a), rest))
        (definite fromText "text" "real" c0)
    fromElem (CMisc _:rest) = fromElem rest
    fromElem (CString _ s:rest) | all isSpace s = fromElem rest
    fromElem rest = (Nothing, rest)
    toElem (AReal a) =
        [CElem (Elem "real" [] (toText a))]
instance XmlContent AInteger where
    fromElem (CElem (Elem "integer" [] c0):rest) =
        (\(a,ca)->
           (Just (AInteger a), rest))
        (definite fromText "text" "integer" c0)
    fromElem (CMisc _:rest) = fromElem rest
    fromElem (CString _ s:rest) | all isSpace s = fromElem rest
    fromElem rest = (Nothing, rest)
    toElem (AInteger a) =
        [CElem (Elem "integer" [] (toText a))]


{-Done-}