Я застреваю, пытаясь понять, как отменить маркер XML-файла, поставляемого IBM Cognos.Unmarshalling без уникальных имен узлов
Структура не предоставляет уникальные имена для разных дочерних узлов под элементом, но есть блок метаданных, который определяет порядок значений.
Это упрощенный образец XML-файла.
<?xml version="1.0" encoding="utf-8"?>
<dataset xmlns="http://developer.cognos.com/schemas/xmldata/1/" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
<!--
<dataset
xmlns="http://developer.cognos.com/schemas/xmldata/1/"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xs:schemaLocation="http://developer.cognos.com/schemas/xmldata/1/ xmldata.xsd"
>
-->
<metadata>
<item name="EmployeeID" type="xs:string" length="20"/>
<item name="firstName" type="xs:string" length="50"/>
<item name="lastName" type="xs:string" length="50"/>
</metadata>
<data>
<row>
<value>EMP1</value>
<value>Joe</value>
<value>Blogs</value>
</row>
<row>
<value>EMP2</value>
<value>Mary</value>
<value>Soap</value>
</row>
</data>
</dataset>
Я использую Spring ОХМЫ и Castor для этого проекта, и я не имею никакого контроля над форматом XML, как я потянув его с помощью веб-службы из сторонней системы.
Обновление: Я не против замены Кастора для другой сортировочной/unmarshalling библиотеки.