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> 

А можно описать такую структуру:

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

И это превратится в такой xml:

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

Но как мне в wsdl описать структуру, которая превратится в:

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

???

P.S. И какую структуру данных мне нужно будет скормить soap серверу?


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

Автор решения: Alexander Petrov

Пробуйте:

<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>

Структура данных должна быть: класс One, содержащий коллекцию классов Two.

→ Ссылка