Skip to content

Instantly share code, notes, and snippets.

@pavan538
Created June 13, 2018 08:49
Show Gist options
  • Save pavan538/fa11dccea9df9a48947b60a369042f6f to your computer and use it in GitHub Desktop.
Save pavan538/fa11dccea9df9a48947b60a369042f6f to your computer and use it in GitHub Desktop.
xpath 3.1 examples

xpath 3.1 example

[
        for $result in //supplierAssortment
        return
        map {

           'articleCode': let $article_code := $result//articleCode/string()
                          return xs:integer($article_code),

           'logisticVariantCode': let $log_variant_code := $result//logisticVariantCode/string()
                                  return xs:integer($log_variant_code),

           'ProductAttribute' : let $product_attributes := [
                                           map{
                                                 'AttributeName': 'Supplier',
                                                 'AttributeValue': let $sup_code := $result//supplierCode/string()
                                                                              return xs:integer($sup_code),

                                                 'UPC': let $upc := concat(
                                                                    $result//articleCode/string(),
                                                                    format-number(
                                                                        let $sv := $result//logisticVariantCode/string()
                                                                          return xs:integer($sv),
                                                                        '000')
                                                                    )
                                                        return xs:integer($upc)
                                            },

                                           map{
                                                 'AttributeName': 'OrderableFrom',
                                                 'AttributeValue': let $orderable_from := $result//orderableFrom/string()
                                                                       return $orderable_from,

                                                 'UPC': let $upc := concat(
                                                                               $result//articleCode/string(),
                                                                               format-number(
                                                                                  let $sv := $result//logisticVariantCode/string()
                                                                                  return xs:integer($sv),
                                                                                  '000')
                                                                               )
                                                        return xs:integer($upc)
                                           },

                                           map{
                                                 'AttributeName': 'OrderableUntil',
                                                 'AttributeValue': let $orderable_until := $result//orderableUntil/string()
                                                                                                   return $orderable_until,

                                                 'UPC': let $upc := concat(
                                                                              $result//articleCode/string(),
                                                                              format-number(
                                                                                 let $sv := $result//logisticVariantCode/string()
                                                                                 return xs:integer($sv),
                                                                                 '000')
                                                                              )
                                                        return xs:integer($upc)
                                                 }

                                     ]
                     return $product_attributes

        }

      ]

raising an error

let $pd := array{//Batch/Item/Description/string()}
                             return
                             if(array:size($pd) > 0)
                                 then $pd(1)
                            else
                                error(QName('http://revionics.com/err', 'ProdDescReq'), 'ProductDescription missing.')

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment