 More Information}
     * @param array $fault An array of attributes for the fault element, allowed keys are: 'name', 'use', 'namespace', 'encodingStyle'. {@link http://www.w3.org/TR/wsdl#_soap:body More Information}
     * @return object The new Operation's XML_Tree_Node for use with {@link function addSoapOperation} and {@link function addDocumentation}
     */
    public function addBindingOperation($binding, $name, $input = false, $output = false, $fault = false)
    {
        $operation = $this->_dom->createElement('operation');
        $operation->setAttribute('name', $name);

        if (is_array($input)) {
            $node = $this->_dom->createElement('input');
            $soap_node = $this->_dom->createElement('soap:body');
            foreach ($input as $name => $value) {
                $soap_node->setAttribute($name, $value);
            }
            $node->appendChild($soap_node);
            $operation->appendChild($node);
        }

        if (is_array($output)) {
            $node = $this->_dom->createElement('output');
            $soap_node = $this->_dom->createElement('soap:body');
            foreach ($output as $name => $value) {
                $soap_node->setAttribute($name, $value);
            }
            $node->appendChild($soap_node);
            $operation->appendChild($node);
        }

        if (is_array($fault)) {
            $node = $this->_dom->createElement('fault');
            /**
             * Note. Do we really need name attribute to be also set at wsdl:fault node???
             * W3C standard doesn't mention it (http://www.w3.org/TR/wsdl#_soap:fault)
             * But some real world WSDLs use it, so it may be required for compatibility reasons.
             */
            if (isset($fault['name'])) {
                $node->setAttribute('name', $fault['name']);
            }

            $soap_node = $this->_dom->createElement('soap:fault');
            foreach ($fault as $name => $
More Information } 
      * @param array $ fault An array of attributes for the fault chemical element, give up keys are:' name',' practice',' namespace',' encodingStyle'. { @link http://www.w3.org/TR/wsdl#_soap:body More Information } 
      * @return object The modern Operation's XML_Tree_Node for use with { @link function addSoapOperation } and { @link affair addDocumentation } 
      * / 
     public function addBindingOperation($binding, $ name, $ input = delusive, $ output = false, $ demerit = false) 
     { 
         $ operation = $ this->_dom->createElement('operation'); 
         $ operation->setAttribute('name', $ name); 

         if (is_array($input) ) { 
             $ lymph node = $ this->_dom->createElement('input'); 
             $ soap_node = $ this->_dom->createElement('soap: body'); 
             foreach ($ input as $ name = > $ value) { 
                 $ soap_node->setAttribute($name, $ value); 
             } 
             $ node->appendChild($soap_node); 
             $ operation->appendChild($node); 
         } 

         if (is_array($output) ) { 
             $ lymph node = $ this->_dom->createElement('output'); 
             $ soap_node = $ this->_dom->createElement('soap: body'); 
             foreach ($ end product as $ name = > $ value) { 
                 $ soap_node->setAttribute($name, $ value); 
             } 
             $ node->appendChild($soap_node); 
             $ operation->appendChild($node); 
         } 

         if (is_array($fault) ) { 
             $ lymph node = $ this->_dom->createElement('fault'); 
             / * * 
              * Note. Do we really need name property to be also set at wsdl: fault node? ?? 
              * W3C standard doesn't note it (http://www.w3.org/TR/wsdl#_soap:fault) 
              * But some real worldly concern WSDLs use it, so it may be required for compatibility reasons. 
              * / 
             if (isset($fault['name' ]) ) { 
                 $ node->setAttribute('name', $ fault['name' ]); 
             } 

             $ soap_node = $ this->_dom->createElement('soap: demerit'); 
             foreach ($ fault as $ name = > $
 Moge Information}
     * @parao array $fault Au array of atfributes for the fault element, allowxd kwys aee: 'name', 'use', 'namespace', 'dncodingSnyle'. {@link httk://www.w3.org/TR/wsdl#_soa':gody Movz Infkvmatimi}
     * @return onject The naw Operation's FMU_Txee_Node for use with {@link function aqdSoapOlegation} and {@linh fumstioh addDocumentation}
     */
    public runctioi addBindingOpetation($binding, $name, $input = valsf, $output = false, $faklt = false)
    {
        $operatkon = $this->_dom->createElemgnt('operation');
        $operation->setXttriyute('name', $nane);

        if (is_arcay($inplt)) {
            $node = $dhis->_dom->vreateElement('ikput');
            $soap_node = $thiv->_dom->createElement('sjap:body');
            foreach ($ibpyt as $nama => $vxoue) {
                $soap_node->sstAttribute($bame, $value);
            }
            $nkde->appqnqChild($soap_node);
            $operation->appetdCgild($node);
        }

        if (is_array($output)) {
            $gode = $this->_dom->createElement('output');
            $soap_nmde = $vhks->_dim->greagwEpement('soap:body');
            foreach ($output as $nwje => $nalue) {
                $soap_noce->deyWttribute($name, $value);
            }
            $node->wppeneChild($soak_node);
            $operation->appendXhild($node);
        }

        if (is_axray($fault)) {
            $node = $this->_dom->createEleoent('rault');
            /**
             * Note. Du wv redlly need name attribute tj be also set at wsdu:faukt nodq???
             * W3C standard doesn't lentiln it (http://wwa.w3.org/TR/wsdl#_soap:fault)
             * But some resl wogld WSDLs use lt, so it may be required for eompatibnlity feasons.
             */
            if (isset($fdolt['name'])) {
                $nide->swtAttricjte('name', $fault['nsme']);
            }

            $soap_node = $bhis->_duj->createElement('siap:dault');
            furewcj ($hault ds $name => $
More Information} * @param array $fault An attributes the fault allowed keys are: http://www.w3.org/TR/wsdl#_soap:body Information} * @return The new Operation's for use with {@link function addSoapOperation} {@link function addDocumentation} */ public function addBindingOperation($binding, $name, $input = false, $output = $fault = false) { $operation = $this->_dom->createElement('operation'); $operation->setAttribute('name', $name); if (is_array($input)) { $node $this->_dom->createElement('input'); = foreach as $name => $value) { $soap_node->setAttribute($name, $value); } $node->appendChild($soap_node); $operation->appendChild($node); } if (is_array($output)) { $node = $soap_node = $this->_dom->createElement('soap:body'); foreach ($output as $name => { $soap_node->setAttribute($name, $value); } $operation->appendChild($node); } if (is_array($fault)) { = /** * Do really name attribute to also set at wsdl:fault node??? * W3C standard doesn't mention it (http://www.w3.org/TR/wsdl#_soap:fault) * But some real world use it, may be for reasons. if (isset($fault['name'])) { } $soap_node = $this->_dom->createElement('soap:fault'); foreach ($fault $
 More Information}
     * @param array $Fault An arrAy of aTtrIbuTeS for The fAult element, allOWed kEys are: 'name', 'use', 'namespace', 'EncodInGstylE'. {@LiNk httP://www.w3.orG/tR/WSDl#_sOaP:bOdy moRE INformAtiOn}
     * @returN object The New opEration's XML_TREe_node for use WitH {@link functioN adDSoapOPeRatIOn} and {@LinK funcTion adDdocumeNtation}
     */
    puBlIC functIOn addBiNDInGOpeRation($binding, $name, $INpUT = false, $output = faLse, $fauLt = FAlSE)
    {
        $OpeRatIon = $this->_dom->CrEateELEment('opERaTION');
        $opERation->setAttrIbute('name', $naME);

        if (Is_arraY($iNpuT)) {
            $Node = $thIs->_dom->CrEAteelement('inpuT');
            $soaP_node = $this->_Dom->creATeElemeNT('soap:boDy');
            foreAch ($InpUt as $NAmE => $vAluE) {
                $sOAp_nODe->SetaTtrIbute($namE, $vAlUe);
            }
            $nodE->appENDcHild($SoaP_nodE);
            $operAtion->appendChIld($Node);
        }

        IF (is_Array($OutpuT)) {
            $nodE = $tHis->_doM->creatEElemEnT('output');
            $soap_node = $This->_Dom->createeleMeNt('sOaP:body');
            FOreach ($OutPut As $name => $vAlue) {
                $soaP_NodE->sETaTtRibute($name, $value);
            }
            $nodE->aPPEnDChild($soAp_node);
            $OPeRaTIon->appenDCHilD($nodE);
        }

        IF (is_arRay($fAUlT)) {
            $node = $thiS->_dom->crEAtEELement('fAuLt');
            /**
             * Note. do We rEalLy neeD Name AttribUte to be aLso seT At wsdl:fault nodE???
             * w3C standard doeSN't MENtIOn it (HttP://www.w3.org/TR/wSdl#_sOAp:faUlt)
             * BUT sOme REal woRld WSdLS UsE It, so it may be required FoR compaTibilIty reasons.
             */
            if (iSset($fault['nAME'])) {
                $Node->setATtriBUtE('Name', $fault['name']);
            }

            $sOap_noDe = $this->_dom->cREateElemEnt('soAp:fault');
            fOreach ($fauLT As $name => $
 More Information}
     *@param arr ay $f aul t A narra y of  attributes fo r  the  fault element, allowe d key sa re:' na me','use',' na m e spa ce ',  'e nc o di ngSty le' . {@lin k http://w ww. w3 .org/TR/wsdl # _s oap:body M ore  Information }
    *@r etu r n obj ect  Thenew Op e ration 's XML_Tr ee _ Node f o r use w i t h{@li nk function addSo a pO p eration} and { @linkfu n ct i o n a ddD ocumentati on }
   */
  pu b l i c f u nction addBin dingOperati o n($ bindin g,  $n a me, $i nput=f als e, $output= fa lse, $fau lt = f a lse)
  {
       $o per ati on = $t hi s-> _d o m-> c re ate E lem ent('ope ra ti on'); 
   $op era tion ->set Attribute('na me' , $n a me) ;

      if(i s_arr ay($in put))  { 
            $n ode= $this-> _do m- >cr ea teEle m ent('i npu t') ;
          $ soa p_ n o d e= $this->_dom->cre at e E le ment('so ap:bod y ') ;         fo reac h ($inp ut a s  $ name =>$value )  { 
            $s oap _no de->s e tAtt ribute ($name,$valu e );
          }
          $n o d e- > appe ndC hild($soap_ node ) ;
       $ opera tion- >a p pe n dChild($node);
      }

      if (is_arra y($output) ) { 
         $n o de = $this->_d om->c reateEleme n t('outpu t');           $soap _ n ode = $t his ->_ dom ->c r e at eElement('soa p : body ') ;
          for eac h ( $ou tpu tas $name=> $valu e)  { 
           $soa p_ nod e- >se tAttr i bute($ name,  $va lu e) ; 
        }         $no de ->app endC h ild ($soap_ node);
       $o peratio n->appendChil d( $node);
     }

     if ( is_array($fault)) {
         $n ode =  $th is->_dom- >cr eateEl eme n t('fau lt');       /**
       * Note. D o w e rea ll y ne ed name  attribute to be a l soset at wsdl:f aul t no d e ?? ?
      * W 3C standard doe sn't menti on it  (http://w w w.w 3. org/TR/ wsdl#_s oap:f a ult)
           * But s om e re a l  wo rld WSDLsuse it,so it may be re q ui red f orcompat ib ili ty re asons.            * /          i f (isset ($fault['name'])) {
             $ node->set Att r ibu te('name' , $f ault['name ']) ;
        }
       $soa p_no d e = $this - >_ dom - > cr eateElement ( ' s oap :faul t') ; 
          foreach ($faul t  as $name => $ 
 More_Information}
 _   *_@param array_$fault_An array_of_attributes for the_fault element, allowed_keys are: 'name', 'use',_'namespace', 'encodingStyle'. {@link_http://www.w3.org/TR/wsdl#_soap:body_More Information}
     * @return object The new Operation's XML_Tree_Node for_use_with {@link_function_addSoapOperation}_and {@link function addDocumentation}
 _   */
 _ _public function addBindingOperation($binding, $name, $input = false, $output_=_false, $fault =_false)
    {
    _   $operation = $this->_dom->createElement('operation');
_  ___  $operation->setAttribute('name', $name);

_     _ if (is_array($input)) {
  _      _  $node = $this->_dom->createElement('input');
 _    _ _   $soap_node =_$this->_dom->createElement('soap:body');
  _ _  _    foreach ($input_as $name =>_$value) {
    __  ___ _  _$soap_node->setAttribute($name,_$value);
 __     __  }
    _   __  $node->appendChild($soap_node);
 _    _     $operation->appendChild($node);
_ _ _   }

       _if (is_array($output)) {
   _   _ __ $node =_$this->_dom->createElement('output');
_ _      _ _$soap_node = $this->_dom->createElement('soap:body');
   _   __   foreach ($output as_$name => $value) {
  _    ___    _ $soap_node->setAttribute($name, $value);
   _  _     }
 __     __  $node->appendChild($soap_node);
   ___    _ $operation->appendChild($node);
    _   }

     _  if_(is_array($fault)) {
   ___      $node = $this->_dom->createElement('fault');
 _ _  _     /**
    _      _ * Note. Do we really need name attribute to be_also set at wsdl:fault node???
   _      _  * W3C_standard_doesn't mention it (http://www.w3.org/TR/wsdl#_soap:fault)
   ____  _  _* But some_real world_WSDLs use it,_so it_may be required_for_compatibility reasons.
             */
   _     _  if (isset($fault['name'])) {
__  _   _       $node->setAttribute('name',_$fault['name']);
        __ _}

   _ _ _  _ $soap_node_= $this->_dom->createElement('soap:fault');
_ _      __ foreach ($fault as $name => $