Какую структуру данных передать в SoapServer?

Раньше wsdl был такой:

<element name="One" minOccurs="1" maxOccurs="1">
  <complexType>
    <sequence>
      <element name="Two" type="string" minOccurs="1" maxOccurs="unbounded" />
    </sequence>
  </complexType>
</element>

и это генерило такой xml:

<One>
  <Two>строка</Two>
  <Two>ещё строка</Two>
</One>

И я передавал в SoapServer такую структуру данных:

...
  'One' => [
    'Two' => ['str', 'str']
  ]
...

Теперь требования изменились, и wsdl стал такой:

<element name="One">
  <complexType>
    <sequence>
      <element name="Two" minOccurs="1" maxOccurs="unbounded">
        <complexType>
          <simpleContent>
            <extension base="string">
              <attribute name="MyAttr" type="string" />
            </extension>
          </simpleContent>
        </complexType>
      </element>
    </sequence>
  </complexType>
</element>

что должно генерить такой xml:

<One>
  <Two MyAttr="строка 1">строка 2</Two>
  <Two MyAttr="строка 3">строка 4</Two>
</One>

Какую структуру данных я должен передать в SoapServer?
Если это будет что-то типа:

...
  'One' => [
    'Two' => [[
      'MyAttr' => 'str'
    ]]
  ]
...

то значение по ключу MyAttr попадет в атрибут MyAttr.

Но ко какому ключу должно лежать значение, которое попадет в "тело" тэга Two?


Ответы (1 шт):

Автор решения: muturgan

Передать нужно:

  'One' => [
    'Two' => [[
      'MyAttr' => 'str1',
      '_' => 'str2'
    ]]
  ]
→ Ссылка