Skip to main content

Syntax of XData Blocks in Class Definitions

Describes the structure of an XData block. See “XData Blocks” for links to general information on defining XData blocks.

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” in Defining and Using Classes.

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

See Also

FeedbackOpens in a new tab