Function: soap-xs-parse-attribute-group

soap-xs-parse-attribute-group is a byte-compiled function defined in soap-client.el.gz.

Signature

(soap-xs-parse-attribute-group NODE)

Documentation

Construct a soap-xs-attribute-group from NODE.

Source Code

;; Defined in /usr/src/emacs/lisp/net/soap-client.el.gz
(defun soap-xs-parse-attribute-group (node)
  "Construct a `soap-xs-attribute-group' from NODE."
  (let ((node-name (soap-l2wk (xml-node-name node))))
    (cl-assert (eq node-name 'xsd:attributeGroup)
               "expecting xsd:attributeGroup, got %s" node-name)
    (let ((name (xml-get-attribute-or-nil node 'name))
          (id (xml-get-attribute-or-nil node 'id))
          (ref (xml-get-attribute-or-nil node 'ref))
          attribute-group)
      (when (and name ref)
        (soap-warning "name and ref set for attribute group %s" node-name))
      (setq attribute-group
            (make-soap-xs-attribute-group :id id
                                          :name name
                                          :reference (and ref (soap-l2fq ref))))
      (when (not ref)
        (dolist (child (xml-node-children node))
          ;; Ignore whitespace.
          (unless (stringp child)
            ;; Ignore optional annotation.
            ;; Ignore anyAttribute nodes.
            (cl-case (soap-l2wk (xml-node-name child))
              (xsd:attribute
               (push (soap-xs-parse-attribute child)
                     (soap-xs-type-attributes attribute-group)))
              (xsd:attributeGroup
               (push (soap-xs-parse-attribute-group child)
                     (soap-xs-attribute-group-attribute-groups
                      attribute-group)))))))
      attribute-group)))