hxt 9.1.2 → 9.1.3
raw patch · 11 files changed
+153/−98 lines, 11 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Text.XML.HXT.Arrow.Edit: addXHtmlDoctypeFrameset :: ArrowXml a => a XmlTree XmlTree
- Text.XML.HXT.Arrow.Edit: addXHtmlDoctypeStrict :: ArrowXml a => a XmlTree XmlTree
- Text.XML.HXT.Arrow.Edit: addXHtmlDoctypeTransitional :: ArrowXml a => a XmlTree XmlTree
- Text.XML.HXT.Arrow.ParserInterface: parseXmlDocEncodingSpec :: ArrowXml a => a XmlTree XmlTree
- Text.XML.HXT.Arrow.ParserInterface: parseXmlEntityEncodingSpec :: ArrowXml a => a XmlTree XmlTree
- Text.XML.HXT.Arrow.ParserInterface: removeEncodingSpec :: ArrowXml a => a XmlTree XmlTree
- Text.XML.HXT.Arrow.XmlOptions: a_accept_mimetypes :: String
- Text.XML.HXT.Arrow.XmlOptions: a_add_default_dtd :: String
- Text.XML.HXT.Arrow.XmlOptions: a_canonicalize :: String
- Text.XML.HXT.Arrow.XmlOptions: a_check_namespaces :: String
- Text.XML.HXT.Arrow.XmlOptions: a_collect_errors :: String
- Text.XML.HXT.Arrow.XmlOptions: a_default_baseuri :: String
- Text.XML.HXT.Arrow.XmlOptions: a_do_not_canonicalize :: String
- Text.XML.HXT.Arrow.XmlOptions: a_do_not_check_namespaces :: String
- Text.XML.HXT.Arrow.XmlOptions: a_do_not_issue_errors :: String
- Text.XML.HXT.Arrow.XmlOptions: a_do_not_issue_warnings :: String
- Text.XML.HXT.Arrow.XmlOptions: a_do_not_preserve_comment :: String
- Text.XML.HXT.Arrow.XmlOptions: a_do_not_remove_whitespace :: String
- Text.XML.HXT.Arrow.XmlOptions: a_do_not_validate :: String
- Text.XML.HXT.Arrow.XmlOptions: a_error :: String
- Text.XML.HXT.Arrow.XmlOptions: a_error_log :: String
- Text.XML.HXT.Arrow.XmlOptions: a_help :: String
- Text.XML.HXT.Arrow.XmlOptions: a_if_modified_since :: String
- Text.XML.HXT.Arrow.XmlOptions: a_if_unmodified_since :: String
- Text.XML.HXT.Arrow.XmlOptions: a_ignore_encoding_errors :: String
- Text.XML.HXT.Arrow.XmlOptions: a_ignore_none_xml_contents :: String
- Text.XML.HXT.Arrow.XmlOptions: a_indent :: String
- Text.XML.HXT.Arrow.XmlOptions: a_issue_errors :: String
- Text.XML.HXT.Arrow.XmlOptions: a_issue_warnings :: String
- Text.XML.HXT.Arrow.XmlOptions: a_mime_types :: String
- Text.XML.HXT.Arrow.XmlOptions: a_no_empty_elem_for :: String
- Text.XML.HXT.Arrow.XmlOptions: a_no_empty_elements :: String
- Text.XML.HXT.Arrow.XmlOptions: a_no_redirect :: String
- Text.XML.HXT.Arrow.XmlOptions: a_no_xml_pi :: String
- Text.XML.HXT.Arrow.XmlOptions: a_output_file :: String
- Text.XML.HXT.Arrow.XmlOptions: a_output_html :: String
- Text.XML.HXT.Arrow.XmlOptions: a_output_plain :: String
- Text.XML.HXT.Arrow.XmlOptions: a_output_xhtml :: String
- Text.XML.HXT.Arrow.XmlOptions: a_output_xml :: String
- Text.XML.HXT.Arrow.XmlOptions: a_parse_by_mimetype :: String
- Text.XML.HXT.Arrow.XmlOptions: a_parse_html :: String
- Text.XML.HXT.Arrow.XmlOptions: a_parse_xml :: String
- Text.XML.HXT.Arrow.XmlOptions: a_preserve_comment :: String
- Text.XML.HXT.Arrow.XmlOptions: a_proxy :: String
- Text.XML.HXT.Arrow.XmlOptions: a_redirect :: String
- Text.XML.HXT.Arrow.XmlOptions: a_remove_whitespace :: String
- Text.XML.HXT.Arrow.XmlOptions: a_show_haskell :: String
- Text.XML.HXT.Arrow.XmlOptions: a_show_tree :: String
- Text.XML.HXT.Arrow.XmlOptions: a_strict_input :: String
- Text.XML.HXT.Arrow.XmlOptions: a_text_mode :: String
- Text.XML.HXT.Arrow.XmlOptions: a_trace :: String
- Text.XML.HXT.Arrow.XmlOptions: a_validate :: String
- Text.XML.HXT.Arrow.XmlOptions: a_verbose :: String
- Text.XML.HXT.DOM.MimeTypes: application_xhtml :: String
- Text.XML.HXT.DOM.MimeTypes: application_xml :: String
- Text.XML.HXT.DOM.MimeTypes: application_xml_dtd :: String
- Text.XML.HXT.DOM.MimeTypes: application_xml_external_parsed_entity :: String
- Text.XML.HXT.DOM.MimeTypes: text_html :: String
- Text.XML.HXT.DOM.MimeTypes: text_pdf :: String
- Text.XML.HXT.DOM.MimeTypes: text_plain :: String
- Text.XML.HXT.DOM.MimeTypes: text_xdtd :: String
- Text.XML.HXT.DOM.MimeTypes: text_xml :: String
- Text.XML.HXT.DOM.MimeTypes: text_xml_external_parsed_entity :: String
- Text.XML.HXT.DOM.QualifiedName: nullXName :: XName
- Text.XML.HXT.DOM.QualifiedName: xmlNamespaceXName :: XName
- Text.XML.HXT.DOM.QualifiedName: xmlXName :: XName
- Text.XML.HXT.DOM.QualifiedName: xmlnsNamespaceXName :: XName
- Text.XML.HXT.DOM.QualifiedName: xmlnsXName :: XName
- Text.XML.HXT.DOM.XmlKeywords: a_column :: String
- Text.XML.HXT.DOM.XmlKeywords: a_contentLength :: String
- Text.XML.HXT.DOM.XmlKeywords: a_default :: String
- Text.XML.HXT.DOM.XmlKeywords: a_encoding :: String
- Text.XML.HXT.DOM.XmlKeywords: a_kind :: String
- Text.XML.HXT.DOM.XmlKeywords: a_line :: String
- Text.XML.HXT.DOM.XmlKeywords: a_modifier :: String
- Text.XML.HXT.DOM.XmlKeywords: a_module :: String
- Text.XML.HXT.DOM.XmlKeywords: a_name :: String
- Text.XML.HXT.DOM.XmlKeywords: a_output_encoding :: String
- Text.XML.HXT.DOM.XmlKeywords: a_peref :: String
- Text.XML.HXT.DOM.XmlKeywords: a_source :: String
- Text.XML.HXT.DOM.XmlKeywords: a_standalone :: String
- Text.XML.HXT.DOM.XmlKeywords: a_status :: String
- Text.XML.HXT.DOM.XmlKeywords: a_type :: String
- Text.XML.HXT.DOM.XmlKeywords: a_url :: String
- Text.XML.HXT.DOM.XmlKeywords: a_value :: String
- Text.XML.HXT.DOM.XmlKeywords: a_version :: String
- Text.XML.HXT.DOM.XmlKeywords: a_xml :: String
- Text.XML.HXT.DOM.XmlKeywords: a_xmlns :: String
- Text.XML.HXT.DOM.XmlKeywords: k_any :: String
- Text.XML.HXT.DOM.XmlKeywords: k_cdata :: String
- Text.XML.HXT.DOM.XmlKeywords: k_default :: String
- Text.XML.HXT.DOM.XmlKeywords: k_empty :: String
- Text.XML.HXT.DOM.XmlKeywords: k_entities :: String
- Text.XML.HXT.DOM.XmlKeywords: k_entity :: String
- Text.XML.HXT.DOM.XmlKeywords: k_enumeration :: String
- Text.XML.HXT.DOM.XmlKeywords: k_fixed :: String
- Text.XML.HXT.DOM.XmlKeywords: k_id :: String
- Text.XML.HXT.DOM.XmlKeywords: k_idref :: String
- Text.XML.HXT.DOM.XmlKeywords: k_idrefs :: String
- Text.XML.HXT.DOM.XmlKeywords: k_ignore :: String
- Text.XML.HXT.DOM.XmlKeywords: k_implied :: String
- Text.XML.HXT.DOM.XmlKeywords: k_include :: String
- Text.XML.HXT.DOM.XmlKeywords: k_ndata :: String
- Text.XML.HXT.DOM.XmlKeywords: k_nmtoken :: String
- Text.XML.HXT.DOM.XmlKeywords: k_nmtokens :: String
- Text.XML.HXT.DOM.XmlKeywords: k_notation :: String
- Text.XML.HXT.DOM.XmlKeywords: k_pcdata :: String
- Text.XML.HXT.DOM.XmlKeywords: k_peref :: String
- Text.XML.HXT.DOM.XmlKeywords: k_public :: String
- Text.XML.HXT.DOM.XmlKeywords: k_required :: String
- Text.XML.HXT.DOM.XmlKeywords: k_system :: String
- Text.XML.HXT.DOM.XmlKeywords: t_root :: String
- Text.XML.HXT.DOM.XmlKeywords: t_xml :: String
- Text.XML.HXT.DOM.XmlKeywords: transferDefaultURI :: String
- Text.XML.HXT.DOM.XmlKeywords: transferEncoding :: String
- Text.XML.HXT.DOM.XmlKeywords: transferMessage :: String
- Text.XML.HXT.DOM.XmlKeywords: transferMimeType :: String
- Text.XML.HXT.DOM.XmlKeywords: transferPrefix :: String
- Text.XML.HXT.DOM.XmlKeywords: transferProtocol :: String
- Text.XML.HXT.DOM.XmlKeywords: transferStatus :: String
- Text.XML.HXT.DOM.XmlKeywords: transferURI :: String
- Text.XML.HXT.DOM.XmlKeywords: transferVersion :: String
- Text.XML.HXT.DOM.XmlKeywords: v_0 :: String
- Text.XML.HXT.DOM.XmlKeywords: v_1 :: String
- Text.XML.HXT.DOM.XmlKeywords: v_2 :: String
- Text.XML.HXT.DOM.XmlKeywords: v_any :: String
- Text.XML.HXT.DOM.XmlKeywords: v_children :: String
- Text.XML.HXT.DOM.XmlKeywords: v_choice :: String
- Text.XML.HXT.DOM.XmlKeywords: v_empty :: String
- Text.XML.HXT.DOM.XmlKeywords: v_mixed :: String
- Text.XML.HXT.DOM.XmlKeywords: v_no :: String
- Text.XML.HXT.DOM.XmlKeywords: v_null :: String
- Text.XML.HXT.DOM.XmlKeywords: v_option :: String
- Text.XML.HXT.DOM.XmlKeywords: v_pcdata :: String
- Text.XML.HXT.DOM.XmlKeywords: v_plus :: String
- Text.XML.HXT.DOM.XmlKeywords: v_seq :: String
- Text.XML.HXT.DOM.XmlKeywords: v_star :: String
- Text.XML.HXT.DOM.XmlKeywords: v_yes :: String
- Text.XML.HXT.DTDValidation.TypeDefs: dtd_default :: Attributes -> String
- Text.XML.HXT.DTDValidation.TypeDefs: dtd_kind :: Attributes -> String
- Text.XML.HXT.DTDValidation.TypeDefs: dtd_modifier :: Attributes -> String
- Text.XML.HXT.DTDValidation.TypeDefs: dtd_name :: Attributes -> String
- Text.XML.HXT.DTDValidation.TypeDefs: dtd_type :: Attributes -> String
- Text.XML.HXT.DTDValidation.TypeDefs: dtd_value :: Attributes -> String
- Text.XML.HXT.Parser.XmlTokenParser: amp :: XParser s ()
- Text.XML.HXT.Parser.XmlTokenParser: bar :: XParser s ()
- Text.XML.HXT.Parser.XmlTokenParser: comma :: XParser s ()
- Text.XML.HXT.Parser.XmlTokenParser: dq :: XParser s ()
- Text.XML.HXT.Parser.XmlTokenParser: eq :: XParser s ()
- Text.XML.HXT.Parser.XmlTokenParser: gt :: XParser s ()
- Text.XML.HXT.Parser.XmlTokenParser: lpar :: XParser s ()
- Text.XML.HXT.Parser.XmlTokenParser: lt :: XParser s ()
- Text.XML.HXT.Parser.XmlTokenParser: rpar :: XParser s ()
- Text.XML.HXT.Parser.XmlTokenParser: semi :: XParser s ()
- Text.XML.HXT.Parser.XmlTokenParser: sq :: XParser s ()
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_ENTITIES :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_ENTITY :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_ID :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_IDREF :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_IDREFS :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_NCName :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_NMTOKEN :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_NMTOKENS :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_NOTATION :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_Name :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_QName :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_anyURI :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_base64Binary :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_byte :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_decimal :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_enumeration :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_fractionDigits :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_hexBinary :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_int :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_integer :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_language :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_length :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_long :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_maxExclusive :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_maxInclusive :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_maxLength :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_minExclusive :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_minInclusive :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_minLength :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_negativeInteger :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_nonNegativeInteger :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_nonPositiveInteger :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_normalizedString :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_pattern :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_positiveInteger :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_short :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_string :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_token :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_totalDigits :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_unsignedByte :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_unsignedInt :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_unsignedLong :: String
- Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_unsignedShort :: String
+ Text.XML.HXT.Arrow.Edit: addXHtmlDoctypeStrict, addXHtmlDoctypeFrameset, addXHtmlDoctypeTransitional :: ArrowXml a => a XmlTree XmlTree
+ Text.XML.HXT.Arrow.Edit: substAllXHTMLEntityRefs :: ArrowXml a => a XmlTree XmlTree
+ Text.XML.HXT.Arrow.Edit: substXHTMLEntityRef :: LA XmlTree XmlTree
+ Text.XML.HXT.Arrow.ParserInterface: parseXmlEntityEncodingSpec, removeEncodingSpec, parseXmlDocEncodingSpec :: ArrowXml a => a XmlTree XmlTree
+ Text.XML.HXT.Arrow.XmlOptions: a_accept_mimetypes, a_verbose, a_validate, a_trace, a_text_mode, a_subst_html_entities, a_subst_dtd_entities, a_strict_input, a_show_tree, a_show_haskell, a_remove_whitespace, a_redirect, a_proxy, a_preserve_comment, a_parse_xml, a_parse_html, a_parse_by_mimetype, a_output_plain, a_output_xhtml, a_output_html, a_output_xml, a_output_file, a_no_xml_pi, a_no_redirect, a_no_empty_elem_for, a_no_empty_elements, a_mime_types, a_issue_warnings, a_issue_errors, a_indent, a_ignore_none_xml_contents, a_ignore_encoding_errors, a_if_unmodified_since, a_if_modified_since, a_help, a_error_log, a_error, a_do_not_validate, a_do_not_subst_html_entities, a_do_not_subst_dtd_entities, a_do_not_remove_whitespace, a_do_not_preserve_comment, a_do_not_issue_warnings, a_do_not_issue_errors, a_do_not_check_namespaces, a_do_not_canonicalize, a_default_baseuri, a_collect_errors, a_check_namespaces, a_canonicalize, a_add_default_dtd :: String
+ Text.XML.HXT.Arrow.XmlState.SystemConfig: withSubstDTDEntities :: Bool -> SysConfig
+ Text.XML.HXT.Arrow.XmlState.SystemConfig: withSubstHTMLEntities :: Bool -> SysConfig
+ Text.XML.HXT.Arrow.XmlState.TypeDefs: theSubstDTDEntities :: Selector XIOSysState Bool
+ Text.XML.HXT.Arrow.XmlState.TypeDefs: theSubstHTMLEntities :: Selector XIOSysState Bool
+ Text.XML.HXT.Arrow.XmlState.TypeDefs: xioSubstDTDEntities :: XIOParseConfig -> !Bool
+ Text.XML.HXT.Arrow.XmlState.TypeDefs: xioSubstHTMLEntities :: XIOParseConfig -> !Bool
+ Text.XML.HXT.DOM.MimeTypes: application_xhtml, text_xml_external_parsed_entity, text_xml, text_xdtd, text_plain, text_pdf, text_html, application_xml_dtd, application_xml_external_parsed_entity, application_xml :: String
+ Text.XML.HXT.DOM.QualifiedName: nullXName, xmlXName, xmlNamespaceXName, xmlnsXName, xmlnsNamespaceXName :: XName
+ Text.XML.HXT.DOM.XmlKeywords: a_default, a_xmlns, a_xml, a_version, a_value, a_url, a_type, a_standalone, a_status, a_source, a_peref, a_output_encoding, a_name, a_modifier, a_module, a_line, a_kind, a_encoding, a_column, a_contentLength :: String
+ Text.XML.HXT.DOM.XmlKeywords: k_any, k_default, k_required, k_pcdata, k_notation, k_ndata, k_implied, k_fixed, k_enumeration, k_system, k_public, k_peref, k_nmtokens, k_nmtoken, k_ignore, k_include, k_idrefs, k_idref, k_id, k_entities, k_entity, k_empty, k_cdata :: String
+ Text.XML.HXT.DOM.XmlKeywords: t_xml, t_root :: String
+ Text.XML.HXT.DOM.XmlKeywords: transferPrefix, transferVersion, transferMessage, transferStatus, transferDefaultURI, transferURI, transferEncoding, transferMimeType, transferProtocol :: String
+ Text.XML.HXT.DOM.XmlKeywords: v_0, v_plus, v_star, v_pcdata, v_option, v_null, v_seq, v_mixed, v_empty, v_choice, v_children, v_any, v_no, v_yes, v_2, v_1 :: String
+ Text.XML.HXT.DTDValidation.TypeDefs: dtd_name, dtd_default, dtd_modifier, dtd_kind, dtd_type, dtd_value :: Attributes -> String
+ Text.XML.HXT.Parser.XmlTokenParser: bar, rpar, lpar, eq, comma :: XParser s ()
+ Text.XML.HXT.Parser.XmlTokenParser: dq, amp, semi, gt, lt, sq :: XParser s ()
+ Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_length, xsd_enumeration, xsd_pattern, xsd_fractionDigits, xsd_totalDigits, xsd_minInclusive, xsd_maxInclusive, xsd_minExclusive, xsd_maxExclusive, xsd_minLength, xsd_maxLength :: String
+ Text.XML.HXT.XMLSchema.DataTypeLibW3CNames: xsd_string, xsd_unsignedByte, xsd_unsignedShort, xsd_unsignedInt, xsd_unsignedLong, xsd_byte, xsd_short, xsd_int, xsd_long, xsd_positiveInteger, xsd_nonNegativeInteger, xsd_negativeInteger, xsd_nonPositiveInteger, xsd_integer, xsd_decimal, xsd_base64Binary, xsd_hexBinary, xsd_NOTATION, xsd_QName, xsd_anyURI, xsd_ENTITIES, xsd_ENTITY, xsd_IDREFS, xsd_IDREF, xsd_ID, xsd_NCName, xsd_Name, xsd_NMTOKENS, xsd_NMTOKEN, xsd_language, xsd_token, xsd_normalizedString :: String
- Text.XML.HXT.Arrow.ProcessDocument: parseXmlDocument :: Bool -> IOStateArrow s XmlTree XmlTree
+ Text.XML.HXT.Arrow.ProcessDocument: parseXmlDocument :: Bool -> Bool -> Bool -> Bool -> IOStateArrow s XmlTree XmlTree
- Text.XML.HXT.Arrow.XmlState.TypeDefs: XIOPcfg :: MimeTypeTable -> String -> [String] -> String -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> IOSArrow XmlTree XmlTree -> !Bool -> IOSArrow XmlTree XmlTree -> XIOParseConfig
+ Text.XML.HXT.Arrow.XmlState.TypeDefs: XIOPcfg :: MimeTypeTable -> String -> [String] -> String -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> !Bool -> IOSArrow XmlTree XmlTree -> !Bool -> IOSArrow XmlTree XmlTree -> XIOParseConfig
Files
- examples/xhtml/tmp.xml +1/−1
- hxt.cabal +1/−1
- src/Data/Function/Selector.hs +0/−48
- src/Text/XML/HXT/Arrow/Edit.hs +33/−28
- src/Text/XML/HXT/Arrow/ProcessDocument.hs +33/−13
- src/Text/XML/HXT/Arrow/ReadDocument.hs +39/−5
- src/Text/XML/HXT/Arrow/XmlOptions.hs +12/−0
- src/Text/XML/HXT/Arrow/XmlState/RunIOStateArrow.hs +2/−0
- src/Text/XML/HXT/Arrow/XmlState/SystemConfig.hs +15/−1
- src/Text/XML/HXT/Arrow/XmlState/TypeDefs.hs +16/−0
- src/Text/XML/HXT/DOM/XmlNode.hs +1/−1
examples/xhtml/tmp.xml view
@@ -1,4 +1,4 @@ <!DOCTYPE html SYSTEM "xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">-<head><title/></head><body/>+<head><title>Ä</title></head><body/> </html>
hxt.cabal view
@@ -1,6 +1,6 @@ -- arch-tag: Haskell XML Toolbox main description file Name: hxt-Version: 9.1.2+Version: 9.1.3 Synopsis: A collection of tools for processing XML with Haskell. Description: The Haskell XML Toolbox bases on the ideas of HaXml and HXML, but introduces a more general approach for processing XML with Haskell.
src/Data/Function/Selector.hs view
@@ -58,54 +58,6 @@ } -- --------------------------------------------------------------- TODO: delete theses-{--subS :: Selector b c -> Selector a b -> Selector a c-subS = (.)--pairS :: Selector s a -> Selector s b -> Selector s (a, b)-pairS = (.&&&.)--chgS :: Selector s a -> (a -> a) -> (s -> s)-chgS = update--putS :: Selector s a -> a -> (s -> s)-putS = setS---}--- -------------------------------------------------------------{--type Selector s a = (s -> a, a -> s -> s)--subS :: Selector b c -> Selector a b -> Selector a c-subS (g2, s2) (g1, s1) = ( g2 . g1- , s1s2- )- where- s1s2 x s = s'- where- x1 = g1 s- x1' = s2 x x1- s' = s1 x1' s--pairS :: Selector s a -> Selector s b -> Selector s (a, b)-pairS (g1, s1) (g2, s2) = ( g1 &&& g2- , \ (x, y) -> s2 y . s1 x- )--chgS :: Selector s a -> (a -> a) -> (s -> s)-chgS (g, s) f x = s (f (g x)) x--getS :: Selector s a -> s -> a-getS = fst -- getS (g, _s) x = g x--putS :: Selector s a -> a -> (s -> s)-putS s v = chgS s (const v)--idS :: Selector s s-idS = (id, const)--}--- ------------------------------------------------------------ -- | Selectors for pairs and 3-tuples: comp1, comp2, comp3, -- this can be extended to n-tuples
src/Text/XML/HXT/Arrow/Edit.hs view
@@ -46,6 +46,9 @@ , transfCharRef , transfAllCharRef + , substAllXHTMLEntityRefs+ , substXHTMLEntityRef+ , rememberDTDAttrl , addDefaultDTDecl @@ -112,32 +115,7 @@ ) >>> canonicalizeNodes toBeRemoved-{--canonicalize1Node :: LA XmlTree XmlTree -> LA XmlTree XmlTree-canonicalize1Node toBeRemoved- = choiceA- [ toBeRemoved :-> none- , isElem :-> ( processAttrl- ( processChildren transfCharRef- >>>- collapseXText' -- combine text in attribute values- )- >>>- collapseXText' -- combine text in content- )- , isCharRef :-> ( getCharRef- >>>- arr (\ i -> [toEnum i])- >>>- mkText- )- , isCdata :-> ( getCdata- >>>- mkText- )- , this :-> this- ]--}+ canonicalizeNodes :: LA XmlTree XmlTree -> LA XmlTree XmlTree canonicalizeNodes toBeRemoved = editNTreeA $@@ -263,8 +241,10 @@ -- | apply an arrow to the input and convert the resulting XML trees into an XML escaped string ----- This is a save variant for converting a tree into an XML string representation that is parsable with 'Text.XML.HXT.Arrow.ReadDocument'.--- It is implemented with 'Text.XML.HXT.Arrow.XmlArrow.xshow', but xshow does no XML escaping. The XML escaping is done with+-- This is a save variant for converting a tree into an XML string representation+-- that is parsable with 'Text.XML.HXT.Arrow.ReadDocument'.+-- It is implemented with 'Text.XML.HXT.Arrow.XmlArrow.xshow',+-- but xshow does no XML escaping. The XML escaping is done with -- 'Text.XML.HXT.Arrow.Edit.escapeXmlDoc' before xshow is applied. -- -- So the following law holds@@ -290,6 +270,31 @@ buildEntityRefTable :: [(String, Int)] -> EntityRefTable buildEntityRefTable = M.fromList . map (\ (x,y) -> (y,x) )++type EntitySubstTable = M.Map String String++xhtmlEntitySubstTable :: EntitySubstTable+xhtmlEntitySubstTable = M.fromList . map (second $ (:[]) . toEnum) $ xhtmlEntities++-- ------------------------------------------------------------++substXHTMLEntityRef :: LA XmlTree XmlTree+substXHTMLEntityRef+ = ( getEntityRef+ >>>+ arrL subst+ >>>+ mkText+ )+ `orElse` this+ where+ subst name+ = maybe [] (:[]) $ M.lookup name xhtmlEntitySubstTable++substAllXHTMLEntityRefs :: ArrowXml a => a XmlTree XmlTree+substAllXHTMLEntityRefs+ = fromLA $+ processBottomUp substXHTMLEntityRef -- ------------------------------------------------------------
src/Text/XML/HXT/Arrow/ProcessDocument.hs view
@@ -45,6 +45,7 @@ ) import Text.XML.HXT.Arrow.Edit ( transfAllCharRef+ , substAllXHTMLEntityRefs ) import Text.XML.HXT.Arrow.GeneralEntitySubstitution@@ -87,8 +88,8 @@ This parser is useful for applications processing correct XML documents. -} -parseXmlDocument :: Bool -> IOStateArrow s XmlTree XmlTree-parseXmlDocument validate'+parseXmlDocument :: Bool -> Bool -> Bool -> Bool -> IOStateArrow s XmlTree XmlTree+parseXmlDocument validateD substDTD substHTML validateRX = ( replaceChildren ( ( getAttrValue a_source &&& xshow getChildren@@ -102,22 +103,17 @@ setDocumentStatusFromSystemState "parse XML document" >>> ( ifA (fromLA getDTDSubset)- ( processDTD- >>>- ( processGeneralEntities -- DTD contains general entity definitions- `when`- fromLA generalEntitiesDefined- )- >>>- transfAllCharRef+ ( processDTDandEntities >>> ( if validate' -- validation only possible if DTD there then validateDocument else this ) )- ( if validate' -- validation only consists of checking for undefined entity refs- -- predefined XML entity refs are substituted in the XML parser into char refs+ ( if validate' -- validation only consists of checking+ -- for undefined entity refs+ -- predefined XML entity refs are substituted+ -- in the XML parser into char refs -- so there is no need for an entity substitution then traceMsg 2 "checkUndefinedEntityRefs: looking for undefined entity refs" >>>@@ -131,7 +127,28 @@ ) ) `when` documentStatusOk+ where+ validate'+ = validateD && not validateRX + processDTDandEntities+ = ( if validateD || substDTD+ then processDTD+ else this+ )+ >>>+ ( if substDTD+ then ( processGeneralEntities -- DTD contains general entity definitions+ `when`+ fromLA generalEntitiesDefined+ )+ else if substHTML+ then substAllXHTMLEntityRefs+ else this+ )+ >>>+ transfAllCharRef+ checkUndefinedEntityRefs :: IOStateArrow s XmlTree XmlTree checkUndefinedEntityRefs = deep isEntityRef@@ -170,7 +187,10 @@ parseHtmlDocument :: IOStateArrow s XmlTree XmlTree parseHtmlDocument- = ( perform ( getAttrValue a_source >>> traceValue 1 (("parseHtmlDoc: parse HTML document " ++) . show) )+ = ( perform ( getAttrValue a_source+ >>>+ traceValue 1 (("parseHtmlDoc: parse HTML document " ++) . show)+ ) >>> ( parseHtml $< getSysVar (theTagSoup .&&&. theExpat) ) >>>
src/Text/XML/HXT/Arrow/ReadDocument.hs view
@@ -59,6 +59,20 @@ - @withValidate yes\/no@ : switch on\/off DTD validation. Only for XML parsed documents, not for HTML parsing. +- @withSubstDTDEntities yes\/no@ :+ switch on\/off entity substitution for general entities defined in DTD validation.+ Default is @yes@.+ Switching this option and the validation off can lead to faster parsing, in that case+ reading the DTD documents is not longer necessary.+ Only used with XML parsed documents, not with HTML parsing.++- @withSubstHTMLEntities yes\/no@ :+ switch on\/off entity substitution for general entities defined in HTML validation.+ Default is @no@.+ Switching this option on and the validation and substDTDEntities off can lead to faster parsing, in that case+ reading the DTD documents is not longer necessary, HTML general entities are still substituted.+ Only used with XML parsed documents, not with HTML parsing.+ - @withParseHTML yes\/no@ : switch on HTML parsing. @@ -151,10 +165,28 @@ > , withHTTP [] > ] "http://www.w3c.org/" -read w3c home page (xhtml), validate and check namespaces, remove whitespace between tags, trace activities with level 2.+read w3c home page (xhtml), validate and check namespaces, remove whitespace between tags,+trace activities with level 2. HTTP access is done with Haskell HTTP package -for minimal complete examples see 'Text.XML.HXT.Arrow.WriteDocument.writeDocument' and 'runX', the main starting point for running an XML arrow.+> readDocument [ withValidate no+> , withSubstDTDEntities no+> ...+> ] "http://www.w3c.org/"++read w3c home page (xhtml), but without accessing the DTD given in that document.+Only the predefined XML general entity refs are substituted.++> readDocument [ withValidate no+> , withSubstDTDEntities no+> , withSubstHTMLEntities yes+> ...+> ] "http://www.w3c.org/"++same as above, but with substituion of all general entity refs defined in XHTML.++for minimal complete examples see 'Text.XML.HXT.Arrow.WriteDocument.writeDocument'+and 'runX', the main starting point for running an XML arrow. -} readDocument :: SysConfigList -> String -> IOStateArrow s b XmlTree@@ -205,8 +237,10 @@ >>> ( if isAcceptedMimeType acceptedMimeTypes mimeType then ( ifA (fromLA hasEmptyBody)- ( replaceChildren none ) -- empty response, e.g. in if-modified-since request+ ( replaceChildren none ) -- empty response, e.g. in if-modified-since request ( ( parse $< getSysVar (theValidate .&&&.+ theSubstDTDEntities .&&&.+ theSubstHTMLEntities .&&&. theIgnoreNoneXmlContents .&&&. theTagSoup .&&&. theExpat@@ -272,7 +306,7 @@ (mi == mis || mis == "*") ) || r- parse (validate, (removeNoneXml, (withTagSoup', withExpat')))+ parse (validate, (substDTD, (substHTML, (removeNoneXml, (withTagSoup', withExpat'))))) | not isXmlOrHtml = if removeNoneXml then replaceChildren none -- don't parse, if mime type is not XML nor HTML else this -- but remove contents when option is set@@ -285,7 +319,7 @@ | isXml = if withExpat' then parseXmlDocumentWithExpat- else parseXmlDocument (not validateWithRelax && validate)+ else parseXmlDocument validate substDTD substHTML validateWithRelax -- parse as XML | otherwise = this -- suppress warning
src/Text/XML/HXT/Arrow/XmlOptions.hs view
@@ -63,6 +63,10 @@ , Option "Q" [a_do_not_issue_warnings] (NoArg (withWarnings False)) "ignore warnings, when parsing HTML" , Option "" [a_validate] (NoArg (withValidate True)) "document validation when parsing XML (default)" , Option "w" [a_do_not_validate] (NoArg (withValidate False)) "only wellformed check, no validation"+ , Option "" [a_subst_dtd_entities] (NoArg (withSubstDTDEntities True)) "entities defined in DTD are substituted when parsing XML (default)"+ , Option "" [a_do_not_subst_dtd_entities] (NoArg (withSubstDTDEntities False)) "entities defined in DTD are NOT substituted when parsing XML"+ , Option "" [a_subst_html_entities] (NoArg (withSubstHTMLEntities True)) "entities defined in XHTML are substituted when parsing XML, only in effect when prev. option is switched off"+ , Option "" [a_do_not_subst_html_entities] (NoArg (withSubstHTMLEntities False)) "only entities predefined in XML are substituted when parsing XML (default)" , Option "" [a_canonicalize] (NoArg (withCanonicalize True)) "canonicalize document, remove DTD, comment, transform CDATA, CharRef's, ... (default)" , Option "c" [a_do_not_canonicalize] (NoArg (withCanonicalize False)) "do not canonicalize document, don't remove DTD, comment, don't transform CDATA, CharRef's, ..." , Option "C" [a_preserve_comment] (NoArg (withPreserveComment True)) "don't remove comments during canonicalisation"@@ -142,6 +146,8 @@ a_do_not_issue_warnings, a_do_not_preserve_comment, a_do_not_remove_whitespace,+ a_do_not_subst_dtd_entities,+ a_do_not_subst_html_entities, a_do_not_validate, a_error, a_error_log,@@ -173,6 +179,8 @@ a_show_haskell, a_show_tree, a_strict_input,+ a_subst_dtd_entities,+ a_subst_html_entities, a_text_mode, a_trace, a_validate,@@ -190,6 +198,8 @@ a_do_not_issue_warnings = "do-not-issue-warnings" a_do_not_preserve_comment = "do-not-preserve-comment" a_do_not_remove_whitespace = "do-not-remove-whitespace"+a_do_not_subst_dtd_entities = "do-not-subst-dtd-entities"+a_do_not_subst_html_entities = "do-not-subst-html-entities" a_do_not_validate = "do-not-validate" a_error = "error" a_error_log = "errorLog"@@ -221,6 +231,8 @@ a_show_haskell = "show-haskell" a_show_tree = "show-tree" a_strict_input = "strict-input"+a_subst_dtd_entities = "subst-dtd-entities"+a_subst_html_entities = "subst-html-entities" a_text_mode = "text-mode" a_trace = "trace" a_validate = "validate"
src/Text/XML/HXT/Arrow/XmlState/RunIOStateArrow.hs view
@@ -122,6 +122,8 @@ , xioTagSoup = False , xioPreserveComment = False , xioValidate = True+ , xioSubstDTDEntities = True+ , xioSubstHTMLEntities = False , xioCheckNamespaces = False , xioCanonicalize = True , xioIgnoreNoneXmlContents = False
src/Text/XML/HXT/Arrow/XmlState/SystemConfig.hs view
@@ -99,10 +99,24 @@ withParseHTML :: Bool -> SysConfig withParseHTML = setS theParseHTML --- | @withValidate yes/no@: read option, validate document againsd DTD, default is 'yes'+-- | @withValidate yes/no@: read option, validate document against DTD, default is 'yes' withValidate :: Bool -> SysConfig withValidate = setS theValidate++-- | @withSubstDTDEntities yes/no@: read option, substitute general entities defined in DTD, default is 'yes'.+-- switching this option and the validate option off can lead to faster parsing, because then+-- there is no need to access the DTD++withSubstDTDEntities :: Bool -> SysConfig+withSubstDTDEntities = setS theSubstDTDEntities++-- | @withSubstHTMLEntities yes/no@: read option, substitute general entities defined in HTML DTD, default is 'no'.+-- switching this option on and the substDTDEntities and validate options off can lead to faster parsing+-- because there is no need to access a DTD, but still the HTML general entities are substituted++withSubstHTMLEntities :: Bool -> SysConfig+withSubstHTMLEntities = setS theSubstHTMLEntities -- | @withCheckNamespaces yes/no@: read option, check namespaces, default is 'no'
src/Text/XML/HXT/Arrow/XmlState/TypeDefs.hs view
@@ -202,6 +202,8 @@ , xioLowerCaseNames :: ! Bool , xioPreserveComment :: ! Bool , xioValidate :: ! Bool+ , xioSubstDTDEntities :: ! Bool+ , xioSubstHTMLEntities :: ! Bool , xioCheckNamespaces :: ! Bool , xioCanonicalize :: ! Bool , xioIgnoreNoneXmlContents :: ! Bool@@ -632,6 +634,20 @@ >>> S { getS = xioValidate , setS = \ x s -> s { xioValidate = x }+ }++theSubstDTDEntities :: Selector XIOSysState Bool+theSubstDTDEntities = theParseConfig+ >>>+ S { getS = xioSubstDTDEntities+ , setS = \ x s -> s { xioSubstDTDEntities = x }+ }++theSubstHTMLEntities :: Selector XIOSysState Bool+theSubstHTMLEntities = theParseConfig+ >>>+ S { getS = xioSubstHTMLEntities+ , setS = \ x s -> s { xioSubstHTMLEntities = x } } theCheckNamespaces :: Selector XIOSysState Bool
src/Text/XML/HXT/DOM/XmlNode.hs view
@@ -304,7 +304,7 @@ {-# INLINE changeAttrName #-} changePiName cf (XPi n al) = XPi (cf n) al- changePiName _ _ = error "changeAttrName undefined"+ changePiName _ _ = error "changePiName undefined" {-# INLINE changePiName #-} changeDTDAttrl cf (XDTD p al) = XDTD p (cf al)