/**
  * Gets a soap:body element for a given wsdl message.
  *
  * @param DOMDocument   $document A xml document used to create node objects
  * @param ckWsdlMessage $message  A wsdl message
  *
  * @return DOMElement A soap:body element
  */
 private function getSoapBodyNode(DOMDocument $document, ckWsdlMessage $message)
 {
     $soap = ckXsdNamespace::get('soap');
     $soapenc = ckXsdNamespace::get('soapenc');
     $tns = ckXsdNamespace::get('tns');
     $body_node = $document->createElementNS($soap->getUrl(), $soap->qualify('body'));
     $parts = $message->getBodyParts();
     if (!empty($parts)) {
         $body_node->setAttribute('parts', ckString::implode(' ', $parts));
     }
     $body_node->setAttribute('use', 'literal');
     $body_node->setAttribute('namespace', $tns->getUrl());
     $body_node->setAttribute('encodingStyle', $soapenc->getUrl());
     return $body_node;
 }
 /**
  * @see ckDOMSerializable::serialize()
  */
 public function serialize(DOMDocument $document)
 {
     $wsdl = ckXsdNamespace::get('wsdl');
     $tns = ckXsdNamespace::get('tns');
     $node = $document->createElementNS($wsdl->getUrl(), $wsdl->qualify($this->getNodeName()));
     $node->setAttribute('name', $this->getName());
     if (!is_null($this->getInput())) {
         $input_node = $document->createElementNS($wsdl->getUrl(), $wsdl->qualify('input'));
         $input_node->setAttribute('message', $tns->qualify($this->getInput()->getName()));
         $parts = $this->getInput()->getParts();
         if (!empty($parts)) {
             $node->setAttribute('parameterOrder', ckString::implode(' ', $parts));
         }
         $node->appendChild($input_node);
     }
     if (!is_null($this->getOutput())) {
         $output_node = $document->createElementNS($wsdl->getUrl(), $wsdl->qualify('output'));
         $output_node->setAttribute('message', $tns->qualify($this->getOutput()->getName()));
         $node->appendChild($output_node);
     }
     return $node;
 }