This annex clarifies the existing data types of specification on DSSSL.
DSSSL expressions have the follwing data types:
This type specifies true or false. The value is either #t or #f. This type is used in conditional expressions. #f means false, #t means true, other objects except #t and #f mean true. (See 8.2.2 True and False, and 8.5.1 Booleans.)
The symbol identifies strings for optional semantics. The value is used for specification of DSSSL script as parameters. In an expression, the symbol requires a single quotation (') before the string of symbol. (See 8.5.4 Symbols.)
The keyword specifies names of keyword strings. This type is used for specificaton of a DSSSL script as constant and invariable parameters. In an expression, the keyword requires a single colon (:) after the strings of keywords and some keyword arguments. (See 8.5.5 Keywords.)
The char specifies characters and names of characters. In an expression, the char requires a single sharp (#) and backslash (\) before the character or the name of character. (See 8.5.8 Characters.)
The pair is constructed with two arguments. A list is constructed with head part and other part of a pair; the head part is called car, other part is called cdr.
A pair is converted from a list. When a list is converted from a pair, DSSSL processor should generate an empty list as a tail of the list. The empty list is known as ().
DSSSL expressions have the following numerical types:
A quantity-type is represented as the product of a number and the base unit raised to the power of an integer-type. A number-type is the quantity-type without dimension. A real-number-type is a subtype of the number-type. An integer-type is a subtype of the real-number-type and integer-number-type. The quantity-type has both concepts of exactness and inexactness. An inexactness of the quantity-type is used for a large size of numerical object to be printed or displayed.
A string-type is similar to a string-type of other programming languages. The string-type is enclosed with double quotation (").
A procedure-type is a name of procedure treated as an object in DSSSL.
A node-list is the most basic type of SDQL to specify node lists of grove. A single node should be specified by node-list as a single node list. In DSSSL transformation, this data type with flag specifies and discriminates the result node-list. (See 10 Standard Document Query Language and 10.1.2 Node Lists.)
A named-node-list specifies node lists with name in a grove tree. (See 10 Standard Document Query Language and 10.1.3 Named Node Lists.)
A subgrove-spec specifies a sub-grove. All the sub-grove can be specified by specifying the root of the sub-grove.
Transform-grove-spec specifies information of a grove tranformation.
A flow object class of DSSSL generates a specification of sequence of flow object(sosofo) as the result of execution.