(define (extractor v p) (if (null? v) #f (p v))) ; (cadar-of ) (define-syntax extract (ir-macro-transformer (lambda (expr inject compare) (assert (pair? expr)) (let* ((extractor (second expr)) (proc (third expr)) ) ;(list 'quote `(lambda x (->* x (,proc) (extractor ,extractor))) ;) )))) ; Procedures to get the EntitiesDescriptor attributes ; - the metadata about the metadata ; *TOP* -> EntitiesDescriptor -> @ -> ... (define meta-meta (sxpath '(EntitiesDescriptor @))) (define meta-meta/validUntil (extract cadar (sxpath '(validUntil)))) (define idp-entites ;(sxpath '("EntitiesDescriptor/EntityDescriptor[IDPSSODescriptor]"))) (sxpath '(EntitiesDescriptor (EntityDescriptor(IDPSSODescriptor)))))