You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2007/01/22 23:11:04 UTC

svn commit: r498826 - /ofbiz/trunk/framework/minilang/dtd/simple-methods.xsd

Author: jleroux
Date: Mon Jan 22 14:11:03 2007
New Revision: 498826

URL: http://svn.apache.org/viewvc?view=rev&rev=498826
Log:
Some more annotations/documentation from minilang guide 
(suppressed in minilang guide : http://docs.ofbiz.org/display/OFBIZ/Mini-Language+Guide)

Modified:
    ofbiz/trunk/framework/minilang/dtd/simple-methods.xsd

Modified: ofbiz/trunk/framework/minilang/dtd/simple-methods.xsd
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/dtd/simple-methods.xsd?view=diff&rev=498826&r1=498825&r2=498826
==============================================================================
--- ofbiz/trunk/framework/minilang/dtd/simple-methods.xsd (original)
+++ ofbiz/trunk/framework/minilang/dtd/simple-methods.xsd Mon Jan 22 14:11:03 2007
@@ -392,14 +392,37 @@
         </xs:attribute>
     </xs:attributeGroup>
     <xs:element name="set-service-fields" substitutionGroup="CallOperations">
+        <xs:annotation>
+            <xs:documentation>
+                
+            </xs:documentation>
+        </xs:annotation>
         <xs:complexType>
             <xs:attributeGroup ref="attlist.set-service-fields"/>
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.set-service-fields">
-        <xs:attribute type="xs:string" name="service-name" use="required"/>
-        <xs:attribute type="xs:string" name="map-name" use="required"/>
-        <xs:attribute type="xs:string" name="to-map-name" use="required"/>
+        <xs:attribute type="xs:string" name="service-name" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="map-name" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="to-map-name" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
     </xs:attributeGroup>
     <xs:element name="call-service" substitutionGroup="CallOperations">
         <xs:annotation>
@@ -516,7 +539,13 @@
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.results-to-map">
-        <xs:attribute type="xs:string" name="map-name" use="required"/>
+        <xs:attribute type="xs:string" name="map-name" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
     </xs:attributeGroup>
     <xs:element name="result-to-field">
         <xs:complexType>
@@ -524,27 +553,79 @@
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.result-to-field">
-        <xs:attribute type="xs:string" name="result-name" use="required"/>
-        <xs:attribute type="xs:string" name="map-name"/>
-        <xs:attribute type="xs:string" name="field-name"/>
+        <xs:attribute type="xs:string" name="result-name" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="map-name">
+            <xs:annotation>
+                <xs:documentation>
+                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="field-name">
+            <xs:annotation>
+                <xs:documentation>
+                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
     </xs:attributeGroup>
     <xs:element name="result-to-request">
+        <xs:annotation>
+            <xs:documentation>
+                
+            </xs:documentation>
+        </xs:annotation>
         <xs:complexType>
             <xs:attributeGroup ref="attlist.result-to-request"/>
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.result-to-request">
-        <xs:attribute type="xs:string" name="result-name" use="required"/>
-        <xs:attribute type="xs:string" name="request-name"/>
+        <xs:attribute type="xs:string" name="result-name" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="request-name">
+            <xs:annotation>
+                <xs:documentation>
+                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
     </xs:attributeGroup>
     <xs:element name="result-to-session">
+        <xs:annotation>
+            <xs:documentation>
+                
+            </xs:documentation>
+        </xs:annotation>
         <xs:complexType>
             <xs:attributeGroup ref="attlist.result-to-session"/>
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.result-to-session">
-        <xs:attribute type="xs:string" name="result-name" use="required"/>
-        <xs:attribute type="xs:string" name="session-name"/>
+        <xs:attribute type="xs:string" name="result-name" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="session-name">
+            <xs:annotation>
+                <xs:documentation>
+                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
     </xs:attributeGroup>
     <xs:element name="result-to-result">
         <xs:annotation>
@@ -559,8 +640,20 @@
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.result-to-result">
-        <xs:attribute type="xs:string" name="result-name" use="required"/>
-        <xs:attribute type="xs:string" name="service-result-name"/>
+        <xs:attribute type="xs:string" name="result-name" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="service-result-name">
+            <xs:annotation>
+                <xs:documentation>
+                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
     </xs:attributeGroup>
     <xs:element name="call-service-asynch" substitutionGroup="CallOperations">
         <xs:annotation>
@@ -1140,7 +1233,8 @@
         <xs:attribute type="xs:string" name="to-map-name">
             <xs:annotation>
                 <xs:documentation>
-                    The name of the map in the method environment the fields will go to. If empty the fields will be copied to the environment.
+                    The name of the map in the method environment the fields will go to. 
+                    If empty the fields will be copied to the environment.
                 </xs:documentation>
             </xs:annotation>
         </xs:attribute>
@@ -1159,7 +1253,8 @@
         <xs:attribute type="xs:string" name="map-name">
             <xs:annotation>
                 <xs:documentation>
-                    The name of the map in the method environment. If not specified the field-name will be used to get the field from the method environment.
+                    The name of the map in the method environment. 
+                    If not specified the field-name will be used to get the field from the method environment.
                 </xs:documentation>
             </xs:annotation>            
         </xs:attribute>
@@ -1327,12 +1422,48 @@
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.string-append">
-        <xs:attribute type="xs:string" name="field-name" use="required"/>
-        <xs:attribute type="xs:string" name="map-name"/>
-        <xs:attribute type="xs:string" name="string" use="required"/>
-        <xs:attribute type="xs:string" name="arg-list-name"/>
-        <xs:attribute type="xs:string" name="prefix"/>
-        <xs:attribute type="xs:string" name="suffix"/>
+        <xs:attribute type="xs:string" name="field-name" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    
+                </xs:documentation>
+            </xs:annotation>            
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="map-name">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the map in the method environment. 
+                    If not specified the field-name will be used to get the field from the method environment.
+                </xs:documentation>
+            </xs:annotation>        </xs:attribute>
+        <xs:attribute type="xs:string" name="string" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="arg-list-name">
+            <xs:annotation>
+                <xs:documentation>
+                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="prefix">
+            <xs:annotation>
+                <xs:documentation>
+                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="suffix">
+            <xs:annotation>
+                <xs:documentation>
+                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
     </xs:attributeGroup>
     <xs:element name="string-to-list" substitutionGroup="EnvOperations">
         <xs:annotation>
@@ -2755,7 +2886,6 @@
             </xs:annotation>                                
         </xs:attribute>
     </xs:attributeGroup>
-
     <xs:element name="assert" substitutionGroup="IfOtherOperations">
         <xs:annotation>
             <xs:documentation>
@@ -2787,15 +2917,54 @@
     <xs:element name="if" substitutionGroup="IfOtherOperations">
         <xs:annotation>
             <xs:documentation>
+                The if operation offers a flexible way of specifying combinations of conditions, alternate conditions, 
+                and operations to run on true evaluation of the conditions or to run otherwise.
+                
+                The other if operations are meant for a specific, simple condition when used outside of the condition sub-element of this operation. 
+                The attributes of the other if operations are the same when used inside this operation. 
+                
                 Note that while the definitions for the if-* operations are used, the tags should be empty because of the differing semantics.
             </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:element ref="condition">
+                    <xs:annotation>
+                        <xs:documentation>
+                            A simple element with no attributes that contains the condition that will be evaluated to determine which sub-operations to execute. 
+                            To combine the other if operations documented below the and, or, xor, and notelements can be used. 
+                            The and, or, and xor elements can contain as many general if operations and modifier/combination elements (ie and, or, xor, and not).
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element ref="then">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The then element is used to contain operations that will run if the condition evaluate to true. 
+                            A then tag must be included, but can be empty.                            
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element minOccurs="0" maxOccurs="unbounded" ref="else-if">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The else-if element can be used to specify alternate conditional execution blocks. 
+                            Each else-if element must contain two sub-elements: condition and then. 
+                            These operations are used the same as the condition and then elements describes above. 
+                            If the condition of the parent if element is evaluated to false, each condition of the else-if sub-elements will be evaluated, 
+                            and the operations under the then element corresponding first condition that evaluates to true will be run.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element minOccurs="0" ref="else">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The else element can be used to contain operations that will run if the condition evaluates to false, and if no else-ifsub-conditions evaluate to true. 
+                            It can contain any simple-method operation. 
+                            The else tag must be placed as the last tag under the if tag.                            
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
             </xs:sequence>
         </xs:complexType>
     </xs:element>
@@ -2807,22 +2976,59 @@
         </xs:annotation>
         <xs:complexType>
             <xs:sequence>
-                <xs:element ref="condition"/>
-                <xs:element ref="then"/>
+                <xs:element ref="condition">
+                    <xs:annotation>
+                        <xs:documentation>
+                            A simple element with no attributes that contains the condition that will be evaluated to determine which sub-operations to execute. 
+                            To combine the other if operations documented below the and, or, xor, and notelements can be used. 
+                            The and, or, and xor elements can contain as many general if operations and modifier/combination elements (ie and, or, xor, and not).
+                        </xs:documentation>
+                    </xs:annotation>                    
+                </xs:element>
+                <xs:element ref="then">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The then element is used to contain operations that will run if the condition evaluate to true. 
+                            A then tag must be included, but can be empty.                            
+                        </xs:documentation>
+                    </xs:annotation>                    
+                </xs:element>
             </xs:sequence>
         </xs:complexType>
     </xs:element>
     <xs:element name="condition">
+        <xs:annotation>
+            <xs:documentation>
+                A simple element with no attributes that contains the condition that will be evaluated to determine which sub-operations to execute. 
+                To combine the other if operations documented below the and, or, xor, and notelements can be used. 
+                The and, or, and xor elements can contain as many general if operations and modifier/combination elements (ie and, or, xor, and not).
+            </xs:documentation>
+        </xs:annotation>                    
         <xs:complexType>
             <xs:group ref="IfConditions"/>
         </xs:complexType>
     </xs:element>
     <xs:element name="then">
+        <xs:annotation>
+            <xs:documentation>
+                The then element is used to contain operations that will run if the condition evaluate to true. 
+                A then tag must be included, but can be empty.                            
+            </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>
+                The else-if element can be used to specify alternate conditional execution blocks. 
+                Each else-if element must contain two sub-elements: condition and then. 
+                These operations are used the same as the condition and then elements describes above. 
+                If the condition of the parent if element is evaluated to false, each condition of the else-if sub-elements will be evaluated, 
+                and the operations under the then element corresponding first condition that evaluates to true will be run.
+            </xs:documentation>
+        </xs:annotation>
         <xs:complexType>
             <xs:sequence>
                 <xs:element ref="condition"/>
@@ -2831,26 +3037,58 @@
         </xs:complexType>
     </xs:element>
     <xs:element name="else">
+        <xs:annotation>
+            <xs:documentation>
+                The else element can be used to contain operations that will run if the condition evaluates to false, and if no else-ifsub-conditions evaluate to true. 
+                It can contain any simple-method operation. 
+                The else tag must be placed as the last tag under the if tag.                            
+            </xs:documentation>
+        </xs:annotation>
         <xs:complexType>
             <xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations"/>
         </xs:complexType>
     </xs:element>
     <xs:element name="or" substitutionGroup="IfCombineConditions">
+        <xs:annotation>
+            <xs:documentation>
+                To be true just one of the elements underneath needs to be true.
+                The process will return (with true value) as soon as a condition is verified not evaluating remaining conditions if any.
+            </xs:documentation>
+        </xs:annotation>
         <xs:complexType>
             <xs:group maxOccurs="unbounded" ref="IfConditions"/>
         </xs:complexType>
     </xs:element>
     <xs:element name="xor" substitutionGroup="IfCombineConditions">
+        <xs:annotation>
+            <xs:documentation>
+                To be true only one of the elements underneath can be true.
+                The process will return (with false value) as soon as 2 conditions are verified not evaluating remaining conditions if any.
+                If no conditions evaluate to true the process will return false.  
+            </xs:documentation>
+        </xs:annotation>
         <xs:complexType>
             <xs:group maxOccurs="unbounded" ref="IfConditions"/>
         </xs:complexType>
     </xs:element>
     <xs:element name="and" substitutionGroup="IfCombineConditions">
+        <xs:annotation>
+            <xs:documentation>
+                To be true all of the elements underneath need to be true.
+                The process will return (with false value) as soon as a condition evaluates to false not evaluating remaining conditions if any.
+                If no conditions evaluate to false the process will return true.
+            </xs:documentation>
+        </xs:annotation>
         <xs:complexType>
             <xs:group maxOccurs="unbounded" ref="IfConditions"/>
         </xs:complexType>
     </xs:element>
     <xs:element name="not" substitutionGroup="IfCombineConditions">
+        <xs:annotation>
+            <xs:documentation>
+                Can only have one condition underneath and simply reverse the boolean value of this condition.
+            </xs:documentation>
+        </xs:annotation>
         <xs:complexType>
             <xs:group ref="IfConditions"/>
         </xs:complexType>
@@ -2858,42 +3096,148 @@
     <xs:element name="if-validate-method" substitutionGroup="IfBasicOperations">
         <xs:annotation>
             <xs:documentation>
-                If-validate-method calls a static Java method that takes a String and returns a boolean
+                The operations contained by the if-validate-method tag will only be executed if the validate method returns true.                
+                If-validate-method calls a static Java method that takes a String and returns a boolean.                                 
+                This tag can contain any of the simple-method operations, including the conditional/if operations.
             </xs:documentation>
         </xs:annotation>
         <xs:complexType>
             <xs:sequence>
-                <xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations"/>
-                <xs:element minOccurs="0" ref="else"/>
+                <xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations">
+                    <xs:annotation>
+                        <xs:documentation>
+                            Any simple-method operation can be nested under an if-* tag.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:group>
+                <xs:element minOccurs="0" ref="else">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The else tag can be used to contain operations that will run if the condition fails, 
+                            or in other words if the operations under the if tag do not run. 
+                            
+                            It can contain any simple-method operation. 
+                            The else tag must be placed as the last tag under the if-* tag.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
             </xs:sequence>
             <xs:attributeGroup ref="attlist.if-validate-method"/>
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.if-validate-method">
-        <xs:attribute type="xs:string" name="map-name"/>
-        <xs:attribute type="xs:string" name="field-name" use="required"/>
-        <xs:attribute type="xs:string" name="method" use="required"/>
-        <xs:attribute type="xs:string" name="class" default="org.ofbiz.base.util.UtilValidate"/>
+        <xs:attribute type="xs:string" name="map-name">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the method environment field that contains the map that the field to be validated will come from. 
+                    If not specified the field-name will be treated as a method environment field name (an env-name).                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="field-name" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the map field that will be validated.
+                </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.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="class" default="org.ofbiz.base.util.UtilValidate">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the class that contains the validation method. If not specified defaults to "org.ofbiz.base.util.UtilValidate".
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
     </xs:attributeGroup>
     <xs:element name="if-instance-of" substitutionGroup="IfBasicOperations">
+        <xs:annotation>
+            <xs:documentation>
+                Checks if the field is an instance of the name class.                                
+            </xs:documentation>
+        </xs:annotation>
         <xs:complexType>
             <xs:sequence>
-                <xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations"/>
-                <xs:element minOccurs="0" ref="else"/>
+                <xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations">
+                    <xs:annotation>
+                        <xs:documentation>
+                            Any simple-method operation can be nested under an if-* tag.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:group>
+                <xs:element minOccurs="0" ref="else">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The else tag can be used to contain operations that will run if the condition fails, 
+                            or in other words if the operations under the if tag do not run. 
+                            
+                            It can contain any simple-method operation. 
+                            The else tag must be placed as the last tag under the if-* tag.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
             </xs:sequence>
             <xs:attributeGroup ref="attlist.if-instance-of"/>
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.if-instance-of">
-        <xs:attribute type="xs:string" name="map-name"/>
-        <xs:attribute type="xs:string" name="field-name" use="required"/>
-        <xs:attribute type="xs:string" name="class" use="required"/>
+        <xs:attribute type="xs:string" name="map-name">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the method environment field that contains the map that the field to be validated will come from. 
+                    If not specified the field-name will be treated as a method environment field name (an env-name).                                        
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="field-name" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the map field that will be validated as being an instance of the named class.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="class" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the class that named instance in field-name is supposed to belong. 
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
     </xs:attributeGroup>
     <xs:element name="if-compare" substitutionGroup="IfBasicOperations">
+        <xs:annotation>
+            <xs:documentation>
+                The operations contained by the if-compare tag will only be executed if the comparison returns true. 
+                This tag can contain any of the simple-method operations, including the conditional/if operations.
+            </xs:documentation>
+        </xs:annotation>
         <xs:complexType>
             <xs:sequence>
-                <xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations"/>
-                <xs:element minOccurs="0" ref="else"/>
+                <xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations">
+                    <xs:annotation>
+                        <xs:documentation>
+                            Any simple-method operation can be nested under an if-* tag.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:group>
+                <xs:element minOccurs="0" ref="else">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The else tag can be used to contain operations that will run if the condition fails, 
+                            or in other words if the operations under the if tag do not run. 
+                            
+                            It can contain any simple-method operation. 
+                            The else tag must be placed as the last tag under the if-* tag.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
             </xs:sequence>
             <xs:attributeGroup ref="attlist.if-compare"/>
             <xs:attributeGroup ref="attlist.operatorRequired"/>
@@ -2901,16 +3245,64 @@
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.if-compare">
-        <xs:attribute type="xs:string" name="map-name"/>
-        <xs:attribute type="xs:string" name="field-name" use="required"/>
-        <xs:attribute type="xs:string" name="value" use="required"/>
-        <xs:attribute type="xs:string" name="format"/>
+        <xs:attribute type="xs:string" name="map-name">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the method environment field that contains the map that the field to be validated will come from. 
+                    If not specified the field-name will be treated as a method environment field name (an env-name).
+                </xs:documentation>
+            </xs:annotation>            
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="field-name" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the map field that will be compared.
+                </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 compared to. 
+                    Must be a String, but can be converted to other types.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="format">
+            <xs:annotation>
+                <xs:documentation>
+                    A format specifier to use when converting String objects to other data types, mainly Date, Time and Timestamp.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
     </xs:attributeGroup>
     <xs:element name="if-compare-field" substitutionGroup="IfBasicOperations">
+        <xs:annotation>
+            <xs:documentation>
+                The operations contained by the if-compare-field tag will only be executed if the comparison returns true. 
+                This tag can contain any of the simple-method operations, including the conditional/if operations.
+            </xs:documentation>
+        </xs:annotation>
         <xs:complexType>
             <xs:sequence>
-                <xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations"/>
-                <xs:element minOccurs="0" ref="else"/>
+                <xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations">
+                    <xs:annotation>
+                        <xs:documentation>
+                            Any simple-method operation can be nested under an if-* tag.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:group>
+                <xs:element minOccurs="0" ref="else">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The else tag can be used to contain operations that will run if the condition fails, 
+                            or in other words if the operations under the if tag do not run. 
+                            
+                            It can contain any simple-method operation. 
+                            The else tag must be placed as the last tag under the if-* tag.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
             </xs:sequence>
             <xs:attributeGroup ref="attlist.if-compare-field"/>
             <xs:attributeGroup ref="attlist.operatorRequired"/>
@@ -2918,113 +3310,418 @@
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.if-compare-field">
-        <xs:attribute type="xs:string" name="map-name"/>
-        <xs:attribute type="xs:string" name="field-name" use="required"/>
-        <xs:attribute type="xs:string" name="to-map-name"/>
-        <xs:attribute type="xs:string" name="to-field-name"/>
-        <xs:attribute type="xs:string" name="format"/>
+        <xs:attribute type="xs:string" name="map-name">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the method environment field that contains the map that the field to be validated will come from. 
+                    If not specified the field-name will be treated as a method environment field name (an env-name).                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="field-name" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the map field that will be compared.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="to-map-name">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the method environment field that contains the map that the field to be compared will come from. 
+                    If left empty will default to the method environment. 
+                    It does not default to the map-name because that would make it impossible to compare a map field to an environment field.    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="to-field-name">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the to-map field that the main field will be compared to. 
+                    If left empty will default to the field-name.                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="format">
+            <xs:annotation>
+                <xs:documentation>
+                    A format specifier to use when converting String objects to other data types, mainly Date, Time and Timestamp.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
     </xs:attributeGroup>
     <xs:element name="if-regexp" substitutionGroup="IfBasicOperations">
+        <xs:annotation>
+            <xs:documentation>
+                The operations contained by the if-regexp tag will only be executed if the value complies with the regular expression. 
+                This tag can contain any of the simple-method operations, including the conditional/if operations.
+            </xs:documentation>
+        </xs:annotation>
         <xs:complexType>
             <xs:sequence>
-                <xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations"/>
-                <xs:element minOccurs="0" ref="else"/>
+                <xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations">
+                    <xs:annotation>
+                        <xs:documentation>
+                            Any simple-method operation can be nested under an if-* tag.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:group>
+                <xs:element minOccurs="0" ref="else">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The else tag can be used to contain operations that will run if the condition fails, 
+                            or in other words if the operations under the if tag do not run. 
+                            
+                            It can contain any simple-method operation. 
+                            The else tag must be placed as the last tag under the if-* tag.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
             </xs:sequence>
             <xs:attributeGroup ref="attlist.if-regexp"/>
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.if-regexp">
-        <xs:attribute type="xs:string" name="map-name"/>
-        <xs:attribute type="xs:string" name="field-name" use="required"/>
-        <xs:attribute type="xs:string" name="expr" use="required"/>
+        <xs:attribute type="xs:string" name="map-name">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the method environment field that contains the map that the field to be validated will come from. 
+                    If not specified the field-name will be treated as a method environment field name (an env-name).
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="field-name" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the map field that will be compared.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="expr" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    A regular expression that the map value must comply with.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
     </xs:attributeGroup>
     <xs:element name="if-empty" substitutionGroup="IfBasicOperations">
+        <xs:annotation>
+            <xs:documentation>
+                The operations contained by the if-empty tag will only be executed if the map field is empty. 
+                This tag can contain any of the simple-method operations, including the conditional/if operations.
+            </xs:documentation>
+        </xs:annotation>
         <xs:complexType>
             <xs:sequence>
-                <xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations"/>
-                <xs:element minOccurs="0" ref="else"/>
+                <xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations">
+                    <xs:annotation>
+                        <xs:documentation>
+                            Any simple-method operation can be nested under an if-* tag.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:group>
+                <xs:element minOccurs="0" ref="else">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The else tag can be used to contain operations that will run if the condition fails, 
+                            or in other words if the operations under the if tag do not run. 
+                            
+                            It can contain any simple-method operation. 
+                            The else tag must be placed as the last tag under the if-* tag.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
             </xs:sequence>
             <xs:attributeGroup ref="attlist.if-empty"/>
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.if-empty">
-        <xs:attribute type="xs:string" name="map-name"/>
-        <xs:attribute type="xs:string" name="field-name" use="required"/>
+        <xs:attribute type="xs:string" name="map-name">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the method environment field that contains the map that the field to be validated will come from. 
+                    If not specified the field-name will be treated as a method environment field name (an env-name).
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="field-name" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the map field that will be compared.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
     </xs:attributeGroup>
     <xs:element name="if-not-empty" substitutionGroup="IfOtherOperations">
+        <xs:annotation>
+            <xs:documentation>
+                The operations contained by the if-not-empty tag will only be executed if the map field is not empty. 
+                This tag can contain any of the simple-method operations, including the conditional/if operations.
+            </xs:documentation>
+        </xs:annotation>
         <xs:complexType>
             <xs:sequence>
-                <xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations"/>
-                <xs:element minOccurs="0" ref="else"/>
+                <xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations">
+                    <xs:annotation>
+                        <xs:documentation>
+                            Any simple-method operation can be nested under an if-* tag.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:group>
+                <xs:element minOccurs="0" ref="else">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The else tag can be used to contain operations that will run if the condition fails, 
+                            or in other words if the operations under the if tag do not run. 
+                            
+                            It can contain any simple-method operation. 
+                            The else tag must be placed as the last tag under the if-* tag.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
             </xs:sequence>
             <xs:attributeGroup ref="attlist.if-not-empty"/>
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.if-not-empty">
-        <xs:attribute type="xs:string" name="map-name"/>
-        <xs:attribute type="xs:string" name="field-name" use="required"/>
+        <xs:attribute type="xs:string" name="map-name">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the method environment field that contains the map that the field to be validated will come from. 
+                    If not specified the field-name will be treated as a method environment field name (an env-name).
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="field-name" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the map field that will be compared.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
     </xs:attributeGroup>
     <xs:element name="if-has-permission" substitutionGroup="IfBasicOperations">
+        <xs:annotation>
+            <xs:documentation>
+                The operations contained by the if-has-permission tag will only be executed if the user has the specified permission, and optionally the action. 
+                This tag can contain any of the simple-method operations, including the conditional/if operations.
+            </xs:documentation>
+        </xs:annotation>
         <xs:complexType>
             <xs:sequence>
-                <xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations"/>
-                <xs:element minOccurs="0" ref="else"/>
+                <xs:group minOccurs="0" maxOccurs="unbounded" ref="AllOperations">
+                    <xs:annotation>
+                        <xs:documentation>
+                            Any simple-method operation can be nested under an if-* tag.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:group>
+                <xs:element minOccurs="0" ref="else">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The else tag can be used to contain operations that will run if the condition fails, 
+                            or in other words if the operations under the if tag do not run. 
+                            
+                            It can contain any simple-method operation. 
+                            The else tag must be placed as the last tag under the if-* tag.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
             </xs:sequence>
             <xs:attributeGroup ref="attlist.if-has-permission"/>
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.if-has-permission">
-        <xs:attribute type="xs:string" name="permission" use="required"/>
-        <xs:attribute type="xs:string" name="action"/>
+        <xs:attribute type="xs:string" name="permission" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the permission in the database. 
+                    The user must belong to a security group that has this permission.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="action">
+            <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.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
     </xs:attributeGroup>
     <xs:element name="check-permission" substitutionGroup="IfOtherOperations">
+        <xs:annotation>
+            <xs:documentation>
+                The check-permission tag checks to see if the current user has the specified permission. 
+                The the user does not have the specified permission or there is no user associated with the context 
+                then the failure message from fail-message or file-property will be added to the specified error list.                
+            </xs:documentation>
+        </xs:annotation>
         <xs:complexType>
             <xs:sequence>
-                <xs:element minOccurs="0" maxOccurs="1" ref="accept-userlogin-party"/>
-                <xs:element minOccurs="0" maxOccurs="unbounded" ref="alt-permission"/>
+                <xs:element minOccurs="0" maxOccurs="1" ref="accept-userlogin-party">
+                    <xs:annotation>
+                        <xs:documentation>
+                            
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element minOccurs="0" maxOccurs="unbounded" ref="alt-permission">
+                    <xs:annotation>
+                        <xs:documentation>
+                            Allows you to specify alternate permissions, any of which will satisfy this check permission. 
+                            If the current userLogin does not have any of these permissions the error will be added to the list. 
+                            Has two attributes: permission and action that behave just as the corresponding attributes described above for the check-permission element.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
                 <xs:choice>
-                    <xs:element ref="fail-message"/>
-                    <xs:element ref="fail-property"/>
+                    <xs:element ref="fail-message">
+                        <xs:annotation>
+                            <xs:documentation>
+                                An inline failure message.                                
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element ref="fail-property">
+                        <xs:annotation>
+                            <xs:documentation>
+                                A failure message from a properties file.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
                 </xs:choice>
             </xs:sequence>
             <xs:attributeGroup ref="attlist.check-permission"/>
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.check-permission">
-        <xs:attribute type="xs:string" name="permission" use="required"/>
-        <xs:attribute type="xs:string" name="action"/>
-        <xs:attribute type="xs:string" name="error-list-name" default="error_list"/>
+        <xs:attribute type="xs:string" name="permission" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the permission in the database. 
+                    The user must belong to a security group that has this permission.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="action">
+            <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.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="error-list-name" default="error_list">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of a list in the method environment that the error messages will be added to. 
+                    Will be created if does not exist. 
+                    Defaults to "error_list".
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
     </xs:attributeGroup>
     <xs:element name="accept-userlogin-party">
+        <xs:annotation>
+            <xs:documentation>
+                
+            </xs:documentation>
+        </xs:annotation>
         <xs:complexType>
             <xs:attributeGroup ref="attlist.accept-userlogin-party"/>
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.accept-userlogin-party">
-        <xs:attribute type="xs:string" name="party-id-env-name" default="partyId"/>
+        <xs:attribute type="xs:string" name="party-id-env-name" default="partyId">
+            <xs:annotation>
+                <xs:documentation>
+                    
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
     </xs:attributeGroup>
     <xs:element name="alt-permission">
+        <xs:annotation>
+            <xs:documentation>
+                
+            </xs:documentation>
+        </xs:annotation>
         <xs:complexType>
             <xs:attributeGroup ref="attlist.alt-permission"/>
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.alt-permission">
-        <xs:attribute type="xs:string" name="permission" use="required"/>
-        <xs:attribute type="xs:string" name="action"/>
+        <xs:attribute type="xs:string" name="permission" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the permission in the database. 
+                    The user must belong to a security group that has this permission.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="action">
+            <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.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
     </xs:attributeGroup>
     <xs:element name="check-id" substitutionGroup="IfOtherOperations">
+        <xs:annotation>
+            <xs:documentation>
+                <![CDATA[The check-id tag checks to see if the ID value in the given field is a valid ID string. 
+                Valid IDs can be any sequence of characters or digits but must not containt the following characters: 
+                space [ ], doublequote ["], single quote ['], ampersand [&], question mark [?], less-than sign [<], greater-than sign [>].]]>                
+            </xs:documentation>
+        </xs:annotation>
         <xs:complexType>
             <xs:choice minOccurs="0">
-                <xs:element ref="fail-message"/>
-                <xs:element ref="fail-property"/>
+                <xs:element ref="fail-message">
+                    <xs:annotation>
+                        <xs:documentation>
+                            An inline failure message.                                
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element ref="fail-property">
+                    <xs:annotation>
+                        <xs:documentation>
+                            A failure message from a properties file.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
             </xs:choice>
             <xs:attributeGroup ref="attlist.check-id"/>
         </xs:complexType>
     </xs:element>
     <xs:attributeGroup name="attlist.check-id">
-        <xs:attribute type="xs:string" name="field-name" use="required"/>
-        <xs:attribute type="xs:string" name="map-name"/>
-        <xs:attribute type="xs:string" name="error-list-name" default="error_list"/>
+        <xs:attribute type="xs:string" name="field-name" use="required">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the field that contains the ID value to check.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="map-name">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of the Map that contains the field. 
+                    If not specified the environment will be used to find the field.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute type="xs:string" name="error-list-name" default="error_list">
+            <xs:annotation>
+                <xs:documentation>
+                    The name of a list in the method environment that the error messages will be added to. 
+                    Will be created if does not exist. Defaults to "error_list".
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
     </xs:attributeGroup>
     <!-- the "Other" Operations -->
     <xs:element name="log" substitutionGroup="OtherOperations">