blob: c954efbf5269c992df706c15e02d54c2f4a2d266 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you 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.
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://ofbiz.apache.org/Simple-Method" targetNamespace="http://ofbiz.apache.org/Simple-Method">
<!--
==================================================
========== The Simple Methods Section ==========
==================================================
(see further down for the Simple Map Processor Section)
-->
<!-- Abstract elements and element groups -->
<xs:element name="CallOperations" abstract="true"/>
<xs:element name="EventOperations" abstract="true"/>
<xs:element name="ServiceOperations" abstract="true"/>
<xs:element name="EnvOperations" abstract="true"/>
<xs:element name="EntityMiscOperations" abstract="true"/>
<xs:element name="EntityFindOperations" abstract="true"/>
<xs:element name="EntityValueOperations" abstract="true"/>
<xs:element name="EntityListOperations" abstract="true"/>
<xs:element name="EntityTxOperations" abstract="true"/>
<xs:element name="ControlOperations" abstract="true"/>
<xs:element name="IfBasicOperations" abstract="true"/>
<xs:element name="IfOtherOperations" abstract="true"/>
<xs:element name="OtherOperations" abstract="true"/>
<xs:group name="AllOperations">
<xs:choice>
<xs:element ref="CallOperations"/>
<xs:element ref="EventOperations"/>
<xs:element ref="ServiceOperations"/>
<xs:element ref="EnvOperations"/>
<xs:element ref="EntityMiscOperations"/>
<xs:element ref="EntityFindOperations"/>
<xs:element ref="EntityValueOperations"/>
<xs:element ref="EntityListOperations"/>
<xs:element ref="EntityTxOperations"/>
<xs:element ref="ControlOperations"/>
<xs:element ref="IfBasicOperations"/>
<xs:element ref="IfOtherOperations"/>
<xs:element ref="OtherOperations"/>
</xs:choice>
</xs:group>
<xs:group name="IfConditions">
<xs:choice>
<xs:element ref="IfCombineConditions"/>
<xs:element ref="IfBasicOperations"/>
</xs:choice>
</xs:group>
<xs:element name="IfCombineConditions" abstract="true"/>
<!-- Reusable types -->
<xs:simpleType name="booleanConst">
<xs:restriction base="xs:token">
<xs:enumeration value="true" />
<xs:enumeration value="false" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="booleanExpr">
<xs:restriction base="xs:string">
<xs:pattern value="\$\{.+\}|true|false" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="javaClassName">
<xs:annotation>
<xs:documentation>
The Java data type.
Optional. Attribute type: constant. Attribute must contain a valid Java class name.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:pattern value="[a-zA-Z_]{1}[a-zA-Z0-9_$.]+" />
</xs:restriction>
</xs:simpleType>
<!-- Reusable attributes and attribute groups -->
<xs:simpleType name="fieldType">
<xs:annotation>
<xs:documentation>
The name of the field to set. The target of the assignment.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:minLength value="1" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="error-list-name">
<xs:annotation>
<xs:documentation>
The name of the error message list. It will be created if it does not exist.
Defaults to "error_list".
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
<xs:complexType name="attlist.operatorRequired">
<xs:attribute name="operator" use="required">
<xs:annotation>
<xs:documentation>
The comparison operator. The operator describes the l-value compared to the r-value.
The "contains" operator returns true if the l-value contains the r-value.
This operator does not perform type conversions.
The l-value must be a collection type or a String. A null l-value evaluates to false.
Required. Attribute type: constant.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="equals"/>
<xs:enumeration value="not-equals"/>
<xs:enumeration value="less"/>
<xs:enumeration value="less-equals"/>
<xs:enumeration value="greater"/>
<xs:enumeration value="greater-equals"/>
<xs:enumeration value="contains"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="attlist.operatorOptionalRvalue">
<xs:attribute name="operator" use="required">
<xs:annotation>
<xs:documentation>
The comparison operator. The operator describes the l-value compared to the r-value.
The "contains" operator returns true if the l-value contains the r-value.
This operator does not perform type conversions.
The l-value must be a collection type or a String. A null l-value evaluates to false.
The "is-null", "is-not-null", and "is-empty" operators
do not require an r-value. Any r-values will be ignored.
Required. Attribute type: constant.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="equals"/>
<xs:enumeration value="not-equals"/>
<xs:enumeration value="less"/>
<xs:enumeration value="less-equals"/>
<xs:enumeration value="greater"/>
<xs:enumeration value="greater-equals"/>
<xs:enumeration value="contains"/>
<xs:enumeration value="is-null"/>
<xs:enumeration value="is-not-null"/>
<xs:enumeration value="is-empty"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="attlist.check-permission">
<xs:attribute name="permission" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The name of the permission.
The user must belong to a security group that includes this permission.
Required. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="action" type="xs:string">
<xs:annotation>
<xs:documentation>
If an action is specified the user can have one of two permissions: the permission + "_ADMIN" or permission + action.
Examples of actions include "_CREATE", "_VIEW", etc.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:simpleType name="delegator-name">
<xs:annotation>
<xs:documentation>
An alternate delegator name. When specified, the entity operation will use the
alternate delegator instead of the current delegator.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!--
=============================
===== The Root Elements =====
=============================
-->
<xs:element name="simple-methods">
<xs:annotation>
<xs:documentation>
The document-level element of Mini-language files.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="simple-method" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="simple-method">
<xs:annotation>
<xs:documentation>
Contains a block of Mini-language code.
A simple method can be called in either an event context from the Control
Servlet (or another event) or in a service context through the Service
Engine, or any other component that has access to a service
dispatcher.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="AllOperations" minOccurs="0" maxOccurs="unbounded" />
<xs:attribute name="method-name" type="javaClassName" use="required">
<xs:annotation>
<xs:documentation>
A name (preferably a legal Java identifier) for this method.
This name must be unique for the XML file it is in as it will be used to reference this method externally.
Required. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="short-description" type="xs:string">
<xs:annotation>
<xs:documentation>
A short description of the method - used for documentation.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="login-required" type="booleanConst">
<xs:annotation>
<xs:documentation>
Require a user login to run this method. Defaults to "true".
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="use-transaction" type="booleanConst">
<xs:annotation>
<xs:documentation>
Create a transaction if none exists for this thread. Defaults to "true".
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="default-error-code" type="xs:string">
<xs:annotation>
<xs:documentation>
The default error return code. Defaults to "error".
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="default-success-code" type="xs:string">
<xs:annotation>
<xs:documentation>
The default success return code. Defaults to "success".
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="event-request-object-name" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the field containing the javax.servlet.ServletRequest object. Defaults to "request".
Used when the simple method is invoked as an event, it is ignored otherwise.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="event-response-object-name" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the field containing the javax.servlet.ServletResponse object. Defaults to "response".
Used when the simple method is invoked as an event, it is ignored otherwise.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="event-session-object-name" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the field containing the javax.servlet.http.HttpSession object. Defaults to "session".
Used when the simple method is invoked as an event, it is ignored otherwise.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="event-response-code-name" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the field containing the event response code. Defaults to "_response_code_".
Used when the simple method is invoked as an event, it is ignored otherwise.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="event-error-message-name" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the field containing the event error message. Defaults to "_error_message_".
Used when the simple method is invoked as an event, it is ignored otherwise.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="event-error-message-list-name" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the field containing the event error message list. Defaults to "_error_message_list_".
Used when the simple method is invoked as an event, it is ignored otherwise.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="event-event-message-name" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the field containing the event message. Defaults to "_event_message_".
Used when the simple method is invoked as an event, it is ignored otherwise.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="event-event-message-list-name" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the field containing the event message list. Defaults to "_event_message_list_".
Used when the simple method is invoked as an event, it is ignored otherwise.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="service-response-message-name" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the field containing the service response message. Defaults to "responseMessage".
Used when the simple method is invoked as a service, it is ignored otherwise.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="service-error-message-name" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the field containing the service error message. Defaults to "errorMessage".
Used when the simple method is invoked as a service, it is ignored otherwise.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="service-error-message-list-name" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the field containing the service error message list. Defaults to "errorMessageList".
Used when the simple method is invoked as a service, it is ignored otherwise.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="service-error-message-map-name" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the field containing the service error message map. Defaults to "errorMessageMap".
Used when the simple method is invoked as a service, it is ignored otherwise.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="service-success-message-name" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the field containing the service success message. Defaults to "successMessage".
Used when the simple method is invoked as a service, it is ignored otherwise.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="service-success-message-list-name" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the field containing the service success message list. Defaults to "successMessageList".
Used when the simple method is invoked as a service, it is ignored otherwise.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<!--
=================================
===== Assignment Operations =====
=================================
-->
<xs:element name="add-error" substitutionGroup="ControlOperations">
<xs:annotation>
<xs:documentation>
Adds an error message to an error message list.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:element ref="fail-message" />
<xs:element ref="fail-property" />
</xs:choice>
<xs:attribute name="error-list-name" type="error-list-name"/>
</xs:complexType>
</xs:element>
<xs:element name="assert" substitutionGroup="EnvOperations">
<xs:annotation>
<xs:documentation>
Adds an error message to the error message list for each condition that evaluates to false.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group maxOccurs="unbounded" ref="IfConditions" />
<xs:attribute type="xs:string" name="title">
<xs:annotation>
<xs:documentation>
The title of the assert operation. The title is used in test reports.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="error-list-name" type="error-list-name"/>
</xs:complexType>
</xs:element>
<xs:element name="check-id" substitutionGroup="EnvOperations">
<xs:annotation>
<xs:documentation>
Evaluates the specified field, and adds an error message to the error message list if the field's value is not a valid database ID value.
<![CDATA[Valid IDs can be any sequence of characters or digits but must not contain the following characters:
space [ ], double quote ["], single quote ['], ampersand [&], question mark [?],
less-than sign [<], greater-than sign [>], forward-slash [/], back-slash [\].]]>
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0">
<xs:element ref="fail-message" />
<xs:element ref="fail-property" />
</xs:choice>
<xs:attribute type="xs:string" name="field" use="required">
<xs:annotation>
<xs:documentation>
The name of the field that contains the ID value to check.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="error-list-name" type="error-list-name"/>
</xs:complexType>
</xs:element>
<xs:element name="check-permission" substitutionGroup="IfOtherOperations">
<xs:annotation>
<xs:documentation>
Checks to see if the current user has the specified permission.
If the user does not have the specified permission or if there is no user associated with the context
then the failure message from fail-message or fail-property will be added to the
specified error list.
Note that this element must be followed by the check-errors element for it to do anything meaningful.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="attlist.check-permission">
<xs:sequence>
<xs:element name="alt-permission" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Declares an alternate permission. Alternate permissions are checked when the primary permission check fails.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="attlist.check-permission">
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:choice>
<xs:element ref="fail-message" />
<xs:element ref="fail-property" />
</xs:choice>
</xs:sequence>
<xs:attribute name="error-list-name" type="error-list-name"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="clear-field" substitutionGroup="EnvOperations">
<xs:annotation>
<xs:documentation>
Sets the value of the specified field to null.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="field" type="fieldType" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="create-object" substitutionGroup="EnvOperations">
<xs:annotation>
<xs:documentation>
Creates an instance of the specified class.
The string and field sub-elements are passed to the constructor method as arguments in the order they are specified.
A runtime exception will be thrown if the sub-elements do not match the constructor method arguments.
Deprecated - use the script element.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="field" />
<xs:element ref="string" />
</xs:choice>
<xs:attribute name="field" type="fieldType" use="required" />
<xs:attribute name="class-name" type="javaClassName" use="required">
<xs:annotation>
<xs:documentation>
The name of the class to construct an instance of.
Required. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="fail-message">
<xs:annotation>
<xs:documentation>
Declares an error message.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="message" use="required">
<xs:annotation>
<xs:documentation>
The error message text.
Required. Attribute type: constant+expr
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="fail-property">
<xs:annotation>
<xs:documentation>
Declares an error message found in a properties file.
Typically used for internationalized messages.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="resource" use="required">
<xs:annotation>
<xs:documentation>
The name of a properties file on the classpath.
Required. Attribute type: constant
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="property" use="required">
<xs:annotation>
<xs:documentation>
The property key.
Required. Attribute type: constant
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="field">
<xs:annotation>
<xs:documentation>
Declares an environment field to be passed as an argument to an object method call.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="field" use="required">
<xs:annotation>
<xs:documentation>
The name of the environment field to use.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" type="javaClassName">
<xs:annotation>
<xs:documentation>
The Java class of the argument. Defaults to "java.lang.String".
It should be the type specified in the method signature, not the type of the object being
passed in.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="field-to-list" substitutionGroup="EnvOperations">
<xs:annotation>
<xs:documentation>
Appends an object to the specified list.
Deprecated - use the set element.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="field" use="required">
<xs:annotation>
<xs:documentation>
The field name of the object to append. The operation does nothing if the field does not exist.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="list" use="required">
<xs:annotation>
<xs:documentation>
The field name of the list that the object will be appended to.
If the list does not exist, one will be created.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="field-to-request" substitutionGroup="EventOperations">
<xs:annotation>
<xs:documentation>
Copies a field to a servlet request attribute.
Valid only when the simple-method is called as an event, it is ignored otherwise.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="field" use="required">
<xs:annotation>
<xs:documentation>
The name of the field to copy from. The source of the assignment.
The operation does nothing if the field does not exist.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="request-name">
<xs:annotation>
<xs:documentation>
The servlet request attribute name. The target of the assignment.
Defaults to the value of the field attribute.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="field-to-result" substitutionGroup="EnvOperations">
<xs:annotation>
<xs:documentation>
Copies a field to a service OUT attribute.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="field" use="required">
<xs:annotation>
<xs:documentation>
The name of the field to copy from. The source of the assignment.
The operation does nothing if the field does not exist.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="result-name">
<xs:annotation>
<xs:documentation>
The name of the result field to set. The target of the assignment.
Defaults to the value of the field attribute.
Optional. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="field-to-session" substitutionGroup="EventOperations">
<xs:annotation>
<xs:documentation>
Copies a field to a servlet session attribute.
Valid only when the simple-method is called as an event, it is ignored otherwise.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="field" use="required">
<xs:annotation>
<xs:documentation>
The name of the field to copy from. The source of the assignment.
The operation does nothing if the field does not exist.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="session-name">
<xs:annotation>
<xs:documentation>
The servlet session attribute name. The target of the assignment.
Defaults to the value of the field attribute.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="first-from-list" substitutionGroup="EnvOperations">
<xs:annotation>
<xs:documentation>
Assigns the first (lowest order) entry in a list to a field.
If the list does not exist or is empty, assigns null to a field.
Deprecated - use the set element.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="entry" use="required">
<xs:annotation>
<xs:documentation>
The name of the field to set. The target of the assignment.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="list" use="required">
<xs:annotation>
<xs:documentation>
The name of the list that contains the object to copy.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="list-to-list" substitutionGroup="EnvOperations">
<xs:annotation>
<xs:documentation>
Copy a list to another list.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="list" use="required">
<xs:annotation>
<xs:documentation>
Name of the list to copy from. The operation does nothing if the list does not exist.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="to-list" use="required">
<xs:annotation>
<xs:documentation>
Name of the list to copy to. If the list does not exist, one will be created.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="map-to-map" substitutionGroup="EnvOperations">
<xs:annotation>
<xs:documentation>
Copies a map to another map.
If a target map is not specified, the source map is copied to the current
environment (memory space).
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="map" use="required">
<xs:annotation>
<xs:documentation>
The name of the map to copy from. The operation does nothing if the map does not exist.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="to-map">
<xs:annotation>
<xs:documentation>
The name of the map to copy to. If the target map does not exist, one will be created.
If this attribute is empty, the source map will be copied to the current environment.
Optional. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="now" substitutionGroup="OtherOperations">
<xs:annotation>
<xs:documentation>
Sets a field to the current system time.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="field" type="fieldType" use="required" />
<xs:attribute name="type">
<xs:annotation>
<xs:documentation>
The field data type. Defaults to "java.sql.Timestamp".
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="java.sql.Timestamp"/>
<xs:enumeration value="java.sql.Date" />
<xs:enumeration value="java.sql.Time" />
<xs:enumeration value="java.util.Date" />
<xs:enumeration value="java.lang.Long" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="now-date-to-env" substitutionGroup="OtherOperations">
<xs:annotation>
<xs:documentation>
Sets a field to a java.sql.Date object initialized to the current system time.
Deprecated - use now.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="field" type="fieldType" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="now-timestamp" substitutionGroup="OtherOperations">
<xs:annotation>
<xs:documentation>
Sets a field to a java.sql.Timestamp object initialized to the current system time.
Deprecated - use now.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="field" type="fieldType" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="order-by">
<xs:annotation>
<xs:documentation>
Declares a field or map key to sort on.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="field-name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The name of the field or map key to sort on.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="order-map-list" substitutionGroup="EnvOperations">
<xs:annotation>
<xs:documentation>
Sorts a list of maps. Maps are sorted by the keys specified in the order-by sub-elements.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="order-by" />
</xs:sequence>
<xs:attribute type="xs:string" name="list" use="required">
<xs:annotation>
<xs:documentation>
The name of the field containing the list to be sorted. The operation does nothing if the list is not found.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="property-to-field" substitutionGroup="OtherOperations">
<xs:annotation>
<xs:documentation>
Assigns a resource property value to a field.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="field" type="fieldType" use="required" />
<xs:attribute type="xs:string" name="resource" use="required">
<xs:annotation>
<xs:documentation>
The name of a properties resource. Can be a file on the classpath or
a resource defined in the SystemProperty entity.
Required. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="property" use="required">
<xs:annotation>
<xs:documentation>
The property key.
Required. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="default">
<xs:annotation>
<xs:documentation>
The default value to use if the specified property value is null or empty.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="booleanConst" name="no-locale">
<xs:annotation>
<xs:documentation>
Suppress property value localization. The user's/system locale will be ignored
when retriving the property value.
Defaults to "false".
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="arg-list">
<xs:annotation>
<xs:documentation>
The name of an argument list to be used with a formatting string.
The argument list is applied to the property value.
The attribute does nothing if the argument list is not found.
See the java.text.MessageFormat class for more information.
Optional. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="arg-list-name">
<xs:annotation>
<xs:documentation>
Deprecated - use the arg-list attribute.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="request-parameters-to-list" substitutionGroup="EventOperations">
<xs:annotation>
<xs:documentation>
Appends a servlet request parameter list to a list.
Valid only when the simple-method is called as an event, it is ignored otherwise.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="request-name" use="required">
<xs:annotation>
<xs:documentation>
The servlet request parameter name. All matching parameter values will be added to the list.
Required. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="list">
<xs:annotation>
<xs:documentation>
The name of the field containing the list. If the list does not exist, one will be created.
Defaults to the request-name attribute value.
Optional. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="list-name">
<xs:annotation>
<xs:documentation>
Deprecated - use the list attribute.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="request-to-field" substitutionGroup="EventOperations">
<xs:annotation>
<xs:documentation>
Copies a servlet request attribute to a field.
Valid only when the simple-method is called as an event, it is ignored otherwise.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="field" type="fieldType" use="required" />
<xs:attribute type="xs:string" name="request-name">
<xs:annotation>
<xs:documentation>
The servlet request attribute name. Defaults to the value of field attribute.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="default">
<xs:annotation>
<xs:documentation>
A default value to use if the request attribute does not exist.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="session-to-field" substitutionGroup="EventOperations">
<xs:annotation>
<xs:documentation>
Copies a servlet session attribute to a field.
Valid only when the simple-method is called as an HTTP event, it is ignored otherwise.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="field" type="fieldType" use="required" />
<xs:attribute type="xs:string" name="session-name">
<xs:annotation>
<xs:documentation>
The servlet session attribute name. Defaults to the value of the field attribute.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="default">
<xs:annotation>
<xs:documentation>
A default value to use if the request attribute does not exist.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="set" substitutionGroup="EnvOperations">
<xs:annotation>
<xs:documentation>
Assigns a field from an expression or script, or from a constant value. Also supports a default value and type conversion.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="field" type="fieldType" use="required" />
<xs:attribute type="xs:string" name="from">
<xs:annotation>
<xs:documentation>
An expression or script that returns an object or null. The source of the assignment.
A script must be prefixed with the script language followed by a colon (":").
Required if the value attribute is empty. Attribute types: expression, script.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="from-field">
<xs:annotation>
<xs:documentation>
Deprecated - use the from attribute.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="value">
<xs:annotation>
<xs:documentation>
A constant value, or a constant that includes an expression. The source of the assignment.
Required if the from attribute is empty. Attribute type: constant+expr.
Defaults to java.lang.String data type.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="default">
<xs:annotation>
<xs:documentation>
A default value that is used when the from attribute evaluates to null or empty.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="default-value">
<xs:annotation>
<xs:documentation>
Deprecated - use the default attribute.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="javaClassName" name="type">
<xs:annotation>
<xs:documentation>
The Java data type to convert to. "NewList" will create a new java.util.List, "NewMap" will create a new java.util.Map.
Otherwise, the attribute must contain a valid Java class name.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="format">
<xs:annotation>
<xs:documentation>
Format to be used for object type conversion. Used when the type attribute is not empty.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="set-if-null" type="booleanConst">
<xs:annotation>
<xs:documentation>
Controls if the target field can be set to null when the from attribute evaluates to null.
Defaults to "false".
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="set-if-empty" type="booleanConst">
<xs:annotation>
<xs:documentation>
Controls if the target field can be set to an empty value. The meaning of "empty" depends on the Java data type.
Defaults to "true".
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="set-calendar" substitutionGroup="EnvOperations">
<xs:annotation>
<xs:documentation>
Adjusts a Timestamp by a specified time duration.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="field" type="fieldType" use="required" />
<xs:attribute type="xs:string" name="from">
<xs:annotation>
<xs:documentation>
An expression or script that returns an object or null. The source of the assignment.
A script must be prefixed with the script language followed by a colon (":").
Required if the value attribute is empty. Attribute types: expression, script.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="from-field">
<xs:annotation>
<xs:documentation>
Deprecated - use the from attribute.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="value">
<xs:annotation>
<xs:documentation>
A constant value, or a constant that includes an expression. The source of the assignment.
Required if the from attribute is empty. Attribute type: constant+expr.
Defaults to java.lang.String data type.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="default">
<xs:annotation>
<xs:documentation>
A default value that is used when the from attribute evaluates to null or empty.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="default-value">
<xs:annotation>
<xs:documentation>
Deprecated - use the default attribute.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="set-if-null" type="booleanConst">
<xs:annotation>
<xs:documentation>
Controls if the target field can be set to null when the from attribute evaluates to null.
Defaults to "false".
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="years">
<xs:annotation>
<xs:documentation>
Add (optionally using +) or subtract (using -) a number of year(s).
If an expression is used, it should evaluate to an integer.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="months">
<xs:annotation>
<xs:documentation>
Add (optionally using +) or subtract (using -) a number of month(s).
If an expression is used, it should evaluate to an integer.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="days">
<xs:annotation>
<xs:documentation>
Add (optionally using +) or subtract (using -) a number of days(s).
If an expression is used, it should evaluate to an integer.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="hours">
<xs:annotation>
<xs:documentation>
Add (optionally using +) or subtract (using -) a number of hour(s).
If an expression is used, it should evaluate to an integer.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="minutes">
<xs:annotation>
<xs:documentation>
Add (optionally using +) or subtract (using -) a number of minute(s).
If an expression is used, it should evaluate to an integer.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="seconds">
<xs:annotation>
<xs:documentation>
Add (optionally using +) or subtract (using -) a number of second(s).
If an expression is used, it should evaluate to an integer.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="millis">
<xs:annotation>
<xs:documentation>
Add (optionally using +) or subtract (using -) a number of millisecond(s).
If an expression is used, it should evaluate to an integer.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="period-align-start">
<xs:annotation>
<xs:documentation>
Align the adjusted date to the start of a period.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="year" />
<xs:enumeration value="month" />
<xs:enumeration value="week" />
<xs:enumeration value="day" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="period-align-end">
<xs:annotation>
<xs:documentation>
Align the adjusted date to the end of a period.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="year" />
<xs:enumeration value="month" />
<xs:enumeration value="week" />
<xs:enumeration value="day" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute type="xs:string" name="locale">
<xs:annotation>
<xs:documentation>
A locale value (eg: en). The locale selects the calendar to be used for the adjustment.
Defaults to the environment locale.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="time-zone">
<xs:annotation>
<xs:documentation>
A time zone value (eg: GMT).
Defaults to the environment time zone.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="set-current-user-login" substitutionGroup="OtherOperations">
<xs:annotation>
<xs:documentation>
Sets the UserLogin entity value to be used for authentication for the rest of the method.
This is mostly used for calling services, etc.
This element is deprecated. You can pass an alternate UserLogin
entity value to the called service's IN attributes.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="value-field" use="required">
<xs:annotation>
<xs:documentation>
The name of the field that contains the UserLogin entity value.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="set-service-fields" substitutionGroup="CallOperations">
<xs:annotation>
<xs:documentation>
Copies elements from a source map that match a service's IN or OUT attributes to a target map.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="service-name" use="required">
<xs:annotation>
<xs:documentation>
The name of the service.
Required. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="map" use="required">
<xs:annotation>
<xs:documentation>
The map to copy the matching attributes from.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="to-map" use="required">
<xs:annotation>
<xs:documentation>
The map to copy the matching attributes to.
If the map does not exist, a new one will be created.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="mode">
<xs:annotation>
<xs:documentation>
The service attributes mode - IN or OUT. Defaults to "IN".
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="IN" />
<xs:enumeration value="OUT" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="string">
<xs:annotation>
<xs:documentation>
Declares a java.lang.String to be passed as an argument to a method call.
The String can be contained in the value attribute and/or in the element body.
The element body text is appended to the value attribute text.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="value">
<xs:annotation>
<xs:documentation>
The String text.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="string-append" substitutionGroup="EnvOperations">
<xs:annotation>
<xs:documentation>
Performs string concatenation and formatting. The operation starts by applying
an argument list (if found) to the string attribute value, the result is
prepended by the prefix attribute value, and the suffix attribute value is
appended to the result. If the string specified in the field attribute exists,
the final result is appended to it, else the field is set to the final result.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="field" use="required">
<xs:annotation>
<xs:documentation>
The target of the string concatention.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="string" use="required">
<xs:annotation>
<xs:documentation>
The string to append to the field named in the field attribute.
This can be a formatting string that is used with the argument list
specified in the arg-list attribute.
Required. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="arg-list">
<xs:annotation>
<xs:documentation>
The name of an argument list to be used with a formatting string.
The argument list is applied to the string attribute value.
The attribute does nothing if the argument list is not found.
See the java.text.MessageFormat class for more information.
Optional. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="prefix">
<xs:annotation>
<xs:documentation>
A string that will be prepended to the string attribute value.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="suffix">
<xs:annotation>
<xs:documentation>
A string that will be appended to the string attribute value.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="string-to-list" substitutionGroup="EnvOperations">
<xs:annotation>
<xs:documentation>
Adds a string to a list of strings. Deprecated - use the set element.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="string" use="required">
<xs:annotation>
<xs:documentation>
The string to add to the list specified in the list attribute.
Required. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="list" use="required">
<xs:annotation>
<xs:documentation>
List to add the string to. If the list does not exist, one will be created.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="arg-list">
<xs:annotation>
<xs:documentation>
The name of an argument list to be used with a formatting string.
The argument list is applied to the string attribute value.
The attribute does nothing if the argument list is not found.
See the java.text.MessageFormat class for more information.
Optional. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="message-field">
<xs:annotation>
<xs:documentation>
Inserts a message above a field (used in conjunction with @fieldErrors FTL macro).
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="to-string" substitutionGroup="EnvOperations">
<xs:annotation>
<xs:documentation>
Converts an object to a string. Deprecated - use the set element.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="field" use="required">
<xs:annotation>
<xs:documentation>
The name of the field containing the object to convert.
The operation does nothing if the object is not found.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="format">
<xs:annotation>
<xs:documentation>
The format to use for the conversion.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="numeric-padding">
<xs:annotation>
<xs:documentation>
Left-pad the string with the specified number of zeroes.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="webapp-property-to-field" substitutionGroup="EventOperations">
<xs:annotation>
<xs:documentation>
Copies a property value from a properties file in a ServletContext resource to a field.
Valid only when the simple-method is called as an event, it is ignored otherwise.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="field" type="fieldType" use="required" />
<xs:attribute type="xs:string" name="resource" use="required">
<xs:annotation>
<xs:documentation>
The resource location of the properties file inside the webapp,
and relative to the root of the webapp (can be inside a war file).
An example of this is "/WEB-INF/myprops.properties".
Required. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="property" use="required">
<xs:annotation>
<xs:documentation>
The property key.
Required. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="default">
<xs:annotation>
<xs:documentation>
A default value to use if the property value is null or empty.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<!--
==========================================
===== Conditional/Looping Statements =====
==========================================
-->
<xs:element name="and" substitutionGroup="IfCombineConditions">
<xs:annotation>
<xs:documentation>
Combines conditional elements using a boolean AND.
Evaluates to true if all sub-elements evaluate to true.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group maxOccurs="unbounded" ref="IfConditions"/>
</xs:complexType>
</xs:element>
<xs:element name="break" substitutionGroup="ControlOperations">
<xs:annotation>
<xs:documentation>
Causes script execution to exit the nearest enclosing loop element.
Throws an exception if there is no enclosing looping element.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="check-errors" substitutionGroup="ControlOperations">
<xs:annotation>
<xs:documentation>
Halts script execution if the error message list contains any messages.
The error message list is returned to the calling process.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="error-code">
<xs:annotation>
<xs:documentation>
The error code to return to the calling process.
Defaults to value of the containing simple-method default-error-code attribute.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="error-list-name" type="error-list-name"/>
</xs:complexType>
</xs:element>
<xs:element name="condition">
<xs:annotation>
<xs:documentation>
Combines a group of conditional elements into a single logical (true/false) expression.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="IfConditions"/>
</xs:complexType>
</xs:element>
<xs:element name="continue" substitutionGroup="ControlOperations">
<xs:annotation>
<xs:documentation>
Causes script execution to return to the beginning of the nearest enclosing loop element.
Throws an exception if there is no enclosing looping element.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="else">
<xs:annotation>
<xs:documentation>
Contains a block of code to be executed when a condition evaluates to false.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations"/>
</xs:complexType>
</xs:element>
<xs:element name="else-if">
<xs:annotation>
<xs:documentation>
Contains a condition and a block of code to be evaluated/executed when a parent condition evaluates to false.
This element must contain two sub-elements: condition and then.
If the condition of the parent element evaluates to false, then this element's condition will be evaluated,
and if that condition evaluates to true, then the operations under the then element will be run.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="condition" />
<xs:element ref="then" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="if" substitutionGroup="IfOtherOperations">
<xs:annotation>
<xs:documentation>
Performs conditional processing on blocks of code.
This operation specifies combinations of conditions, alternate conditions,
and operations to run based on the evaluation of condition expressions.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="condition" />
<xs:element ref="then" />
<xs:element minOccurs="0" maxOccurs="unbounded" ref="else-if" />
<xs:element minOccurs="0" ref="else" />
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- FIXME: We need two versions of this element. -->
<xs:element name="if-compare" substitutionGroup="IfBasicOperations">
<xs:annotation>
<xs:documentation>
Compares a field to a constant value.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="attlist.operatorOptionalRvalue">
<xs:sequence>
<xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations" />
<xs:element minOccurs="0" ref="else" />
</xs:sequence>
<xs:attribute type="xs:string" name="field" use="required">
<xs:annotation>
<xs:documentation>
The name of the field that will be compared. The l-value.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="value" use="required">
<xs:annotation>
<xs:documentation>
The value that the field will be compared to. The r-value.
Ignored when the operator attribute equals "is-null", "is-not-null", or "is-empty" - required otherwise. Attribute type: constant+expr.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" type="javaClassName">
<xs:annotation>
<xs:documentation>
The Java data type. Both values will be converted to this type before comparison.
Invalid when the operator attribute value is "contains".
Optional. Attribute type: constant. Attribute must contain a valid Java class name.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="format">
<xs:annotation>
<xs:documentation>
Format used for type conversions. Valid only when the type attribute is not empty.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!-- FIXME: We need two versions of this element. -->
<xs:element name="if-compare-field" substitutionGroup="IfBasicOperations">
<xs:annotation>
<xs:documentation>
Compares a field to another field.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="attlist.operatorRequired">
<xs:sequence>
<xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations" />
<xs:element minOccurs="0" ref="else" />
</xs:sequence>
<xs:attribute type="xs:string" name="field" use="required">
<xs:annotation>
<xs:documentation>
The name of the field that will be compared. The l-value.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="to-field" use="required">
<xs:annotation>
<xs:documentation>
The name of the field that will be compared to the field specified in the field attribute.
The r-value.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" type="javaClassName"/>
<xs:attribute type="xs:string" name="format">
<xs:annotation>
<xs:documentation>
Format used for type conversions. Valid only when the type attribute is not empty.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!-- FIXME: We need two versions of this element. -->
<xs:element name="if-empty" substitutionGroup="IfBasicOperations">
<xs:annotation>
<xs:documentation>
Tests if a field is null or empty.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations" />
<xs:element minOccurs="0" ref="else" />
</xs:sequence>
<xs:attribute type="xs:string" name="field" use="required">
<xs:annotation>
<xs:documentation>
The name of the field to test.
Object to test must be a collection, string, or a class that implements org.apache.ofbiz.base.lang.IsEmpty.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<!-- FIXME: We need two versions of this element. -->
<xs:element name="if-has-permission" substitutionGroup="IfBasicOperations">
<xs:annotation>
<xs:documentation>
Tests if the current user has the specified permission.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="attlist.check-permission">
<xs:sequence>
<xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations" />
<xs:element minOccurs="0" ref="else" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="if-instance-of" substitutionGroup="IfBasicOperations">
<xs:annotation>
<xs:documentation>
Tests if a field is an instance of a Java class.
The operation will execute its contained block of code if the condition evaluates to true,
otherwise it will execute the block of code in its else sub-element (if one exists).
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations" />
<xs:element minOccurs="0" ref="else" />
</xs:sequence>
<xs:attribute type="xs:string" name="field" use="required">
<xs:annotation>
<xs:documentation>
The name of the field to test.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="class" use="required">
<xs:annotation>
<xs:documentation>
The name of the class to test for.
Required. Attribute type: constant. Attribute must contain a valid Java class name.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="if-not-empty" substitutionGroup="IfOtherOperations">
<xs:annotation>
<xs:documentation>
Tests if a field is not null and not empty.
The operation will execute its contained block of code if the condition evaluates to true,
otherwise it will execute the block of code in its else sub-element (if one exists).
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations" />
<xs:element minOccurs="0" ref="else" />
</xs:sequence>
<xs:attribute type="xs:string" name="field" use="required">
<xs:annotation>
<xs:documentation>
The name of the field to test.
Object to test must be a collection, string, or a class that implements org.apache.ofbiz.base.lang.IsEmpty.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<!-- FIXME: We need two versions of this element. -->
<xs:element name="if-regexp" substitutionGroup="IfBasicOperations">
<xs:annotation>
<xs:documentation>
Tests if a field matches a regular expression.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations" />
<xs:element minOccurs="0" ref="else" />
</xs:sequence>
<xs:attribute type="xs:string" name="field" use="required">
<xs:annotation>
<xs:documentation>
The name of the field to test.
The field object will be converted to a string before the test.
An empty string will be used if the field object is not found.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="expr" use="required">
<xs:annotation>
<xs:documentation>
The regular expression to test for.
Required. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<!-- FIXME: We need two versions of this element. -->
<xs:element name="if-validate-method" substitutionGroup="IfBasicOperations">
<xs:annotation>
<xs:documentation>
Invokes a Java class static method that returns a boolean value.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations" />
<xs:element minOccurs="0" ref="else" />
</xs:sequence>
<xs:attribute type="xs:string" name="field" use="required">
<xs:annotation>
<xs:documentation>
The name of the field to use as the method argument.
The field object will be converted to a string before the method call.
An empty string will be used if the field object is not found.
Required. Attribute type: expression
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="method" use="required">
<xs:annotation>
<xs:documentation>
The name of the method that will be called to validate the field.
It must be a static method that takes a single String parameter and return a boolean.
Required. Attribute type: constant
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="class">
<xs:annotation>
<xs:documentation>
The name of the class that contains the validation method. Defaults to "org.apache.ofbiz.base.util.UtilValidate".
Optional. Attribute type: constant
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="iterate" substitutionGroup="ControlOperations">
<xs:annotation>
<xs:documentation>
Contains a block of code that is executed once for each entry in a collection.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations" />
<xs:attribute type="xs:string" name="list" use="required">
<xs:annotation>
<xs:documentation>
The name of the field that contains the collection to iterate over.
The operation does nothing if the field is not found.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="entry" use="required">
<xs:annotation>
<xs:documentation>
The name of the field that will contain the current collection entry.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="iterate-map" substitutionGroup="ControlOperations">
<xs:annotation>
<xs:documentation>
Contains a block of code that is executed once for each entry in a map.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations" />
<xs:attribute type="xs:string" name="map" use="required">
<xs:annotation>
<xs:documentation>
The name of the field that contains the map to iterate over.
The operation does nothing if the field is not found.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="key" use="required">
<xs:annotation>
<xs:documentation>
The name of the field that will contain the current map entry key.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="value" use="required">
<xs:annotation>
<xs:documentation>
The name of the field that will contain the current map entry value.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="loop" substitutionGroup="ControlOperations">
<xs:annotation>
<xs:documentation>
Contains a block of code that is executed repeatedly until a maximum count is reached.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations" />
<xs:attribute type="xs:string" name="count" use="required">
<xs:annotation>
<xs:documentation>
A maximum count expression. Defaults to "0" (zero).
Required. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="field">
<xs:annotation>
<xs:documentation>
The name of the field that will contain the current count.
Optional. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="not" substitutionGroup="IfCombineConditions">
<xs:annotation>
<xs:documentation>
Inverts a conditional element using a boolean NOT.
Evaluates to true if the sub-element evaluates to false.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="IfConditions"/>
</xs:complexType>
</xs:element>
<xs:element name="or" substitutionGroup="IfCombineConditions">
<xs:annotation>
<xs:documentation>
Combines conditional elements using a boolean OR.
Evaluates to true if any sub-element evaluates to true.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group maxOccurs="unbounded" ref="IfConditions"/>
</xs:complexType>
</xs:element>
<xs:element name="return" substitutionGroup="ControlOperations">
<xs:annotation>
<xs:documentation>
Returns control (execution) to the calling process.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="response-code">
<xs:annotation>
<xs:documentation>
A response code to return to the calling process. Defaults to the
value of the containing simple-method element "default-success-code" attribute.
Optional. Attribute types: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="then">
<xs:annotation>
<xs:documentation>
Contains a block of code to be executed when a condition element evaluates to true.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations"/>
</xs:complexType>
</xs:element>
<xs:element name="while" substitutionGroup="ControlOperations">
<xs:annotation>
<xs:documentation>
Contains a block of code that is executed repeatedly while a condition element evaluates to true.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="condition" />
<xs:element ref="then" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="xor" substitutionGroup="IfCombineConditions">
<xs:annotation>
<xs:documentation>
Combines conditional elements using a boolean XOR.
Evaluates to true if only one sub-element evaluates to true.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group maxOccurs="unbounded" ref="IfConditions"/>
</xs:complexType>
</xs:element>
<!--
===========================
===== Call Operations =====
===========================
-->
<xs:simpleType name="result-name">
<xs:annotation>
<xs:documentation>
The name of the called service's OUT attribute.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:complexType name="attlist.propertyInfoOptional">
<xs:attribute name="resource" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of a properties file on the classpath.
Optional. Attribute type: constant
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="property" type="xs:string">
<xs:annotation>
<xs:documentation>
The property key.
Optional. Attribute type: constant
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:element name="call-class-method" substitutionGroup="CallOperations">
<xs:annotation>
<xs:documentation>
Calls a static method on a Java class. Deprecated - replace with script.
The string and field sub-elements are passed to the method as arguments in the order they are specified.
If the method returns a value, the value will be put in the named field.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="string"/>
<xs:element ref="field"/>
</xs:choice>
<xs:attribute type="xs:string" name="class-name" use="required">
<xs:annotation>
<xs:documentation>
The name of the class containing the static method.
Required. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="method-name" use="required">
<xs:annotation>
<xs:documentation>
The name of the static method to call.
Required. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="ret-field">
<xs:annotation>
<xs:documentation>
The name of the field to put the method return value in.
Optional. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="call-map-processor" substitutionGroup="CallOperations">
<xs:annotation>
<xs:documentation>
Invokes a simple map processor.
An inline map processor can be used by including a simple-map-processor element in the call-map-processor element.
If both an external and an inline map processor are specified, the external
one will be called first, allowing the inline one to override its behavior.
Map processor messages are added to an error message list.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" ref="simple-map-processor" />
</xs:sequence>
<xs:attribute type="xs:string" name="in-map-name" use="required">
<xs:annotation>
<xs:documentation>
The name of the field that contains the map to be processed.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="out-map-name" use="required">
<xs:annotation>
<xs:documentation>
The name of the field that will receive the processed map.
If the map does not exist, one will be created.
If the map already exists it will be added to in place.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="xml-resource">
<xs:annotation>
<xs:documentation>
The full path and filename on the classpath of the XML file which contains an external map processor to execute.
This is only required if an external map processor is desired.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="processor-name">
<xs:annotation>
<xs:documentation>
The name of the external map processor to execute in the specified xml-resource.
This is only required if an external map processor is desired.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="error-list-name" type="error-list-name"/>
</xs:complexType>
</xs:element>
<xs:element name="call-object-method" substitutionGroup="CallOperations">
<xs:annotation>
<xs:documentation>
Calls a method on an existing Java object. Deprecated - replace with script.
The string and field sub-elements are passed to the method as arguments in the order they are specified.
If the method returns a value, the value will be put in the named field.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="string" />
<xs:element ref="field"/>
</xs:choice>
<xs:attribute type="xs:string" name="obj-field" use="required">
<xs:annotation>
<xs:documentation>
The name of the field containing the object to be called.
A runtime exception is thrown if the object is not found.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="method-name" use="required">
<xs:annotation>
<xs:documentation>
The name of the method to call.
Required. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="ret-field">
<xs:annotation>
<xs:documentation>
The name of the field to put the method return value in.
Optional. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="call-service" substitutionGroup="CallOperations">
<xs:annotation>
<xs:documentation>
Invokes a service through the Service Engine.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="error-prefix" minOccurs="0">
<xs:annotation>
<xs:documentation>
Declares a message to prepend to the error message.
The message can be included in the element body or in a Java resource.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="attlist.propertyInfoOptional">
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="error-suffix" minOccurs="0">
<xs:annotation>
<xs:documentation>
Declares a message to append to the error message.
The message can be included in the element body or in a Java resource.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="attlist.propertyInfoOptional">
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="success-prefix" minOccurs="0">
<xs:annotation>
<xs:documentation>
Declares a message to prepend to the success message.
The message can be included in the element body or in a Java resource.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="attlist.propertyInfoOptional">
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="success-suffix" minOccurs="0">
<xs:annotation>
<xs:documentation>
Declares a message to append to the success message.
The message can be included in the element body or in a Java resource.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="attlist.propertyInfoOptional">
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="message-prefix" minOccurs="0">
<xs:annotation>
<xs:documentation>
Declares a message to prepend to any kind of message.
The message can be included in the element body or in a Java resource.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="attlist.propertyInfoOptional">
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="message-suffix" minOccurs="0">
<xs:annotation>
<xs:documentation>
Declares a message to append to any kind of message.
The message can be included in the element body or in a Java resource.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="attlist.propertyInfoOptional">
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="default-message" minOccurs="0">
<xs:annotation>
<xs:documentation>
Declares a message to be used when the called service does not return a message.
The message can be included in the element body or in a Java resource.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="attlist.propertyInfoOptional">
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="results-to-map" />
<xs:element ref="result-to-field" />
<xs:element ref="result-to-request" />
<xs:element ref="result-to-session" />
<xs:element ref="result-to-result" />
</xs:choice>
</xs:sequence>
<xs:attribute name="service-name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The name of the service to invoke.
Required. Attribute type: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="in-map-name" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of a field containing a map that will be used for the service's IN parameters.
Optional. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="include-user-login" type="booleanConst">
<xs:annotation>
<xs:documentation>
Include the current UserLogin entity value in the called service's IN parameters.
Defaults to "true".
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="break-on-error" type="booleanConst">
<xs:annotation>
<xs:documentation>
Halt script execution if the called service returns an error.
Defaults to "true".
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="error-code" type="xs:string">
<xs:annotation>
<xs:documentation>
The error code returned by the called service.
Defaults to the enclosing simple-method default-error-code attribute value.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="success-code" type="xs:string">
<xs:annotation>
<xs:documentation>
The success code returned by the called service.
Defaults to the enclosing simple-method default-success-code attribute value.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="require-new-transaction" type="booleanConst">
<xs:annotation>
<xs:documentation>
Require a new transaction for the called service.
Defaults to "false".
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="transaction-timeout" type="xs:string">
<xs:annotation>
<xs:documentation>
The timeout for the new transaction, in seconds.
Defaults to the value set in the called service definition.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="call-service-asynch" substitutionGroup="CallOperations">
<xs:annotation>
<xs:documentation>
Calls a service asynchronously. No return messages
are used; that doesn't mean no errors will result, but they would just be
system errors like database failures, etc. which all have system error messages.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="service-name" use="required">
<xs:annotation>
<xs:documentation>
The name of the service to invoke.
Required. Attribute type: constant, ${expression}.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="in-map-name">
<xs:annotation>
<xs:documentation>
The name of a field containing a map that will be used for the service's IN parameters.
Optional. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="include-user-login" type="booleanConst">
<xs:annotation>
<xs:documentation>
Include the current UserLogin entity value in the called service's IN parameters.
Defaults to "true".
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="call-simple-method" substitutionGroup="CallOperations">
<xs:annotation>
<xs:documentation>
Calls another simple-method in the same context as the current one.
The called simple-method will have the same environment as the calling simple-method,
including all environment fields, and either the event or service objects
that the calling simple-method was called with.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="result-to-field" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Used when scope="function". Copies the called method fields
to the calling method fields.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="method-name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The name of the simple-method to execute in the specified xml-resource,
or in the current XML file if no xml-resource is specified.
Required. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="xml-resource" type="xs:string">
<xs:annotation>
<xs:documentation>
The full path and filename on the classpath of the XML file which contains an external simple-method to execute.
This is only required if a simple-method in a different file is desired.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="scope">
<xs:annotation>
<xs:documentation>
The memory scope to use. In an "inline" memory scope, fields declared or modified in the called method
will be reflected back to the calling method - as if the called method was inline. In a "function" memory
scope, fields declared or modified in the called method are local to the called method - they are not
reflected back to the calling method.
Optional. Attribute type: constant.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="inline" />
<xs:enumeration value="function" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="results-to-map">
<xs:annotation>
<xs:documentation>
Copies the called service's result map to the specified field.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute type="xs:string" name="map-name" use="required">
<xs:annotation>
<xs:documentation>
The name of the target field.
Required. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="result-to-field">
<xs:annotation>
<xs:documentation>
Copies the called service's OUT attribute to the specified field.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="result-name" type="result-name" use="required" />
<xs:attribute type="xs:string" name="field">
<xs:annotation>
<xs:documentation>
The name of target field. Defaults to the result-name attribute value.
Optional. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="result-to-request">
<xs:annotation>
<xs:documentation>
Copies the called service's OUT attribute to the specified request attribute.
Valid only when the script is run in an event.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="result-name" type="result-name" use="required" />
<xs:attribute type="xs:string" name="request-name">
<xs:annotation>
<xs:documentation>
The name of the target request attribute. Defaults to the result-name attribute value.
Optional. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="result-to-session">
<xs:annotation>
<xs:documentation>
Copies the called service's OUT attribute to the specified session attribute.
Valid only when the script is run in an event.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="result-name" type="result-name" use="required" />
<xs:attribute type="xs:string" name="session-name">
<xs:annotation>
<xs:documentation>
The name of the target session attribute. Defaults to the result-name attribute value.
Optional. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="result-to-result">
<xs:annotation>
<xs:documentation>
Copies service OUT attributes from a called service to the calling service's OUT attributes.
This element can also be used to copy the called service OUT attributes to the return result of
a simple-method called as a function.
Note that the attribute names are somewhat confusing:
"result-name" is the name of the OUT attribute of the called service, and
"service-result-name" is the name of the OUT attribute of the calling service.
In other words, copy the OUT attribute FROM result-name TO service-result-name.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="result-name" type="result-name" use="required" />
<xs:attribute type="xs:string" name="service-result-name">
<xs:annotation>
<xs:documentation>
The name of the calling service's OUT attribute (or function return result).
Defaults to the result-name attribute value.
Optional. Attribute type: expression.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="script" substitutionGroup="CallOperations">
<xs:annotation>
<xs:documentation>
Runs an external script and/or a short inline script (scriptlet). The scriptlet can be
included in the script attribute or in the element body.
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:attribute type="xs:string" name="location">
<xs:annotation>
<xs:documentation>
The script location. The location attribute accepts the component:// file location
protocol. Script functions/methods can be invoked by appending a hash (#) and the
function/method name.
Required if the script attribute is empty. Attribute type: constant.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute type="xs:string" name="script">
<xs:annotation>
<xs:documentation>
A short script (scriptlet). Can be used instead of a file.
The script must be prefixed with the script language followed by a colon (":").
Required if the location attribute is empty. Attribute type: script.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<!--
=============================
===== Entity Operations =====
=============================
-->
<xs:simpleType name="began-transaction-name">
<xs:annotation>
<xs:documentation>
The name of the field that contains a Boolean value specifying whether or not a transaction was begun in the current transaction demarcation.
Defaults to "beganTransaction".
Optional. Attribute type: expression.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"></xs:restriction>
</xs:simpleType>
<xs:complexType name="attlist.entityFindOperations">
<xs:attribute name="entity-name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The name of the entity to search in.
Required. Attribute type: constant, ${expression}.