JPPF, java, parallel computing, distributed computing, grid computing, parallel, distributed, cluster, grid, cloud, open source, android, .net
JPPF, java, parallel computing, distributed computing, grid computing, parallel, distributed, cluster, grid, cloud, open source, android, .net
JPPF

The open source
grid computing
solution

 Home   About   Features   Download   Documentation   Forums 

Execution policy XML schema

From JPPF 5.2 Documentation

Jump to: navigation, search
Main Page > Execution policy reference > Execution policy XML schema

<?xml version="1.0" encoding="UTF-8"?>

<!--
 JPPF.
 Copyright (C) 2005-2016 JPPF Team.
 {{SERVER}}

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<schema xmlns="http://www.w3.org/2001/XMLSchema"
  xmlns:jppf="{{SERVER}}/schemas/ExecutionPolicy.xsd"
  targetNamespace="{{SERVER}}/schemas/ExecutionPolicy.xsd"
  elementFormDefault="unqualified" attributeFormDefault="unqualified"
>

  <element name="ExecutionPolicy" type="jppf:OneRuleType"/>

  <group name="Rule">
    <choice>
      <element name="NOT"            type="jppf:OneRuleType"/>
      <element name="AND"            type="jppf:TwoOrMoreRulesType"/>
      <element name="OR"             type="jppf:TwoOrMoreRulesType"/>
      <element name="XOR"            type="jppf:TwoOrMoreRulesType"/>
      <element name="LessThan"       type="jppf:Numeric2Type"/>
      <element name="AtMost"         type="jppf:Numeric2Type"/>
      <element name="MoreThan"       type="jppf:Numeric2Type"/>
      <element name="AtLeast"        type="jppf:Numeric2Type"/>
      <element name="BetweenII"      type="jppf:Numeric3Type"/>
      <element name="BetweenIE"      type="jppf:Numeric3Type"/>
      <element name="BetweenEI"      type="jppf:Numeric3Type"/>
      <element name="BetweenEE"      type="jppf:Numeric3Type"/>
      <element name="Equal"          type="jppf:EqualType"/>
      <element name="Contains"       type="jppf:ContainsType"/>
      <element name="OneOf"          type="jppf:OneOfType"/>
      <element name="RegExp"         type="jppf:RegExpType"/>
      <element name="CustomRule"     type="jppf:CustomRuleType"/>
      <element name="Script"         type="jppf:ScriptedRuleType"/>
      <element name="Preference"     type="jppf:OneOrMoreRulesType"/>
      <element name="IsInIPv4Subnet" type="jppf:SubnetRuleType"/>
      <element name="IsInIPv6Subnet" type="jppf:SubnetRuleType"/>
      <element name="NodesMatching"  type="jppf:GlobalType"/>
    </choice>
  </group>

  <!-- unary predicates : NOT -->
  <complexType name="OneRuleType">
    <sequence>
      <group ref="jppf:Rule"/>
    </sequence>
  </complexType>

  <!-- n-ary predicates : Preference -->
  <complexType name="OneOrMoreRulesType">
    <sequence minOccurs="1" maxOccurs="unbounded">
      <group ref="jppf:Rule"/>
    </sequence>
  </complexType>

  <!-- binary predicates : AND, OR, XOR -->
  <complexType name="TwoOrMoreRulesType">
    <sequence minOccurs="2" maxOccurs="unbounded">
      <group ref="jppf:Rule"/>
    </sequence>
  </complexType>
  
  <!-- test of type "property_value is less than value" -->
  <complexType name="Numeric2Type">
    <sequence>
      <element name="Property" type="string"/>
      <element name="Value"    type="double"/>
    </sequence>
  </complexType>

  <!-- test of type "property_value is in range [a, b]" -->
  <complexType name="Numeric3Type">
    <sequence>
      <element name="Property" type="string"/>
      <element name="Value"    type="double" minOccurs="2" maxOccurs="2"/>
    </sequence>
  </complexType>

  <!-- test of type "property_value is equal to value" -->
  <complexType name="EqualType">
    <sequence>
      <element name="Property" type="string"/>
      <element name="Value"    type="string"/>
    </sequence>
    <attribute name="valueType" use="optional" default="string">
      <simpleType>
        <restriction base="string">
          <enumeration value="string"/>
          <enumeration value="numeric"/>
          <enumeration value="boolean"/>
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="ignoreCase" type="jppf:TrueFalse" use="optional" default="false"/>
  </complexType>

  <!-- test of type "property_value contains substring" -->
  <complexType name="ContainsType">
    <sequence>
      <element name="Property" type="string"/>
      <element name="Value"    type="string"/>
    </sequence>
    <attribute name="ignoreCase" type="jppf:TrueFalse" use="optional" default="false"/>
  </complexType>

  <!-- test of type "property_value is one of {value1, ... , valueN}" -->
  <complexType name="OneOfType">
    <sequence>
      <element name="Property" type="string"/>
      <element name="Value"    type="string" maxOccurs="unbounded"/>
    </sequence>
    <attribute name="valueType" use="optional" default="string">
      <simpleType>
        <restriction base="string">
          <enumeration value="string"/>
          <enumeration value="numeric"/>
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="ignoreCase" type="jppf:TrueFalse" use="optional" default="false"/>
  </complexType>

  <!-- test of type "property_value matches regular_expression" -->
  <complexType name="RegExpType">
    <sequence>
      <element name="Property" type="string"/>
      <element name="Value"    type="string"/>
    </sequence>
  </complexType>

  <simpleType name="TrueFalse">
    <restriction base="string">
      <enumeration value="true"/>
      <enumeration value="false"/>
    </restriction>
  </simpleType>

  <!-- Subnet matching execution policy -->
  <complexType name="SubnetRuleType">
    <sequence>
      <element name="Subnet" type="string" minOccurs="1" maxOccurs="unbounded"/>
    </sequence>
  </complexType>

  <!-- custom execution policy -->
  <complexType name="CustomRuleType">
    <sequence>
      <element name="Arg" type="string" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
    <attribute name="class" type="string"/>
  </complexType>

  <!-- scripted execution policy -->
  <complexType name="ScriptedRuleType">
    <simpleContent>
      <extension base="string">
        <attribute name="language" type="string"/>
      </extension>
    </simpleContent>
  </complexType>

  <!-- test of type "if there are _operator_(_expected_) nodes that match _execution_policy_" -->
  <complexType name="GlobalType">
    <sequence>
      <group ref="jppf:Rule"/>
    </sequence>
    <attribute name="operator" use="optional" default="EQUAL">
      <simpleType>
        <restriction base="string">
          <enumeration value="EQUAL"/>
          <enumeration value="NOT_EQUAL"/>
          <enumeration value="AT_LEAST"/>
          <enumeration value="AT_MOST"/>
          <enumeration value="MORE_THAN"/>
          <enumeration value="LESS_THAN"/>
        </restriction>
      </simpleType>
    </attribute>
    <attribute name="expected" type="long" use="optional" default="0"/>
  </complexType>

</schema>


Main Page > Execution policy reference > Execution policy XML schema

JPPF Copyright © 2005-2019 JPPF.org Powered by MediaWiki