iXML Definitions
This document provides the foundational definitions for understanding iXML syntax and semantics.
Terminology
Basic terms and concepts used in iXML:
Element : Simple XML element
Structure : Compound XML structure containing one or more elements
Operation : Semantic definition of an element
Construct : Semantic definition of a structure
Statement : Executable instance of an operation or construct
Code : Series of statements
Occurrences
Defines how often elements may appear:
single : Element may appear once at most
multiple : Element may appear any number of times including not at all
Input Types
Data types that can be used as input to iXML elements:
var : String referencing a variable ('name') or an array item with a specific key ('name[key]', 'name.key') (unnecessary whitespace characters are automatically stripped)
bool : Applicable if set and not empty
int : Arithmetic expression cast to an integer number
float : Arithmetic expression cast to a floating point number
date : Arithmetic expression cast to an integer number and interpreted as a Unix timestamp
string : Arbitrary byte sequence or series of Unicode (UTF-8) characters
regexp : String interpreted as a Perl-compatible regular expression pattern enclosed in delimiters ('/[a-z]+/i')
type : Meta type (case-insensitive)
ixml : Arbitrary code
Result Types
Data types that can be returned by iXML operations:
null : NULL
bool : Boolean
int : Integer number
float : Floating point number
string : String (arbitrary byte sequence)
array : Array (collection of items in an ordered map that associates keys to values)
function : Function (closed subroutine)
macro : Macro (open subroutine)
class : Class (array prototype)
Predicates
Special conditions that affect operation behavior:
no-result-propagation : Result is not propagated to paternal statement