Префикс пространства имен BizTalk по умолчанию

BizTalk создал префикс пространства имен по умолчанию как NS0. Есть ли способ переопределить его, чтобы сгенерировать что-то другое без использования XSLT (это накладные расходы при изменении схемы, XSLT также необходимо обновить)? Что-то вроде

<pidx:Invoice> 

и нет

<ns0:Invoice>

Это должно быть просто (в конце концов, это всего лишь префикс пространства имен), но клиенты анализируют документ вместо того, чтобы использовать его как XML с пространством имен, и отсутствие ожидаемого префикса пространства имен вызывает у них огорчение.

Спасибо.


person Sean Feldman    schedule 16.07.2010    source источник


Ответы (2)


Нет, нет.

Неуклюжий ответ - преобразовать XML в строку и выполнить поиск/замену.

person Jeremy Stein    schedule 23.07.2010
comment
Соглашаться. Хотя мне такой подход не понравился, и после разговора с коллегами на работе мы пришли к другому решению. У нас может быть собственный компонент конвейера, который будет принимать пространство имен, префикс и выражение XSLT и применять их к выходным данным. Карта для выходных данных будет настроена так, чтобы вообще не создавать пространство имен (так что ns0 не присутствует ни в одном элементе), и это должно работать более эффективно, чем замена строк за счет использования .NET XsltTransfomation. - person Sean Feldman; 28.07.2010

Ты можешь сделать это. Мне пришлось сделать это при вызове API Google, для которого требуются определенные префиксы пространства имен.

Метод заключается в использовании свойства Imports на уровне ‹Schema› в вашем XSD. Используя диалоговое окно «Импорт», вы можете определить определенные префиксы для каждого пространства имен.

Вам придется разбить вашу схему как минимум на два отдельных XSD, чтобы вы могли импортировать один в другой и переопределить префикс в это время.

person Randy Lindsey    schedule 11.08.2010
comment
Привет, Рэнди, извини, но похоже, что я не могу это воспроизвести. Есть ли способ настроить простой демонстрационный проект и запустить мою электронную почту? Feldman.Sean на gmail.com Спасибо, Шон. - person Sean Feldman; 13.08.2010