- From: <bugzilla@farnsworth.w3.org>
- Date: Mon, 07 Apr 2008 08:33:53 +0000
- To: public-qt-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=5630 Summary: Tuples and maps Product: XPath / XQuery / XSLT Version: Working drafts Platform: PC URL: http://www.nesterovsky-bros.com OS/Version: Windows XP Status: NEW Severity: normal Priority: P2 Component: Data Model 1.1 AssignedTo: alb.w3c@gmail.com ReportedBy: vladimir@nesterovsky-bros.com QAContact: public-qt-comments@w3.org I suggest to introduce two types into xpath/xslt/xquery type system: opaque sequence (tuple), and associative array (map); Tuples and maps should be considered as atomic values. In contrast to sequences, sequence of tuples or maps is not transformed into signle sequence. Tuples and maps need to be comparable. This way one can sort/group by several values at once. Tuple shall store a sequence of items, or more specific types. Tuple shall be constructed from a sequence. Tuple shall allow to access contained sequence. Possible examples of tuple declarations: tuple() - tuple containing a sequence of items; tuple(*) - the same; tuple(xs:int, node()) - pair containing int and node; tuple(xs:string+) - tuple containing non empty sequence of strings. Map shell store a collection of pairs (key, value). Map shall be constructed from a sequence of (key, value) pairs. Map shall allow to get a contained sequence of (key, value) pairs. Map shall allow to get a contained sequence of keys. Map shall allow to get a contained sequence of values. Map shall allow to get a sequence of values corresponding to a specified key. Possible examples of tuple declarations: map() - map of items; map(xs:string, element()) - map of string (as key) to element() as a value. To support tuples and maps library shall define functions: tuple($items as item()*) as tuple(); Constructs a tuple from items. tuple-items($tuple as tuple()) as item()* Returns contained items for a specified tuple. tuple-item($tuple as tuple(), $index as xs:integer) as item()? Returns an items with a specified index for a specified tuple. map($items as item()*) as map(); Constructs a tuple from (key, value) pairs of items. map-items($map as map()) as item()*; Returns (key, value) items, contained in a map. map-keys($map as map()) as item()*; Returns keys, contained in a map. map-values($map as map()) as item()*; Returns values, contained in a map. map-value($map as map(), $key as item()) as item()*; Returns values, contained in a map, and corresponding to a specified key.
Received on Monday, 7 April 2008 08:34:57 UTC