configurationengine/source/plugins/common/ConeRulePlugin/ruleplugin/xsd/ruleml3.xsd
author m2lahtel
Tue, 10 Aug 2010 14:29:28 +0300
changeset 3 e7e0ae78773e
permissions -rw-r--r--
ConE 1.2.11 release
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     1
<?xml version="1.0" encoding="UTF-8"?>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     2
<xs:schema 
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     3
	xmlns:xs="http://www.w3.org/2001/XMLSchema"
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     4
	targetNamespace="http://www.s60.com/xml/ruleml/3"
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     5
	xmlns:ruleml="http://www.s60.com/xml/ruleml/3"
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     6
	elementFormDefault="qualified">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     7
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     8
    <xs:element name="ruleml">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
     9
        <xs:annotation>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    10
            <xs:documentation>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    11
                RuleML v3 implementation for specifying rules to execute.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    12
            </xs:documentation>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    13
        </xs:annotation>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    14
        <xs:complexType>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    15
            <xs:choice minOccurs="0" maxOccurs="unbounded">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    16
                <xs:element name="rule" type="xs:string">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    17
                    <xs:annotation>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    18
                        <xs:documentation>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    19
                            <![CDATA[
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    20
                            <p>The rule element specifies a single rule to execute.</p><br/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    21
                            
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    22
                            <p>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    23
                            For example:<br/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    24
                            <b>&lt;rule>${MyFeature.MySetting1} == 'test' configures ${MyFeature.MySetting2} = '1'&lt;/rule></b><br/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    25
                            This would cause the value '1' to be assigned to the setting 'MyFeature.MySetting2'
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    26
                            if the value of the setting 'MyFeature.MySetting1' is 'test'.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    27
                            </p><br/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    28
                            
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    29
                            <p>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    30
                            Arbitrary Python code can also be executed in the rule by enclosing the eval block
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    31
                            with {% %}. For example:<br/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    32
                            <b>&lt;rule>True configures ${MyFeature.MySetting} = {% get_some_value() %}&lt;/rule></b><br/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    33
                            This would cause the value got from evaluating the Python function call
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    34
                            get_some_value() to be assigned to the setting 'MyFeature.MySetting'.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    35
                            </p><br/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    36
                            
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    37
                            <p>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    38
                            Any settings referenced inside an eval block must be enclosed with ${ }
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    39
                            to differentiate them from the Python code. For example:<br/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    40
                              <b>&lt;rule>True configures ${MyFeature.MySetting} = {% get_some_value(${MyFeature.MySetting1}) %}&lt;/rule></b><br/>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    41
                            This would cause the value of the setting 'MyFeature.MySetting1' to be passed as a
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    42
                            parameter to the function call.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    43
                            The actual feature object handled by ConE can be accessed by enclosing the setting
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    44
                            reference with @{ }.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    45
                            </p><br/>                            
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    46
                            
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    47
                            <p>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    48
                            Any functions or variables (like get_some_value() in the above examples) need
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    49
                            to be defined using eval_globals elements inside the ruleml element.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    50
                            </p>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    51
                            ]]>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    52
                        </xs:documentation>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    53
                    </xs:annotation>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    54
                </xs:element>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    55
                <xs:element name="eval_globals" type="ruleml:evalGlobalsType">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    56
                    <xs:annotation>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    57
                        <xs:documentation>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    58
                            An eval_globals block can be used to add Python variables
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    59
                            or functions to the evaluation context of the rules contained
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    60
                            within the current ruleml implementation. The Python code can be contained
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    61
                            either directly inside the XML element or inside a file pointed by the
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    62
                            'file' attribute.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    63
                        </xs:documentation>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    64
                    </xs:annotation>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    65
                </xs:element>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    66
            </xs:choice>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    67
        </xs:complexType>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    68
    </xs:element>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    69
    
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    70
    <xs:complexType name="evalGlobalsType">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    71
        <xs:simpleContent>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    72
            <xs:extension base="xs:string">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    73
                <xs:attribute name="file" type="xs:string" use="optional">
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    74
                    <xs:annotation>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    75
                        <xs:documentation>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    76
                            Path to the file containing the Python code of the eval_globals element.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    77
                            Should be a path relative to the current implementation file.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    78
                            Specifying the 'file' attribute causes the text content of the eval_globals
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    79
                            element to be ignored.
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    80
                        </xs:documentation>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    81
                    </xs:annotation>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    82
                </xs:attribute>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    83
            </xs:extension>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    84
        </xs:simpleContent>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    85
    </xs:complexType>
e7e0ae78773e ConE 1.2.11 release
m2lahtel
parents:
diff changeset
    86
</xs:schema>