Я прекрасно настраиваю веб-приложение, которое вызывает службы SOAP, поддерживаемые вызовами хранимых процедур SQL. Обычно хранимые procs генерируют XML, который становится частью ответа SOAP, и что XML имеет много избыточных объявлений пространства имен xmlns. В патологических случаях это может быть 30% или более полукокса закодированы XML в байтах, например:Как устранить избыточные объявления пространства имен в SQL-выражении 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');
Is есть ли способ избежать генерации избыточных объявлений пространства имен xmlns для каждого элемента XML элемента?
спасибо.