Export Internal structures for code generation in xsd-isogen

This commit is contained in:
Denis Redozubov 2019-10-10 12:13:24 +03:00
parent 3336f05c19
commit ce1fd04d7f
2 changed files with 3 additions and 46 deletions

View File

@ -131,62 +131,18 @@ import Data.Maybe (maybeToList, mapMaybe)
import Data.String import Data.String
import Data.THGen.Compat import Data.THGen.Compat
import Data.THGen.Enum import Data.THGen.Enum
import Data.THGen.XML.Internal
import qualified Data.Text as T import qualified Data.Text as T
import GHC.Generics (Generic) import GHC.Generics (Generic)
import qualified Language.Haskell.TH as TH import qualified Language.Haskell.TH as TH
import Prelude hiding ((+), (*), (^)) import Prelude hiding ((+), (*), (^))
import qualified Text.XML as X import qualified Text.XML as X
import Text.XML.DOM.Parser hiding (parseContent) import Text.XML.DOM.Parser hiding (parseContent)
import Text.XML.DOM.Parser.Internal.Content
import Text.XML.ParentAttributes import Text.XML.ParentAttributes
import qualified Text.XML.Writer as XW import qualified Text.XML.Writer as XW
import Text.XML.DOM.Parser.Internal.Content
data XmlFieldPlural
= XmlFieldPluralMandatory -- Occurs exactly 1 time (Identity)
| XmlFieldPluralOptional -- Occurs 0 or 1 times (Maybe)
| XmlFieldPluralRepeated -- Occurs 0 or more times (List)
| XmlFieldPluralMultiplied -- Occurs 1 or more times (NonEmpty)
data XmlAttributePlural
= XmlAttributePluralMandatory -- Occurs exactly 1 time (Identity)
| XmlAttributePluralOptional -- Occurs 0 or 1 times (Maybe)
data PrefixName = PrefixName String String
data IsoXmlDescPreField = IsoXmlDescPreField String TH.TypeQ
data IsoXmlDescPreAttribute = IsoXmlDescPreAttribute String TH.TypeQ
data IsoXmlDescPreContent = IsoXmlDescPreContent String TH.TypeQ
data IsoXmlDescField = IsoXmlDescField XmlFieldPlural String TH.TypeQ
data IsoXmlDescAttribute = IsoXmlDescAttribute XmlAttributePlural String TH.TypeQ
data IsoXmlDescContent = IsoXmlDescContent String TH.TypeQ
data IsoXmlDescRecordPart
= IsoXmlDescRecordField IsoXmlDescField
| IsoXmlDescRecordAttribute IsoXmlDescAttribute
| IsoXmlDescRecordContent IsoXmlDescContent
newtype IsoXmlDescRecord = IsoXmlDescRecord [IsoXmlDescRecordPart]
makePrisms ''IsoXmlDescRecord
data ExhaustivenessName = ExhaustivenessName String Exhaustiveness
newtype IsoXmlDescEnumCon
= IsoXmlDescEnumCon { unIsoXmlDescEnumCon :: String }
instance IsString IsoXmlDescEnumCon where
fromString = IsoXmlDescEnumCon
data IsoXmlDescEnum = IsoXmlDescEnum [IsoXmlDescEnumCon]
makePrisms ''IsoXmlDescEnum
appendField appendField
:: XmlFieldPlural :: XmlFieldPlural
-> IsoXmlDescRecord -> IsoXmlDescRecord

View File

@ -30,6 +30,7 @@ source-repository head
library library
exposed-modules: Data.THGen.Enum exposed-modules: Data.THGen.Enum
, Data.THGen.XML , Data.THGen.XML
, Data.THGen.XML.Internal
, Text.XML.ParentAttributes , Text.XML.ParentAttributes
other-modules: Data.THGen.Compat other-modules: Data.THGen.Compat
, Text.XML.DOM.Parser.Internal.Content , Text.XML.DOM.Parser.Internal.Content