From 3d40912942a4cc09339950e991da618644f268d7 Mon Sep 17 00:00:00 2001 From: Steffen Michels Date: Wed, 15 Apr 2020 12:25:56 +0200 Subject: [PATCH] add test with named entity references in text and attribute data --- src/libraries/OS-Independent/Text/GenXML.dcl | 4 ++-- src/libraries/OS-Independent/Text/GenXML/Gast.icl | 15 ++++++++++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/libraries/OS-Independent/Text/GenXML.dcl b/src/libraries/OS-Independent/Text/GenXML.dcl index be5609be..8a18798b 100644 --- a/src/libraries/OS-Independent/Text/GenXML.dcl +++ b/src/libraries/OS-Independent/Text/GenXML.dcl @@ -23,9 +23,9 @@ definition module Text.GenXML * nodesWithMergedConsecutiveText :: ![XMLNode] -> [XMLNode] * nodesWithMergedConsecutiveText [] = [] * nodesWithMergedConsecutiveText [XMLText text1, XMLText text2: rest] = - * nodesWithMergedConsecutiveText [XMLText $ text1 +++ text2: rest] + * nodesWithMergedConsecutiveText [XMLText $ text1 +++ text2: rest] * nodesWithMergedConsecutiveText [node: rest] = - * [nodeWithMergedConsecutiveText node: nodesWithMergedConsecutiveText rest] + * [nodeWithMergedConsecutiveText node: nodesWithMergedConsecutiveText rest] */ import StdOverloaded, StdGeneric, Data.Either diff --git a/src/libraries/OS-Independent/Text/GenXML/Gast.icl b/src/libraries/OS-Independent/Text/GenXML/Gast.icl index 0ab6beca..0a6af6ce 100644 --- a/src/libraries/OS-Independent/Text/GenXML/Gast.icl +++ b/src/libraries/OS-Independent/Text/GenXML/Gast.icl @@ -11,12 +11,17 @@ derive ggen XMLNode, XMLAttr // TODO: Generate URIs for namespaces, instead of using names. ggen{|XMLDoc|} st = - [ XMLDoc - (unNameString <$> defaultNamespace) - (bifmap unNameString unNameString <$> namespaces) - (XMLElem rootName rootAttrs rootChildren) - \\ (defaultNamespace, namespaces, rootName, rootAttrs, rootChildren) <- ggen{|*|} st + [ docWithNamedCharacterEntityReference + : [ XMLDoc + (unNameString <$> defaultNamespace) + (bifmap unNameString unNameString <$> namespaces) + (XMLElem rootName rootAttrs rootChildren) + \\ (defaultNamespace, namespaces, rootName, rootAttrs, rootChildren) <- ggen{|*|} st + ] ] +where + docWithNamedCharacterEntityReference = + XMLDoc Nothing [] (XMLElem (uname "someName") [XMLAttr (uname "attr") "< >\" '&"] [XMLText "\"& <>\""]) ggen{|XMLQName|} st = [XMLQName (unNameString <$> namespace) (unNameString name) \\ (namespace, name) <- ggen{|*|} st] -- GitLab