次のようなスタンザを受け取ります。
<message xmlns='jabber:client' to='1' from='2' type='chat' id='50c1d830-283c-11e8-9dcf' xmlns='jabber:client'>
<system xmlns='urn:xmpp:type' layout='layout1' default='true' subType='alert'>
<title>First User</title>
<email>support@abc.com</email>
<action_label>Contact us</action_label>
<deeplinks>
<deeplink>
<label>My deals</label>
<link>/home</link>
</deeplink>
<deeplink>
<label>New deals</label>
<link>/page</link>
</deeplink>
</deeplinks>
</system>
<body>[This is a system message]</body>
</message>
これから、タイプをシステムとして読み取り、その属性(title、email、action_label、layout、subType、default 属性など)を読み取ることができます。
const system = stanzas.define({
name: 'system',
element: 'system',
topLevel: true,
namespace: 'urn:xmpp:type',
fields: {
layout: stanzas.utils.attribute('layout'),
default: stanzas.utils.attribute('default'),
subType: stanzas.utils.attribute('subType'),
email: stanzas.utils.textSub('urn:xmpp:type', 'email'),
actionLabel: stanzas.utils.textSub('urn:xmpp:type', 'action_label'),
title: stanzas.utils.textSub('urn:xmpp:type', 'title')
}
});
stanzas.withMessage(Message => {
stanzas.extend(Message, system);
});
しかし、ネストされたディープリンク スタンザを読み取ることができません。そのデータを解析する方法について何か提案はありますか?