Skip to content
James Cheney edited this page Apr 14, 2015 · 4 revisions

Documentation of the URL decoding rules.

= Introduction =

To allow more meaningful URL's (e.g., /CIAWFB/Chile/People/Population) a set of URL decoding rules can be specified. These rules define how to translate an URL into a node identifier. Note that each URL has to point to exactly to one node, otherwise an exception is thrown.

= Rules =

The general format of URL decoding rules is

{{{ IDENTIFY BY }}}

Absolute-path and relative-path are path expressions of node labels. An examples for the CIA World Factbook is:

{{{ IDENTIFY /COUNTRY BY NAME, IDENTIFY /COUNTRY/CATEGORY BY NAME, IDENTIFY /COUNTRY/CATEGORY/PROPERTY BY NAME, IDENTIFY /COUNTRY/CATEGORY/PROPERTY/SUBPROP BY NAME }}}

At most one rule can be defined per schema node. The rules can be specified in the user interface using menu item Settings/URL Decoding.

= URLs =

The supported URL format is

{{{ http::/server-url//db-name/[label | {label:}key-value]/... }}}

For each path component, if the node label is given(i.e., indexOf(':') != -1) the decoding rule for that schema node is retrieved. Otherwise, we first test whether the given value is a valid node label for a child of the current node. If not, the current schema node has to have exactly one child with an URL decoding rule defined. An example URL is:

{{{ http::/localhost:8080/CIAWFB/Chile/People/Population }}}

URL decoding starts at the root. The path component Chile points to the country node having exactly one NAME sub-node with value Chile. People then points to the CATEGORY node (only schema node child of COUNTRY with a defined rule) with a NAME sub-node having value People. Population refers to the PROPERTY with a NAME node `Population'. An alternative (long) form of the above URL is:

{{{ http::/localhost:8080/CIAWFB/COUNTRY:Chile/CATEGORY:People/PROPERTY:Population }}}

Clone this wiki locally