original_string: public function add_complex_type($classname, $properties) {
          $typeschema = $this->nodetypes->children();
          // Append the complex type.
          $complextype = $typeschema->addChild('x:xsd:complexType');
          $complextype->addAttribute('name', $classname);
          $child = $complextype->addChild('x:xsd:all');
          foreach ($properties as $name => $options) {
              $param = $child->addChild('x:xsd:element');
              $param->addAttribute('name', $name);
              $param->addAttribute('type', $this->get_soap_type($options['type']));
              if (!empty($options['nillable'])) {
                  $param->addAttribute('nillable', 'true');
              }
          }
      }
code: public function add_complex_type($classname, $properties) {
          $typeschema = $this->nodetypes->children();
          // Append the complex type.
          $complextype = $typeschema->addChild('x:xsd:complexType');
          $complextype->addAttribute('name', $classname);
          $child = $complextype->addChild('x:xsd:all');
          foreach ($properties as $name => $options) {
              $param = $child->addChild('x:xsd:element');
              $param->addAttribute('name', $name);
              $param->addAttribute('type', $this->get_soap_type($options['type']));
              if (!empty($options['nillable'])) {
                  $param->addAttribute('nillable', 'true');
              }
          }
      }
code_tokens: public function add_complex_type ( $ classname , $ properties ) { $ typeschema = $ this -> nodetypes -> children ( ) ; // Append the complex type. $ complextype = $ typeschema -> addChild ( 'x:xsd:complexType' ) ; $ complextype -> addAttribute ( 'name' , $ classname ) ; $ child = $ complextype -> addChild ( 'x:xsd:all' ) ; foreach ( $ properties as $ name => $ options ) { $ param = $ child -> addChild ( 'x:xsd:element' ) ; $ param -> addAttribute ( 'name' , $ name ) ; $ param -> addAttribute ( 'type' , $ this -> get_soap_type ( $ options [ 'type' ] ) ) ; if ( ! empty ( $ options [ 'nillable' ] ) ) { $ param -> addAttribute ( 'nillable' , 'true' ) ; } } }
docstring: Adds a complex type to the WSDL.
  
  @param string $classname The complex type's class name.
  @param array $properties An associative array containing the properties of the complex type class.
docstring_tokens: Adds a complex type to the WSDL .