In what follows, the actf prefix is associated with the URI http://www.eclipse.org/actf/validation
. This URI is
subject to change in the near future as the project matures.
<actf:rulebase
actf:name = #name
actf:enable = true | false
actf:scriptlang = #script_language
actf:model = #model
actf:version = #version>
[<actf:metadata>
[<actf:aliases>
<actf:alias
actf:name = #alias_name
actf:value = [#field_name | #fully_qualified_field_name | #method_alias] />]+
</actf:aliases>]?
[<actf:scripts>
[<actf:script
actf:name = #script_name
actf:src = #source_file
/>]*
#script_code
</actf:scripts>]?
</actf:metadata>]
[<actf:ruleset>
actf:name = #name
actf:enable = true | false
actf:executionPoint = #exec_point_name
actf:ruleFactory = #class_name>
[< [#alias_name | #class_name] >
[
#actf:or |
#actf:and |
#actf:scripttest |
#actf_rule
]?
#script_code
</[#alias_name | #class_name] >]+
</actf:ruleset>]+
[<actf:executionPoint
actf:name = #name
actf:validator = #class_name>
[<actf:modelTransition
actf:regexp = #regular_expression
actf:rulebase = #rule_base_name
actf:executionPoint = #exec_point_name />]*
</actf:executionPoint>]+
</actf:rulebase>
actf:or = <actf:or
actf:id = #rule_id
actf:name = #rule_name
actf:message = string
actf:severity = [ ERROR | INFO | WARNING ]
actf:enable = [ true | false ]
actf:ignoreifnull = [ true | false ]
>
[ #actf_rule ]+
</actf:or>
actf:and = <actf:and
actf:id = #rule_id
actf:name = #rule_name
actf:message = string
actf:severity = [ ERROR | INFO | WARNING ]
actf:enable = [ true | false ]
actf:ignoreifnull = [ true | false ]
>
[ #actf_rule ]+
</actf:and>
actf:scripttest = <actf:scripttest
actf:id = #rule_id
actf:name = #rule_name
actf:message = string
actf:severity = [ ERROR | INFO | WARNING ]
actf:enable = [ true | false ]
actf:ignoreifnull = [ true | false ]
actf:polymorphic = [ true | false ]
#script_code
</actf:scripttest>
actf_rule = <[ #alias_name | #field_name | #method_name ]
actf:message = string
actf:severity = [ ERROR | INFO | WARNING ]
actf:enable = [ true | false ]
actf:ignoreifnull = [ true | false ]
actf:polymorphic = [ true | false ]
[
#actf:min |
#actf:max |
#actf:range |
#actf:eq |
#actf:neq |
#actf:regexp |
#actf:instanceof |
#actf:iterator |
#actf:param
]?
>
[#script_code]?
</[ #alias_name | #field_name | #method_name ]>
actf:min = <actf:min = #numeric_value/>
actf:max = <actf:max = #numeric_value/>
actf:range = <actf:range = #numeric_value, #numeric_value/>
actf:eq = <actf:eq = #numeric_value/>
actf:neq = <actf:neq = #numeric_value/>
actf:regexp = <actf:regexp = regular_expression/>
actf:instanceof = [#alias_name | #class_name]/>
actf:iterator = <actf:iterator = [ "none" | #iterator_class ]/>
script_language = ["javascript"]
model = ["swt" | "swing" | "mozdom" | "msaa" | "ia2" ]
script_code = language dependent script code
field_name = string representing field_name_of_class (ex. "accessibleName")
fully_qualified_field_name = string representing field name of class in other package
(ex. "javax.accessibility.AccessibleRelation.LABELED_BY")
method_alias = string representing method sequence where methods are delineated by a "!"
(ex. "!getRootPane!getDefaultButton")
alias_name = string representing alias
class_name = string representing fully qualified class name
validator_class = string representing fully qualified validator class name
iterator_class = string representing fully qualified iterator class name
namespace = string representing a package name
name = string representing the name of entity
field_name = string representing the name of a class field
method_name = string representing the name of a class method
version = string representing version number
numeric_value = string representing a valid numeric value
exec_point_name = string representing the name of execution point
rule_base_name = string representing the name of rulebase
"?" - 0 or 1 occurance
"*" - 0, 1, or any number of occurances
"+" - at least 1 occurance
"|" - either occurance
<actf:script>
element using this attribute. Any relative or absolute file path.==
operator for numeric values and the equals(Object)
method for Strings; all other equality tests should be done in script code. (Any numeric or string literal.)==
operator for numeric literals and equals(Object)
for strings; use script code for all other non-equality tests. (Any numeric or string literal.)