0 xsd: anyURI, использующий шину интеграции e sql .IBM - PullRequest
1 голос
/ 31 марта 2020
<payload xsi:type="ns787:SomeRequest" xmlns:ns787="http://ws.abc.efg.com"/>

Я работаю с IIB v10.0.0.7. Я бы хотел определить один из элементов XML типа xsd:anyURI, используя e sql. вывод должен быть как указано выше:

1 Ответ

0 голосов
/ 31 марта 2020

Я предполагаю, что вы спрашиваете об атрибуте xsi: type. Синтаксический анализатор XMLNS C не заполняет автоматически префикс пространства имен значением атрибута xsi: type - вы должны установить все значение (префикс: localName) в виде текстовой строки.

DECLARE namespace787 NAMESPACE 'http://ws.abc.efg.com';
DECLARE namespaceXSI NAMESPACE 'http://www.w3.org/2001/XMLSchema-instance';

CREATE LASTCHILD OF OutputRoot.XMLNSC.payload TYPE XMLNSC.Attribute NAMESPACE namespaceXSI NAME 'type' VALUE 'ns787:SomeRequest';
CREATE LASTCHILD OF OutputRoot.XMLNSC.payload TYPE XMLNSC.NamespaceDecl NAME 'xmlns:ns787' VALUE namespace787;

или , если вы предпочитаете использовать SET вместо CREATE:

...
SET OutputRoot.XMLNSC.payload.(XMLNSC.Attribute)namespaceXSI:type = namespaceXSI;
SET OutputRoot.XMLNSC.payload.(XMLNSC.NamespaceDecl)xmlns:ns787 = namespace787;

Если вы все еще застряли, то вам может пригодиться этот метод: Как создать сложный объект в E SQL

...