Я пытаюсь применить посредник преобразователя данных к выходу службы данных XML, определенной в WSO2EI. В документации указывается, что для использования преобразователя данных необходимо иметь полные имена во входных файлах XML.
Служба данных, которую я создаю, не включает префиксы в пределах генерируемых XML. Я попытался экспортировать сопоставление данных XSLT из файла CAR и запустить его по образцу XML, сгенерированному службой данных через внешний преобразователь XML - это не сработало. Однако, если я добавил квалифицированные префиксы во входную информацию XML вручную, все работает нормально.
Похоже, что причина того, что мой преобразователь данных не работает, - это пространство имен по умолчанию, а не квалифицированное, во входных данных XML. К сожалению, я не могу получить службу данных, включающую префиксы пространства имен в своем выводе. Любые идеи?
Чтобы проиллюстрировать природу проблемы, давайте рассмотрим два немного разных входа; первый XML входной файл использует имена по умолчанию, второй - полные имена:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<users xmlns="http://ws.wso2.org/dataservice">
<user>
<last>Waelchi</last>
<first>Xzavier</first>
<country>Swaziland</country>
</user>
</users>
</soapenv:Body>
</soapenv:Envelope>
Этот XML не обрабатывается XSLT должным образом, независимо от того, находится ли он внутри WSO2EI или внешнего XML процессора. Однако тот же XML с определенными именами:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<users xmlns:p="http://ws.wso2.org/dataservice">
<p:user>
<p:last>Waelchi</p:last>
<p:first>Xzavier</p:first>
<p:country>Swaziland</p:country>
</p:user>
</users>
</soapenv:Body>
</soapenv:Envelope>
правильно интерпретируется, по крайней мере, внешним XML процессором. Моя проблема в том, что я не могу заставить службу данных WSO2EI включать в свой вывод квалифицированные префиксы.
ОК, мне удалось обойти проблему, преобразовав вывод XML службы данных WSO2 в квалифицированный XML используя XSLT-преобразование. Однако я все еще не могу получить квалификацию XML непосредственно из службы данных; Любое предложение должно быть оценено.