<payload xsi:type="ns787:SomeRequest" xmlns:ns787="http://ws.abc.efg.com"/>
Я работаю с IIB v10.0.0.7. Я хотел бы определить один из элементов XML как тип xsd:anyURI
, используя esql. вывод должен быть таким, как указано выше:
<payload xsi:type="ns787:SomeRequest" xmlns:ns787="http://ws.abc.efg.com"/>
Я работаю с IIB v10.0.0.7. Я хотел бы определить один из элементов XML как тип xsd:anyURI
, используя esql. вывод должен быть таким, как указано выше:
Я предполагаю, что вы спрашиваете об атрибуте xsi: type. Синтаксический анализатор XMLNSC не заполняет автоматически префикс пространства имен в значении атрибута 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;
Если вы все еще застряли, вам может пригодиться этот метод: Как создать сложный объект в ESQL