Uploaded image for project: 'Daffodil'
  1. Daffodil
  2. DFDL-454

expressions pre-processor/compiler

XMLWordPrintableJSON

    • Icon: New Feature New Feature
    • Resolution: Fixed
    • Icon: Major Major
    • s15
    • s6
    • Back End, Front End
    • None

      Expressions in DFDL are not just XPath expressions. The meaning of expressions is in some ways different.

      In XPath it is legal to write a/b/nonsense where nonsense does not match any element name in the schema. In DFDL this should be a Schema Definition Error.

      In XPath it is legal to write expressions that are queries which return many nodes.
      In DFDL expressions must return exactly one thing - a simple type instance, or a single Node.

      Implementing this, but still using our existing XPath implementation requires that we preprocess the expressions, wrapping every sub-expression with a function call that checks that only one value is produced.

      Similar to fn:exactly-one in xpath, but causes a schema definition error if zero or more than one node are returned. We will want to use a daffodil-specific extension function daf:one(...) (or some other name) which has this behavior.

      At the same time we need to check that paths are meaningful. I.e., if a path says a/b/c, that inside element a it is possible to have a b, and inside b it is possible to have a c. At the same time one should check that the types of expressions are correct (the a/b/c checking is effectively type checking.. of complex types).

              jchab Jessie Chab
              mbeckerle.dfdl Mike Beckerle
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: