Как запретить службе Oracle Service Bus (OSB) изменять префикс / псевдонимы xmlns на случайные вещи?

У нас есть требование отправить клиенту конкретный псевдоним пространства имен и использовать OSB. Прокси-служба изменяет псевдонимы пространства имен открытого WSDL, исходя из того, что мы тщательно продумали. Я не могу найти способ запретить OSB делать это.

Например

Для пространства имен http://schemas.xmlsoap.org/wsdl/ исходное начало wsdl имеет

    <soap:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/"/>

Но OSB предоставляет WSDL вот так

    <WL5G3N0:definitions xmlns:WL5G3N0="http://schemas.xmlsoap.org/wsdl/"/>

Исходный псевдоним «мыло» автоматически изменяется на «WL5G3N0» OSB, что вызывает проблему. Такое же переименование также происходит со многими из упомянутых файлов XSD.

Как предотвратить переименование псевдонимов в OSB?


person Shintaro Sasaki    schedule 22.04.2015    source источник
comment
Префиксы не имеют значения в XML и не изменяют семантику имен элементов, если URI пространства имен остается неизменным. Почему это вызывает проблему? Если это так, вам, вероятно, следует изменить свое XML-приложение.   -  person Mathias Müller    schedule 22.04.2015
comment
Это требование не подтверждает стандарт WSDL / SOAP / WSDL / XSD. Это требование от клиента. У меня вопрос: можно ли отключить эту функцию? и как его можно отключить (если это возможно)   -  person Shintaro Sasaki    schedule 23.04.2015
comment
Я согласен с @ MathiasMüller. Похоже, что ваш клиент делает не синтаксический анализ XML, а сравнение строк на чем-то, и когда префиксы схемы изменяются (что разрешено стандартами XML), они не могут с этим справиться.   -  person Nick Klauer    schedule 23.04.2015
comment
Я не пытаюсь сказать, что OSB ведет себя неправильно. Я просто пытаюсь понять, можно ли его отключить. Может его выключить? Или OSB не дает выключить?   -  person Shintaro Sasaki    schedule 23.04.2015


Ответы (3)


Я получил ответ с форума сообщества Oracle и закрываю этот. Кто-то, который, кажется, хорошо осведомлен об OSB, сказал, что у него нет известного способа отключить автоматическое переименование.

Вроде ответ "Нет, автоматическое переименование префикса xmlns в OSB нельзя отключить"

person Shintaro Sasaki    schedule 24.04.2015
comment
Забыл ссылку на ветку community.oracle.com/message/13023796#13023796 - person Shintaro Sasaki; 24.04.2015
comment
Кстати, это не форум, и вопросы так не закрываются. - person John Saunders; 24.04.2015

Support.oracle.com ответил на мой SR 3-10633538571, и они официально подтвердили, что автоматическое переименование префикса не может быть отключено в OSB 11g.

person Shintaro Sasaki    schedule 28.04.2015

Служебная шина принимает ваш WSDL (называемый ресурсом WSDL) и создает из него эффективный WSDL, заменяя порт, службу и другие разделы исходного WSDL.

Переименование префиксов пространств имен является частью этого преобразования. Вы не можете избежать создания эффективного WSDL. Трансформация не сохраняет ваши префиксы, а это значит, что вам придется с этим смириться.

person KarelHusa    schedule 05.09.2016