Function: soap-sample-value-for-xs-complex-type

soap-sample-value-for-xs-complex-type is a byte-compiled function defined in soap-inspect.el.gz.

Signature

(soap-sample-value-for-xs-complex-type TYPE)

Documentation

Provide a sample value for TYPE, a soap-xs-complex-type.

This is a specialization of soap-sample-value for soap-xs-complex-type objects.

Source Code

;; Defined in /usr/src/emacs/lisp/net/soap-inspect.el.gz
(defun soap-sample-value-for-xs-complex-type (type)
  "Provide a sample value for TYPE, a `soap-xs-complex-type'.
This is a specialization of `soap-sample-value' for
`soap-xs-complex-type' objects."
  (append
   (mapcar #'soap-sample-value-for-xs-attribute
           (soap-xs-type-attributes type))
   (cl-case (soap-xs-complex-type-indicator type)
     (array
      (let* ((element-type (soap-xs-complex-type-base type))
             (sample1 (soap-sample-value element-type))
             (sample2 (soap-sample-value element-type)))
        ;; Our sample value is a vector of two elements, but any number of
        ;; elements are permissible
        (vector sample1 sample2 '&etc)))
     ((sequence choice all)
      (let ((base (soap-xs-complex-type-base type)))
        (let ((value (append (and base (soap-sample-value base))
                             (mapcar #'soap-sample-value
                                     (soap-xs-complex-type-elements type)))))
          (if (eq (soap-xs-complex-type-indicator type) 'choice)
              (cons '***choice-of*** value)
            value)))))))