Parsowanie odpowiedzi z XML RPC - dziwne zachowanie

w jednej aplikacji, komunikuje się z zewnętrznym api za pomocą XML RPC, wg dostarczonej specyfikacji (czyli to co zwraca api) jest pewna rozbierzność, nie wiem jednak czy to wina parsowania wyników, czy bład w rubiowym kliencie xml rpc.

odpowiedź na żądanie wygląda przykładowo tak:

<params>
  <param>
    <value>
      <array>
        <data>
          <value>
            <i4>0</i4>
          </value>
          <value>
            <array>
              <data>
                <value>123</value>
                <value>
                  <array>
                    <data/>
                  </array>
                </value>
                <value>456/value>
                <value>456</value>
                <value>
                  <array>
                    <data/>
                  </array>
                </value>
                <value>test1</value>
                <value>test2</value>
                <value>test3</value>
              </data>
            </array>
          </value>
        </data>
      </array>
    </value>
  </param>
</params>

co parsowane jest na:

[
  0,
  [
    "123",
    [],
    "456",
    "456",
    [],
    "test1",
    "test2",
    "test3"
  ]
]

wg dostarczonej specyfikacji powinienem otrzymać coś takiego:

[
  0,
  [
    "123",
    [],
    "456",
    ["456"],
    "test1",
    "test2",
    "test3"
  ]
]

czyli ciąg znaków i pusta tablica powinna być zwrócona jako string w tablicy. Można parsować wyniki, żeby to “znormalizować” ale pytanie czy błąd nie leży gdzieś w ruby. Z tego co się orientuje to api generowane jest przez Jave (może to ma jakieś znaczenie).

Przeglądając na szybko to parsowanie wygląda ok.
Nie widzę tam nigdzie ["456"]. Dla mnie to błąd specyfikacji.

no właśnie też mi się zdaje, bo czasami zamiast jednego elementu w tablicy (wg specyfikacji) może znaleźć się kilka czyli np.

123, 456, 789, []

co powinno być zapisane w tablicy

[123, 456, 789]

no nic, chyba sam będę musiał to przeparsować