Syntax of XData Blocks in Class Definitions
Introduction
An XData block is a named unit of data that you include in a class definition, typically for use by a method in the class. Most frequently, it is a well-formed XML document, but it could consist of other forms of data, such as JSON or YAML.
Details
An XData block has the following structure:
/// description
XData name [ keyword_list ]
{
data
}
Where:
-
description (optional) is intended for display in the Class Reference. The description is blank by default. See Creating Class Documentation.
-
name (required) is the name of the XData block. This must be a valid class member name, and must not conflict with any other class member names.
-
data (optional) contains the payload of the XData block. If XML, it must be a well-formed document (with a single root element), without the XML declaration at its start.
-
keyword_list (optional) is a comma-separated list of keywords that further define the XData block.
See XData Syntax and Keywords for a complete keyword list.
If this list is omitted, also omit the square brackets.
Example
Class Demo.CoffeeMakerRESTServer Extends %CSP.REST
{
Parameter HandleCorsRequest = 1
XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ]
{
<Routes>
<Route Url="/test" Method="GET" Call="test"/>
<Route Url="/coffeemakers" Method="GET" Call="GetAll" />
<Route Url="/coffeemaker/:id" Method="GET" Call="GetCoffeeMakerInfo" />
<Route Url="/newcoffeemaker" Method="POST" Call="NewMaker" />
<Route Url="/coffeemaker/:id" Method="PUT" Call="EditMaker" />
<Route Url="/coffeemaker/:id" Method="DELETE" Call="RemoveCoffeemaker"/>
</Routes>
}