@@ -392,7 +392,8 @@ isoXmlGenerateRecord (PrefixName strName' strPrefix') descRecordParts = do
392 XmlFieldPluralMandatory -> [e|id|]
392 XmlFieldPluralMandatory -> [e|id|]
393 _ -> [e|traverse|]
393 _ -> [e|traverse|]
394 exprFieldValue = [e|$(TH.varE fName) $(TH.varE objName)|]
394 exprFieldValue = [e|$(TH.varE fName) $(TH.varE objName)|]
395− exprFieldRender = [e|mkElement $exprFieldStrName|]
395+ exprFieldRender =
396+ [e|(\a -> XW.elementA $exprFieldStrName (toXmlParentAttributes a) a)|]
396 return [e|$exprForField $exprFieldRender $exprFieldValue|]
397 return [e|$exprForField $exprFieldRender $exprFieldValue|]
397 toXmlExpr
398 toXmlExpr
398 = TH.lamE [if null exprFields then TH.wildP else TH.varP objName]
399 = TH.lamE [if null exprFields then TH.wildP else TH.varP objName]
@@ -434,8 +435,5 @@ isoXmlGenerateRecord (PrefixName strName' strPrefix') descRecordParts = do
434 return $ [dataDecl] ++ lensDecls ++
435 return $ [dataDecl] ++ lensDecls ++
435 [fromDomInst, toXmlInst, toXmlParentAttributesInst]
436 [fromDomInst, toXmlInst, toXmlParentAttributesInst]
437−mkElement :: (XW.ToXML a, ToXmlParentAttributes a) => X.Name -> a -> XW.XML
438−mkElement name a = XW.elementA name (toXmlParentAttributes a) a
440distribPair :: Functor f => (a, f b) -> f (a, b)
438distribPair :: Functor f => (a, f b) -> f (a, b)
441distribPair (a, fb) = (a,) <$> fb
439distribPair (a, fb) = (a,) <$> fb