Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

XQuery/Dataflow diagrams

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

This description of the data flow in the Timetable application (another page scraping application) is loosely based on XPL <?xml version="1.0" encoding="UTF-8"?> <Pipeline id="timetable"> <process id="i1"> <title>Input id</title> </process> <process id="i2"> <title>input week number</title> </process> <process id="i3"> <title>input role</title> </process> <process id="s1"> <title>create url</title> <input>i1</input> <input>i2</input> <input>i3</input> </process> <process id="s2"> <title>get html</title> <input>s1</input> <input>x1</input> </process> <process id="x1"> <type>external</type> <input>s2</input> <title>Syllabus Plus</title> </process> <process id="s3"> <title>convert to xhtml</title> <input>s2</input> </process> <process id="s4"> <title>extract xml</title> <input>s3</input> </process> <process id="s5"> <title>transform to vcal</title> <input>s4</input> </process> <process id="s6"> <title>transform to htm</title> <input>s4</input> </process> </Pipeline> With a map from types to shapes: <ProcessTypes> <type name="input" shape="invtriangle"/> <type name="process" shape="box"/> <type name="external" shape="house"/> </ProcessTypes> Conversion to dot format for onward conversion to a GIF image declare option exist:serialize "method=text"; declare variable $nl := " "; declare variable $url := request:get-parameter("url","/db/Wiki/DataFlow/timetablexpl.xml"); declare variable $processTypes := /ProcessTypes; let $pipe := doc($url) return ( "digraph {" , for $process in $pipe//process let $type := if (exists($process/type)) then $process/type else if (empty($process/input)) then "input" else "process" let $shape := string($processTypes/type[@name=$type]/@shape) return ( concat ($process/@id, ' [shape=',$shape,',label="',$process/title, '"];',$nl), for $input in $process/input return concat($input, '->', $process/@id,";",$nl) ), "} ",$nl ) Dot file Diagram