78 lines
2.2 KiB
Plaintext
78 lines
2.2 KiB
Plaintext
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
|
|
|
|
tree = element tree { attlist.tree,
|
|
(field
|
|
| button)*
|
|
}
|
|
attlist.tree &=
|
|
[ a:defaultValue = "Unknown" ] attribute string { text }?
|
|
attlist.tree &= attribute on_write { text }?
|
|
attlist.tree &= attribute editable { "top" | "bottom" }?
|
|
attlist.tree &= attribute sequence { text }?
|
|
attlist.tree &= attribute colors { text }?
|
|
attlist.tree &=
|
|
[ a:defaultValue = "0" ] attribute fill { "0" | "1" }?
|
|
attlist.tree &=
|
|
[ a:defaultValue = "0" ] attribute keyword_open { "0" | "1" }?
|
|
field = element field { attlist.field, empty }
|
|
attlist.field &= attribute name { text }
|
|
attlist.field &= attribute readonly { "0" | "1" }?
|
|
attlist.field &=
|
|
attribute widget {
|
|
"char"
|
|
| "many2one"
|
|
| "date"
|
|
| "one2many"
|
|
| "selection"
|
|
| "float"
|
|
| "numeric"
|
|
| "float_time"
|
|
| "integer"
|
|
| "datetime"
|
|
| "boolean"
|
|
| "text"
|
|
| "url"
|
|
| "email"
|
|
| "callto"
|
|
| "sip"
|
|
| "progressbar"
|
|
}?
|
|
attlist.field &=
|
|
[ a:defaultValue = "0" ] attribute select { "0" | "1" | "2" }?
|
|
attlist.field &=
|
|
[ a:defaultValue = "0" ] attribute tree_invisible { "0" | "1" }?
|
|
attlist.field &= attribute icon { text }?
|
|
attlist.field &= attribute sum { text }?
|
|
attlist.field &= attribute width { text }?
|
|
attlist.field &=
|
|
[ a:defaultValue = "left_to_right" ] attribute orientation {
|
|
"left_to_right"
|
|
| "right_to_left"
|
|
| "bottom_to_top"
|
|
| "top_to_bottom"
|
|
}?
|
|
attlist.field &= attribute float_time { text }?
|
|
button = element button { attlist.button, empty }
|
|
attlist.button &= attribute help { text }?
|
|
attlist.button &=
|
|
[ a:defaultValue = "Unknown" ] attribute string { text }?
|
|
attlist.button &=
|
|
[ a:defaultValue = "workflow" ]
|
|
attribute type { "workflow" | "object" | "action" }?
|
|
attlist.button &= attribute confirm { text }?
|
|
attlist.button &= attribute name { text }
|
|
attlist.button &= attribute states { text }?
|
|
data = element data { attlist.data, xpath+ }
|
|
attlist.data &= empty
|
|
xpath = element xpath { attlist.xpath,
|
|
(field
|
|
| button
|
|
| tree
|
|
)*
|
|
}
|
|
attlist.xpath &= attribute expr { text }
|
|
attlist.xpath &=
|
|
[ a:defaultValue = "inside" ]
|
|
attribute position { "inside" | "replace" | "replace_attributes" | "after" | "before" }?
|
|
start = tree | data
|