This supplies an xml data source to Windward Reports. This is the reference implementation for the net.windward.datasource package. This package uses XPathNavigator to perform the real work including all selection of nodes using xpath.
To reference a data element from a <wr:forEach ... var="item" > or <wr:query ... var="item"/> tag inside another tag, use the following construct: ${item.name} where name is an xpath reference from the node defined by item and the reference will return a single element.
A really good book on XPath is XPath and XPointer from O'Reilly.
Class | Description | |
---|---|---|
InvalidXPathException | Exception for invalid XPath. | |
XPathDataSource | This supplies a data source to Windward Reports using XPathDatasource. To reference a data element from a <wr:forEach ... var="item" > or <wr:query ... var="item" > tag inside another tag, use the following construct: '${item}/xpath' where xpath is an xpath reference from the node defined by item and the reference will return a single element. When inside a forEach where step='N' where N > 1, you can also use ${item[1]}/xpath ... ${item[N-1]}/xpath to reference data for the N rows in each step. ${item[0]}/xpath is legal but redundent. You can also use <wr:if test='$item[1]}'> which will return true if the row[1] exists. Keep in mind that [1], [2], ... is not an absolute count but an offset from the base row presently on in the loop. And you cannot index past the set of rows that are the row presently on and the rows that will be skipped by step. useful info on namespaces at http://www.hanselman.com/blog/GetNamespacesFromAnXMLDocumentWithXPathDocumentAndLINQToXML.aspx |