Я хорошо настраиваю веб-приложение, которое вызывает сервисы SOAP, поддерживаемые вызовами хранимых процедур SQL. Обычно хранимые процедуры генерируют XML, который становится частью ответа SOAP, и этот XML имеет много лишних объявлений пространства имен xmlns. В патологических случаях это может быть 30% или более XML-кода, измеренного в байтах, например:
<GetFooResponse xmlns="http://service.url/">
<GetFooResult>
<FooItems xmlns="http://www.thisisalongishurl.com/schema12345/version12345">
<Item xmlns="http://www.thisisalongishurl.com/schema12345/version12345" data="foo" />
<Item xmlns="http://www.thisisalongishurl.com/schema12345/version12345" data="foo" />
<Item xmlns="http://www.thisisalongishurl.com/schema12345/version12345" data="foo" />
<Item xmlns="http://www.thisisalongishurl.com/schema12345/version12345" data="foo" />
<Item xmlns="http://www.thisisalongishurl.com/schema12345/version12345" data="foo" />
</FooItems >
</GetFooResult>
</GetFooResponse>
SQL, который я использую для генерации XML, обычно следует этому шаблону:
WITH XMLNAMESPACES(DEFAULT 'http://www.thisisalongishurl.com/schema12345/version12345')
SELECT
[Name],
[Value]
FROM
[Foo]
FOR XML PATH('Item'),
TYPE,
ROOT('FooItems');
Есть ли способ избежать создания лишних деформаций пространства имен xmlns для каждого элемента XML элемента?
спасибо.