Example #1
0
File: SOAP.php Project: techart/tao
 /**
  * @param DOMNode $dom_node
  * @param         $object
  */
 private function add_xsi_type(DOMNode $dom_node, $object)
 {
     $xsi_type_name = $object['__type'];
     if (isset($xsi_type_name) && $xsi_type_name != '') {
         $prefix = $dom_node->lookupPrefix($object['__ns']);
         $dom_node->setAttribute('xsi:type', (isset($prefix) ? $prefix . ':' : '') . $xsi_type_name);
     }
 }
 /**
  * Adds the xsi:type to the DOMNode generated from the corresponding object.
  * @param DOMNode $domNode the DOM node corresponding to the object
  * @param $object the object used to determine the xsi:type
  * @access private
  */
 private function AddXsiType(DOMNode $domNode, $object)
 {
     $xsiType = $domNode->getAttributeNS(self::$XSI_NAMESPACE, 'xsi:type');
     if (method_exists($object, 'getXsiTypeName') && method_exists($object, 'getNamespace') && empty($xsiType)) {
         $xsiTypeName = $object->getXsiTypeName();
         if (isset($xsiTypeName) && $xsiTypeName != '') {
             $prefix = $domNode->lookupPrefix($object->getNamespace());
             $domNode->setAttributeNS(self::$XSI_NAMESPACE, 'xsi:type', (isset($prefix) ? $prefix . ':' : '') . $xsiTypeName);
         }
     }
 }
 /**
  * Get the namespace of the supplied node, and add it to the list of known namespaces for this document
  * @param \DOMNode $node
  */
 protected function collateNamespaces(\DOMNode $node)
 {
     if ($this->config['useNamespaces'] && $node->namespaceURI && !array_key_exists($node->namespaceURI, $this->namespaces)) {
         $this->namespaces[$node->namespaceURI] = $node->lookupPrefix($node->namespaceURI);
     }
 }