Hi Uwe > Hi Mads, > > > Replying to myself: > > > > > I think another example will clarify my point. The code: > > > > > > simpleXmlOne, simpleXmlTwo :: String > > > simpleXmlOne = "<a:Foo xmlns:a=\"http://foo.org\"/>" > > > simpleXmlTwo = "<b:Foo xmlns:b=\"http://foo.org\"/>" > > > > > > nsEnv :: [(String, String)] > > > nsEnv = [ ("notFoo" , "http://notfoo.org") ] > > > > > > evalXPath :: String -> [XmlTree] > > > evalXPath xml = > > > runLA ( xread > > > >>> propagateNamespaces > > > >>> getXPathTreesWithNsEnv nsEnv "//a:Foo" > > this line contains the problem: > > getXPathTreesWithNsEnv assumes, that for all prefixes used in the XPath expr, > the nsEnv contains an entry. Furthermore the default namespace > can be given by an entry for the empty prefix "". > > So you'll only get reasonable results, when nsEnv contains at least an entry > for "a", e.g. > > nsEnv = [ ("a", "http://x.y"), ... ] > > when you use the XPath expr "//a:Foo". > > You may argue, that in your example, an error should be raised by the XPath > parser, instead > of accepting "//a:Foo". But currently it's assumed, that > getXPathTreesWithNsEnv is used > only in an innocent way.
Yes, that was what I would have expected. > > Cheers, > > Uwe /Mads
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe