The page is incomplete and outdated.
A XCend file consists mainly of a pattern
, which has to be an element
at the root:
element <name> { <body> }
In general, a pattern is a sequence of element
and attribute
declarations:
element <name> (?|* (<name>)?)? { <body> } # and attribute <name> (?)? { <body> }
Elements can be optional or repeated, attributes can only be optional. For repeated elements, the implicit disambiguation identifier can be renamed and accessed like a normal attribute. You can also specify choices between elements and attributes, which means that only one has to exist.
element choice { element a {} | element b {} | attribute c {} }
A body can either be empty, pattern, type or enumeration declaration:
element empty { } # and element types { string | integer | ident } # and element enumeration { "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" }