У меня есть карта в BizTalk 2009, которая преобразует некоторые данные в XML-документ, который будет отправлен в другую систему. Целевая схема включает в себя некоторые элементы с атрибутами xml:lang
. BizTalk генерирует их как ns1:lang
. Целевая система требует использования префикса xml
.Мне нужна моя карта BizTalk, чтобы остановить преобразование xml: lang to ns1: lang
Вот упрощенный пример, чтобы показать, что делает BizTalk:
sample.xsd
<xs:schema targetNamespace="http://example.com/"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import schemaLocation="common.xsd"
namespace="http://www.w3.org/XML/1998/namespace" />
<xs:element name="example">
<xs:complexType>
<xs:attribute ref="xml:lang" />
</xs:complexType>
</xs:element>
</xs:schema>
common.xsd
<xs:schema xmlns:xml="http://www.w3.org/XML/1998/namespace"
targetNamespace="http://www.w3.org/XML/1998/namespace"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:attribute name="lang" type="xs:language" />
</xs:schema>
Пример вывода карты
<ns0:example xmlns:ns0="http://example.com/"
xmlns:ns1="http://www.w3.org/XML/1998/namespace"
ns1:lang="en-US" />
Есть ли какой-нибудь способ, чтобы убедить BizTalk использовать префикс xml
?
Отсутствует, что я знаю. Возможно, вам придется прибегать к использованию настраиваемого компонента конвейера, такого как компонент переименования пространства имен. –