EBNF for the URL format

The following EBNF grammar describes the syntax for the URL format.

The EBNF uses the same Basic EBNF notation as the W3C specification of XML, located here: http://www.w3.org/TR/xml/#sec-notation.

<URL> ::= "http://" <host> ":" <port> <path> ["?" <query>] ["#" <fragment-id>]

<path> ::= "/" <prefix> ["/" <service-name> ["/" <path-step-list>]]

<prefix> ::= "ws"

<path-step-list> ::= <path-step-name> ["/" <path-step-list>]

<query> ::= <query-parameter-list>

<query-parameter-list> ::= <query-parameter> ["&" <query-parameter-list>]

<query-parameter> ::= <query-parameter-name> ["=" <query-parameter-value>]
Note these important items about the syntax:
  • Reserved items in this syntax include terms used by the grammar, such as ws.
  • If <path> == <prefix>, then the list operation is executed to list currently available services.
  • All quoted strings are case-insensitive.
  • If <path> includes a service name, the corresponding XQuery main module will be evaluated. If there is no corresponding main module, then a 404 Not Found message is returned.
  • If <path> does not include a service name, an administrative operation identified by the query parameter op will be performed.

Viewing a list of available Web services

The following command returns a list of available Web services modules:
http://<host>:<port>/ws