
op:xml-attribute( $name as item(), $value as item() ) as map:map
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. |
xquery version "1.0-ml";
import module namespace op="http://marklogic.com/optic"
at "/MarkLogic/optic.xqy";
op:from-literals((
map:entry("row",1)=>map:with("gp",1)=>map:with("nm","alpha")=>
map:with("str","a")=>map:with("num",10)=>map:with("bool", true() ),
map:entry("row",2)=>map:with("gp",1)=>map:with("nm","beta" )=>
map:with("str","b")=>map:with("num",20)=>map:with("bool", false() ),
map:entry("row",3)=>map:with("gp",2)=>map:with("nm","gamma")=>
map:with("str","c")=>map:with("num",30)=>map:with("bool", true() ),
map:entry("row",4)=>map:with("gp",2)=>map:with("nm","delta")=>
map:with("str","d")=>map:with("num",40)=>map:with("bool", false() )
))
=> op:select(("gp",
op:as("re", op:xml-element("relem", (
op:xml-attribute("row", op:col("row")),
op:xml-attribute("nm", op:col("nm")),
op:xml-attribute("num", op:col("num"))
))
)))
=> op:group-by("gp", op:sequence-aggregate("rs", "re"))
=> op:order-by("gp")
=> op:select(op:as("container", op:xml-element("gelem",
op:xml-attribute("group", op:col("gp")),
op:xml-element("rows", (), op:col("rs"))
)))
=> op:result()
Stack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.