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> 
  }