在 ESQL 中从 XSD 创建新对象

Create new Object from XSD in ESQL

有没有办法创建其格式在消息模型中定义的对象?

实际上,我已经创建了一个消息模型,其中一些字段包含默认值和一些限制。我使用以下代码在 ESQL 中创建了一条消息,但其他字段(包含默认值)没有出现:

CREATE LASTCHILD OF OutputRoot DOMAIN('DFDL');
-- SET OutputRoot.Properties = InputRoot.Properties;      
SET OutputRoot.Properties.MessageSet = '{ObjectsDefinitionLibrary}';
SET OutputRoot.Properties.MessageType = '{}:Example1MsgModel';
SET OutputRoot.DFDL.Example1MsgModel.record[1].FieldOne = 'Value1';

ESQL 可以吗?

Is there a way to create an object whose format is defined in a message model

您需要定义 'object' 的含义。您要基于模型创建消息树吗?还是要从模型生成有效的 BLOB?

正如其他人所说,如果要从 DFDL 模型生成 BLOB,则必须确保消息模型中的所有内容(包括复杂元素)的 minOccurs>=1,并且必须提供默认值每个领域的价值。 如果您想要一个消息树,那么您将需要使用 DFDL 解析器解析该 BLOB。这很好地引出了您其他问题的答案...

Will this be possible with ESQL?

ESQL 不提供从模型创建消息树的特殊语句。但是,它确实提供了两个函数来解析和编写任何 BLOB/message 树。查找 ASBITSTREAM 函数和 CREATE 函数(使用 PARSE 子句)。