XQuery and Static Typing: Tackling the Problem of Backward Axes - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Conference Papers Year :

XQuery and Static Typing: Tackling the Problem of Backward Axes

Pierre Genevès
Nils Gesbert
  • Function : Author
  • PersonId : 958488


XQuery is a functional language dedicated to XML data querying and manipulation. As opposed to other W3C-standardized languages for XML (e.g. XSLT), it has been intended to feature strong static typing. Currently, however, some expressions of the language cannot be statically typed with any precision. We argue that this is due to a discrepancy between the semantics of the language and its type algebra: namely, the values of the language are (possibly inner) tree nodes, which may have siblings and ancestors in the data. The types on the other hand are regular tree types, as usual in the XML world: they describe sets of trees. The type associated to a node then corresponds to the subtree whose root is that node and contains no information about the rest of the data. This makes navigation expressions using `backward axes,' which return e.g. the siblings of a node, impossible to type. We discuss how to handle this discrepancy by improving the type system. We describe a logic-based language of extended types able to represent inner tree nodes and show how it can dramatically increase the precision of typing for navigation expressions. We describe how inclusion between these extended types and the classical regular tree types can be decided, allowing a hybrid system combining both type languages. The result is a net increase in precision of typing.
Fichier principal
Vignette du fichier
icfp2015.pdf (549.15 Ko) Télécharger le fichier
Origin : Files produced by the author(s)

Dates and versions

hal-01082635 , version 1 (18-11-2014)
hal-01082635 , version 2 (07-05-2015)
hal-01082635 , version 3 (29-12-2016)



Pierre Genevès, Nils Gesbert. XQuery and Static Typing: Tackling the Problem of Backward Axes. ICFP (International Conference on Functional Programming), ACM SIGPLAN, Aug 2015, Vancouver, Canada. ⟨10.1145/2784731.2784746⟩. ⟨hal-01082635v3⟩
448 View
782 Download



Gmail Facebook Twitter LinkedIn More