У меня интересный случай - мой индекс Solr основан на таблице, содержащей массив в другом массиве.
Теперь мне нужно извлечь данные из индекса в формате XML.
Нет проблем с XML, когда вы выбираете данные из массива, но когда вы получаете другой массив внутри первого, ваш результат XML становится недействительным.
Есть структура простого массива:
orgdata array <struct <fs_form_num:string, fs_unit:string, fs_value:string>>
Результат запроса становится красивым XML с правильной структурой:
<str name="orgdata">
<item fs_form_num="2" fs_unit="lb" fs_value="100"/>
И вот моя текущая проблема (упрощенно):
orgdata array <struct< fs_form_num:string, formdata:array<struct<fs_unit:string>>>>
И результат XML в этом случае не так корректен:
<str name="orgdata"> <item fs_form_num="2" formdata="<item fs_unit="lb" fs_value="100"/>" />
Как видите,
<str name="orgdata"> <item fs_form_num="2" formdata="<item fs_unit="lb" fs_value="100"/>" />
не является допустимой структурой XML.
Я что-то не так делаю, или он (Solr) работает как задумано, и мне приходится вручную преобразовывать структуру вложенных элементов во что-то правильное (через XSL или Apache Camel)?
Edit:
Я точно определил свою проблему - я не могу ее правильно удалить -
<str name="orgdata"><item fs_form_num="2" formdata="<item fs_unit="lb" /><item fs_unit="ton" />" /></str>
потому что я понятия не имею, как удалить первый массив без удаления второго, например:
<str name="orgdata"><item fs_form_num="2" formdata="<item fs_unit="lb" /><item fs_unit="ton" />"/></str>