SOAP

Saboth

Новичок
Суть в чём - создаю SOAP запрос через WSDL. XML теги формирую классами.
Например:
PHP:
class Sender
{
 public $Code;
 public $Name;
}

$senederVar = new Sender();

$senederVar -> Code = 'TR0001';
$senederVar -> Name = 'Тратата';

$client->Send1($senederVar);//отправка SoapClient-а
Получается:
Код:
Send1 Object
(
 [Sender] => Sender Object
 (
  [Code] => TR0001
  [Name] => Тратата
 )
)
В XML-ене это выглядит так:
Код:
<ns2:Send1>
 <ns1:Sender>
  <ns1:Code>TR0001</ns1:Code>
  <ns1:Name>Тратата</ns1:Name>
 </ns1:Sender>
</ns2:Send1>
Знает кто-нибудь как можно добавить атрибуты в тег?
К примеру:
Код:
<ns2:Send1>
 <ns1:Sender attrib='111'>
  <ns1:Code>TR0001</ns1:Code>
  <ns1:Name>Тратата</ns1:Name>
 </ns1:Sender>
</ns2:Send1>
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
да, это фреймворк
руками, мозгами и глазами
 

Saboth

Новичок
Что значит "добавить атрибут"? WSDL это разрешает?
Откровенно говоря не имею полного представления о WSDL и о SOAP в целом. Это даже не совсем моя тема. Но часть запроса, создаваемая SoapUI к этой WSDL имеет такой вид:
Код:
            <rev:AppData>
               <shor:Документ ВерсФорм="4.02" ИдДок="F7A7FF9B-C87D-41F8-9C96-EE830A6C5B4A">
                  <shor:ЗапросЮЛ ИдЗапрос="65F97705-C82B-4B5E-8D89-442EB0A0E8AE">
                     <shor:ОГРН>1023302752021</shor:ОГРН>
                  </shor:ЗапросЮЛ>
               </shor:Документ>
            </rev:AppData>
 

fixxxer

К.О.
Партнер клуба
нафига вообще класс?

PHP:
array(
   'attr' => array('attrib' => '111'),
   'Code' => 'TR0001',
);
ну может и с классом точно так же работать будет
 

Saboth

Новичок
нафига вообще класс?

PHP:
array(
   'attr' => array('attrib' => '111'),
   'Code' => 'TR0001',
);
ну может и с классом точно так же работать будет
В принципе да, не сильно важно. Это я уже позже понял. Просто для формирования сложных тегов делают примерно так:
PHP:
$messageDataVar -> AppData = new SoapVar('tratata', XSD_ID, 'ВерсФорм');
Вот я и решил в этом же подобии делать.

Да. И вот в таком примере как у вас, он просто вкладывает дочерний тег в родительский и никакх атрибутов не получается. Поэтому и в моём, и вашем варианте смысла почти одинаково.
 
Сверху