Я работал со службами SOAP, написанными на нескольких языках, и еще никогда не видел ни одного, который бы использовал атрибуты XML - они всегда просто используют элементы XML со значением внутри элемента (либо строка, либо дополнительные элементы) ).
Я не говорю, что вы не можете использовать атрибуты, но кажется, что простые пары имя-значение лучше подходят для типов структур данных, с которыми хочет работать большинство языков программирования (например, простые переменные или деревья массивов) .
Но твой вопрос пробудил мое любопытство, поэтому я немного покопался для тебя.
Как вы говорите, руководство по PHP на самом деле не особенно подходит по этому вопросу (что необычно - обычно это довольно хороший ресурс), но если вы действительно хотите создать атрибуты в своем SOAP XML, я сделал найдите несколько фрагментов, которые могут помочь.
Одним из предложений, которое возникло несколько раз, было использование подчеркивания в качестве элемента массива в вашей структуре данных, и тогда это стало бы значением для элемента, а другие ключи массива стали бы атрибутами. Примерно так:
$mydata = array('EmailAdresses' => array(
'Email' => array(
'_' => 'email@domain.com',
'OptIn' => 'true')
)
);
Другое предложение, которое я обнаружил, состояло в том, чтобы создать его как объект, а не как массив, используя библиотеку PHP SimpleXML, поскольку это явно позволяет создавать атрибуты XML.
Извините, у меня нет времени, чтобы проверить эти предложения прямо сейчас, но я надеюсь, что это поможет.