0

需要帮助来验证传入的 XML 标记之一是否包含序列化数据。如果 ir 不包含,则必须处理用户定义的异常。这必须使用 ESQL 来实现。

例子 :

<input_data>
<source>ABCD</source>
<key_data>incoming serialized data</key_data>
</input_data>

这里 Key_data 应该被验证以检查它是否包含序列化数据以外的任何内容。

4

2 回答 2

1
IF FIELDNAME(rootTagname.*:input_data) = 'input_data' THEN

    -- do some thing as per your requirement 
ELSE

  THROW USER EXCEPTION MESSAGE 'some number' VALUES ('no value received for input_data.');

end IF;
于 2014-07-08T07:37:39.180 回答
0

您如何定义序列化数据?您可以通过使用以下内容来检查数据是否包含某些内容:

IF InputRoot.XMLNSC.input_data.key_data IS NULL OR FIELDVALUE(InputRoot.XMLNSC.input_data) = '' THEN
  THROW USER EXCEPTION MESSAGE 2951 VALUES('Data element was empty')
END IF;

如果您要实际检查数据,则需要将 if 条件替换为可以确定数据是否为“序列化数据”的函数。例如,如果您想测试数据是否是一个序列化的 java 对象,那么您可以构建一个 EXTERNAL Java 函数来尝试反序列化该对象并返回 true/false。

最终,Broker 不知道您所说的序列化数据是什么意思,因此您需要通过自己的应用程序代码提供该上下文。

于 2013-11-19T13:51:44.257 回答