[Home] [By Thread] [By Date] [Recent Entries]

  • From: Peter Hunsberger <peter.hunsberger@g...>
  • To: Hans-Juergen Rennau <hrennau@y...>, Michael Kay <mike@s...>
  • Date: Sat, 24 Jun 2017 04:08:51 +0000

I was going to mention the Scala implementation possibilities, glad to are aware of them. As well as the ability to use your own operators having implicit readers and writers makes Scala a joy for handling this kind of thing. They do require you to define the data model up front (at least the parts you care about) but once you have the classes defined usage becomes pretty trivial. You stop thinking about data formats, just direct usage as needed.

On Thu, Jun 22, 2017 at 8:33 AM Michael Kay <mike@s...> wrote:

(2) A great challenge - and perhaps a hopeless one - would be to create an expressiveness which could at least be a far cry of what XPath offers. It is strange to say
     N.walk(Axis.child("city")).flatMap(Axis.attribute("name").map(Node::stringValue)
when what you really want to say is
     city/@name


Excellent point. However, dropping into another language does have all sorts of disadvantages: apart from the learning issues, there's the lack of compile-time syntax checking and type checking, the cost of dynamic compilation/interpretation, etc.

One thing to look at, perhaps, is how it translates into Scala, where you can define your own operators:

A.flatMap(B)   -->   A/B

A.attribute(B)  -->   A @ B

etc; and then we start to have something very XPath-like, but with a syntax that's compiled and validated by the host language.

Michael Kay
Saxonica 

--
Peter Hunsberger


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member