HaXml-1.24: Utilities for manipulating XML documents

Safe HaskellSafe-Inferred




Build Maps from :

XSD types become top-level types in Haskell.

XSD element decls also become top-level types in Haskell.

Element groups get their own Haskell types too.

Attributes and attribute groups do not become types, they are

Resolve element/attribute references by inlining their names.

data Environment Source




env_type :: Map QName (Either SimpleType ComplexType)

type definitions in scope

env_allTypes :: Map QName (Either SimpleType ComplexType)

all type definitions, regardless of scope

env_element :: Map QName ElementDecl
env_attribute :: Map QName AttributeDecl
env_group :: Map QName Group
env_attrgroup :: Map QName AttrGroup
env_namespace :: Map String String
env_extendty :: Map QName [(QName, FilePath)]

supertype -> subtypes

env_substGrp :: Map QName [(QName, FilePath)]

substitution groups

env_typeloc :: Map QName FilePath

where type is defined

emptyEnv :: EnvironmentSource

An empty environment of XSD type mappings.

combineEnv :: Environment -> Environment -> EnvironmentSource

Combine two environments (e.g. read from different interface files)

mkEnvironment :: FilePath -> Schema -> Environment -> EnvironmentSource

Build an environment of XSD type mappings from a schema module.

gatherImports :: Schema -> [(FilePath, Maybe String)]Source

Find all direct module dependencies.