git.iko.soy/typeable/xsd-isogen
on master help sign in
typeable/xsd-isogen/src/BuiltInTypes.hs
67 lines 1.5 kB history raw
1{-# LANGUAGE OverloadedStrings #-}
3module BuiltInTypes
4( builtInTypes
5)
6where
8import Data.Map (Map)
9import qualified Data.Map as Map
11import qualified Xsd
13import Gen
15builtInTypes :: Map Xsd.QName TypeName
16builtInTypes = Map.fromList . map qualify $
17 [ ("anyURI", "Text")
18 , ("base64Binary", "ByteString")
19 , ("boolean", "Bool")
20 , ("date", "Date")
21 , ("dateTime", "Text")
22 , ("dateTimeStamp", "Text")
23 , ("decimal", "Scientific")
24 , ("integer", "Integer")
25 , ("long", "Integer")
26 , ("int", "Integer")
27 , ("short", "Integer")
28 , ("byte", "Integer")
29 , ("nonNegativeInteger", "Integer")
30 , ("positiveInteger", "Integer")
31 , ("unsignedLong", "Integer")
32 , ("unsignedInt", "Integer")
33 , ("unsignedByte", "Integer")
34 , ("nonPositiveInteger", "Integer")
35 , ("negativeInteger", "Integer")
36 , ("float", "Float")
37 , ("double", "Scientific")
38 , ("gDay", "Day")
39 , ("gMonth", "Text")
40 , ("gMonthDay", "Text")
41 , ("gYear", "Text")
42 , ("gYearMonth", "Text")
43 , ("hexBinary", "Text")
44 , ("NOTATION", "Text")
45 , ("QName", "Text")
46 , ("string", "Text")
47 , ("normalizedString", "Text")
48 , ("token", "Text")
49 , ("language", "Text")
50 , ("NCName", "Text")
51 , ("Entity", "Text")
52 , ("ID", "Text")
53 , ("IDREF", "Text")
54 , ("NMToken", "Text")
55 , ("time", "Text")
56 , ("duration", "Text")
57 ]
58 where
59 qualify (n, t) =
60 let
61 tn = TypeName
62 { tnName = t
63 , tnPrefixed = t
64 , tnQName = qname
65 }
66 qname = Xsd.QName (Just (Xsd.Namespace Xsd.schemaNamespace)) n
67 in (qname, tn)