HaXml-1.25.5: Utilities for manipulating XML documents

Safe Haskell | Safe
Language | Haskell98

Text.XML.HaXml.Schema.NameConversion

Description

A type model for Haskell datatypes that bears a reasonable correspondence to the XSD type model.

Synopsis

- data NameConverter = NameConverter {
  - modid :: XName -> HName
  - conid :: XName -> HName
  - varid :: XName -> HName
  - unqconid :: XName -> HName
  - unqvarid :: XName -> HName
  - fwdconid :: XName -> HName
  - fieldid :: XName -> XName -> HName
  }
- newtype HName = HName String
- newtype XName = XName QName
- simpleNameConverter :: NameConverter
- escape :: Char -> Char
- avoidKeywords :: String -> String
- fpml :: String -> String
- wordsBy :: (a -> Bool) -> [a] -> [[a]]
- basename :: String -> String -> String
- fpmlNameConverter :: NameConverter

# Documentation

data NameConverter #

A NameConverter is a collection of functions that convert an XName into an HName, for various Haskell namespaces. You can define your own arbitrary resolver, but should ensure that you abide by the Haskell rules for conid, varid, etc.

Constructors

NameConverter |

Fields

- modid :: XName -> HName
- conid :: XName -> HName
- varid :: XName -> HName
- unqconid :: XName -> HName
- unqvarid :: XName -> HName
- fwdconid :: XName -> HName

  for forward type decls

- fieldid :: XName -> XName -> HName

newtype HName #

An HName is a resolved version of an XName. It should conform to the various namespace rules, and may already include a module qualifier if appropriate.

Constructors

HName String |

Instances

Show HName # |
Instance details Defined in Text.XML.HaXml.Schema.NameConversion Methods showsPrec :: Int -> HName -> ShowS # show :: HName -> String # showList :: [HName] -> ShowS #

newtype XName #

An XName just holds the original XSD qualified name. It does not ensure that the string conforms to any rules of the various Haskell namespaces. Use a NameConverter to define how you would like names to be mangled.

Constructors

XName QName |

Instances

Eq XName # |
Instance details Defined in Text.XML.HaXml.Schema.NameConversion Methods (==) :: XName -> XName -> Bool # (/=) :: XName -> XName -> Bool #
Show XName # |
Instance details Defined in Text.XML.HaXml.Schema.NameConversion Methods showsPrec :: Int -> XName -> ShowS # show :: XName -> String # showList :: [XName] -> ShowS #

simpleNameConverter :: NameConverter #

A simple default set of rules for resolving XNames into HNames.

escape :: Char -> Char #

Character escapes to create a valid Haskell identifier.

avoidKeywords :: String -> String #

Ensure that a string does not match a Haskell keyword.

fpml :: String -> String #

A specialised module-name converter for FpML module names with multiple dashes, including version numbers, e.g. fpml-dividend-swaps-4-7.xsd becomes FpML.V47.Swaps.Dividend but fpml-posttrade-execution-4-7.xsd becomes FpML.V47.PostTrade.Execution

wordsBy :: (a -> Bool) -> [a] -> [[a]] #

Chop a list into segments, at separators identified by the predicate. The separator items are discarded.

basename :: String -> String -> String #

Remove any prefix directory names, and given suffix extension.

fpmlNameConverter :: NameConverter #