
op.xmlAttribute( name as String, value as String ) as attributeNode
This function constructs an XML attribute with the name (which can be a string or QName) and atomic value.
| Parameters | |
|---|---|
| name | The attribute name. |
| value | The attribute value. |
const op = require('/MarkLogic/optic');
const literals = op.fromLiterals([
{row:1, gp: 1, nm:"alpha", str:"a", num:10, bool:true},
{row:2, gp: 1, nm:"beta", str:"b", num:20, bool:false},
{row:3, gp: 2, nm:"gamma", str:"c", num:30, bool:true},
{row:4, gp: 2, nm:"delta", str:"d", num:40, bool:false}
])
literals.select(['gp',
op.as('re', op.xmlElement('relem', [
op.xmlAttribute('row', op.col('row')),
op.xmlAttribute('nm', op.col('nm')),
op.xmlAttribute('num', op.col('num'))
]))
])
.groupBy('gp', op.sequenceAggregate('rs', 're'))
.orderBy('gp')
.select(op.as('container',
op.xmlElement('gelem',
op.xmlAttribute('group', op.col('gp')),
op.xmlElement('rows', op.col('rs'))
))
)
.result();