Data


<bib>
  <book year="1999">
    <title>Data on the Web</title>
    <author>Abiteboul</author>
    <author>Buneman</author>
    <author>Suciu</author>
  </book>
  <book year="2000">
    <title>XML Query</title>
    <year>2001</year>
    <author>Fernandez</author>
    <author>Suciu</author>
  </book>
</bib>

bib [
  book [
    @year  [ 1999 ],
    title  [ "Data on the Web" ],
    author [ "Abiteboul" ],
    author [ "Buneman" ],
    author [ "Suciu" ]
  ],
  book [
    @year  [ 2001 ],
    title  [ "XML Query" ],
    author [ "Fernandez" ],
    author [ "Suciu" ]
  ]
] 

Above is syntactic shorthand for constructor expression:

Ref (
  elemNode (qnameValue (null, "bib", Ref(Def_string)), 
           {}, 
           { Ref (attrNode (qnameValue (null, "year")), 
                  Ref(integerValue(1999, Ref (Def_integer)))) },
           [ Ref (elemNode (qnameValue (null, "title", Ref(Def_string))), 
                           {}, 
                           [ Ref(stringValue("Data on the Web", Ref(Def_string))) ]),
             Ref (elemNode (qnameValue (null, "author", Ref(Def_string))), 
                           {}, 
                           [ Ref(stringValue("Abiteboul", Ref(Def_string))) ]),
             ... 
           ]
  )
)