<?xml version="1.0" encoding="UTF-8"?> <schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://jbpm.org/4.0/jpdl" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://jbpm.org/4.0/jpdl"> <annotation> <documentation> Schema for jPDL 4 process descriptions; element process is the top level element. TODO: Add activity pluggability. (add the proper any's and anyAttributes) TODO: Pull up expression. The expression element in the delegation group can be pulled up as an expression attribute in each use case of the delegationGroup TODO: Investigate if object-refs to centrally defined objects would add value over inline defined objects. </documentation> </annotation> <!-- ### PROCESS DEFINITION ############################################# --> <annotation> <documentation> A jPDL process definition description; This is the top level element in a jPDL process file. </documentation> </annotation> <complexType> <sequence maxOccurs="unbounded" minOccurs="0"> </sequence> <annotation> <documentation> The process name. Multiple processes can be deployed with the same name, as long as they have a different version. </documentation> </annotation> </attribute> <annotation> <documentation> The key can be used to provide a short acronym that will replace the name as the basis for the generated process definition id </documentation> </annotation> </attribute> <annotation> <documentation> Indicates the sequence number of this version for all processes with the same name. By specifying a version automatic deployment can figure out if this process is already deployed or not. </documentation> </annotation> </attribute> <anyAttribute processContents="skip"> <annotation> <documentation> for extensibility </documentation> </annotation> </anyAttribute> </complexType> </element> <!-- ### ACTIVITIES ##################################################### --> <choice> <!-- ~~~ START ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <annotation> <documentation> Start event </documentation> </annotation> <complexType> <sequence> </sequence> <annotation> <documentation> the resource name of the form in the deployment. </documentation> </annotation> </attribute> </complexType> </element> <!-- ~~~ END ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <annotation> <documentation> End event. </documentation> </annotation> <complexType> <sequence> </sequence> <simpleType> <restriction base="string"> <enumeration value="execution"/> <enumeration value="process-instance"/> </restriction> </simpleType> </attribute> <annotation> <documentation>sets the state of the execution explicitely</documentation> </annotation> </attribute> </complexType> </element> <annotation> <documentation> End cancel event. </documentation> </annotation> <complexType> <sequence> </sequence> <simpleType> <restriction base="string"> <enumeration value="execution"/> <enumeration value="process-instance"/> </restriction> </simpleType> </attribute> </complexType> </element> <annotation> <documentation> End cancel event. </documentation> </annotation> <complexType> <sequence> </sequence> <simpleType> <restriction base="string"> <enumeration value="execution"/> <enumeration value="process-instance"/> </restriction> </simpleType> </attribute> </complexType> </element> <!-- ~~~ STATE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <annotation> <documentation> A wait state. When an execution arrives in this activity, the execution will wait until an external trigger is received with execution.signal() or execution.getActivityInstance().signal() </documentation> </annotation> <complexType> <sequence> <complexType> <complexContent> <sequence> </sequence> </extension> </complexContent> </complexType> </element> </sequence> </complexType> </element> <!-- ~~~ DECISION ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <annotation> <documentation> Decision gateway: selects one path out of many alternatives. When an execution comes in, exactly one outgoing transition is taken. </documentation> </annotation> <complexType> <sequence> <complexType> <complexContent> <sequence> <complexType> <annotation> <documentation> The script text that will be evaluated. </documentation> </annotation> </attribute> <annotation> <documentation> Identification of the scripting language to use. </documentation> </annotation> </attribute> </complexType> </element> </sequence> </extension> </complexContent> </complexType> <!-- TODO add conditions --> </element> </sequence> <annotation> <documentation> The script that will be evaluated and resolve to the name of the outgoing transition. </documentation> </annotation> </attribute> <annotation> <documentation> Identification of the scripting language to use for the expr attribute. </documentation> </annotation> </attribute> </complexType> </element> <!-- ~~~ FORK ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <annotation> <documentation> Spawns multiple concurrent paths of execution. </documentation> </annotation> <complexType> <sequence> </sequence> </complexType> </element> <!-- ~~~ JOIN ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <annotation> <documentation> Spawns multiple concurrent paths of execution. </documentation> </annotation> <complexType> <sequence> </sequence> <simpleType> <restriction base="string"> <enumeration value="none"/> <enumeration value="read"/> <enumeration value="upgrade"/> <enumeration value="upgrade_nowait"/> <enumeration value="write"/> </restriction> </simpleType> </attribute> </complexType> </element> <!-- ~~~ SCRIPT ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <annotation> <documentation> Evaluates a piece of text as a script </documentation> </annotation> <complexType> <complexContent> <sequence> </sequence> </extension> </complexContent> </complexType> </element> <!-- ~~~ HQL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <annotation> <documentation> Performs a hibernate query </documentation> </annotation> <complexType> <complexContent> <sequence> </sequence> </extension> </complexContent> </complexType> </element> <!-- ~~~ SQL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <annotation> <documentation> Performs a hibernate SQL query </documentation> </annotation> <complexType> <complexContent> <sequence> </sequence> </extension> </complexContent> </complexType> </element> <!-- ~~~ MAIL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <annotation> <documentation> Sends an email </documentation> </annotation> <complexType> <complexContent> <sequence> </sequence> </extension> </complexContent> </complexType> </element> <!-- ~~~ JAVA ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <annotation> <documentation> Invokes a method on a java object. Either the java class is instantiated with reflection, or the java object is fetched from the environment. Then values from the environment are injected into the fields and a method is executed. </documentation> </annotation> <complexType> <complexContent> <sequence> </sequence> </extension> </complexContent> </complexType> </element> <!-- ~~~ CUSTOM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <annotation> <documentation> Uses a user defined, custom implementation of ActivityBehaviour </documentation> </annotation> <complexType> <complexContent> <sequence> </sequence> </extension> </complexContent> </complexType> </element> <!-- ~~~ TASK ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <annotation> <documentation> Creates a task in the task component. </documentation> </annotation> <complexType> <sequence> <complexType> </complexType> </element> <complexType> </complexType> </element> <complexType> <complexContent> <sequence> </sequence> </extension> </complexContent> </complexType> </element> </sequence> <annotation> <documentation> the resource name of the form in the deployment. </documentation> </annotation> </attribute> <simpleType> <restriction base="string"> <enumeration value="keep"/> <enumeration value="cancel"/> </restriction> </simpleType> </attribute> </complexType> </element> <!-- ~~~ SUB-PROCESS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <annotation> <documentation> Waits while a sub process instance is being executed and continues when the sub process instance ends. </documentation> </annotation> <complexType> <sequence maxOccurs="unbounded" minOccurs="0"> <annotation> <documentation>Events on which listeners can be registered.</documentation> </annotation> </element> <complexType> </complexType> </element> <complexType> <complexContent> <sequence maxOccurs="unbounded" minOccurs="0"> <complexType> </complexType> </element> </sequence> </extension> </complexContent> </complexType> </element> </sequence> <annotation> <documentation> Identifies the sub process by the id. This means that a specific version of a process definition is referenced </documentation> </annotation> </attribute> <annotation> <documentation> Identifies the sub process by the key. This means that the latest version of the process definition with the given key is referenced. The latest version of the process is looked up each time the activity executes. </documentation> </annotation> </attribute> <annotation> <documentation> Expression that is evaluated when the sub process instance ends. The value is then used for outcome transition mapping. </documentation> </annotation> </attribute> </complexType> </element> <!-- ~~~ group ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <annotation> <documentation> Scope enclosing a number of activities. </documentation> </annotation> <complexType> <sequence> <annotation> <documentation>Events on which listeners can be registered.</documentation> </annotation> </element> </sequence> </complexType> </element> </choice> </group> <choice> <!-- SPECIAL OBJECTS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <annotation> <documentation> the null value </documentation> </annotation> </element> <annotation> <documentation> A reference to an object in the current environment </documentation> </annotation> <complexType> <annotation> <documentation>The name of the referred object</documentation> </annotation> </attribute> </complexType> </element> <annotation> <documentation> The current environment. </documentation> </annotation> </element> <annotation> <documentation> A lookup from JNDI through the InitialContext </documentation> </annotation> <complexType> </complexType> </element> <!-- COLLECTIONS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <annotation> <documentation>A java.util.List</documentation> </annotation> <complexType> <choice maxOccurs="unbounded" minOccurs="0"> </choice> <annotation> <documentation> Implementation class for this list. </documentation> </annotation> </attribute> <annotation> <documentation> Indicates if this collection should be synchronized with Collections.synchronizedList(List) </documentation> </annotation> </attribute> </complexType> </element> <annotation> <documentation>A java.util.Map</documentation> </annotation> <complexType> <choice maxOccurs="unbounded" minOccurs="0"> <complexType> <choice minOccurs="0"> <complexType> </complexType> </element> <complexType> </complexType> </element> </choice> </complexType> </element> </choice> <annotation> <documentation> Implementation class for this map. </documentation> </annotation> </attribute> <annotation> <documentation> Indicates if this collection should be synchronized with Collections.synchronizedList(List) </documentation> </annotation> </attribute> </complexType> </element> <annotation> <documentation> A java.util.Set </documentation> </annotation> <complexType> <choice maxOccurs="unbounded" minOccurs="0"> </choice> <annotation> <documentation> The name of the object. It's optional and serves as an id to refer to this object from other object declarations. This name can also be used lookup the object programmatically. </documentation> </annotation> </attribute> <annotation> <documentation> Implementation class for this set. </documentation> </annotation> </attribute> <annotation> <documentation> Indicates if this collection should be synchronized with Collections.synchronizedSet(Set) </documentation> </annotation> </attribute> </complexType> </element> <annotation> <documentation>A java.util.Properties</documentation> </annotation> <complexType> <choice maxOccurs="unbounded" minOccurs="0"> <complexType> </complexType> </element> </choice> <annotation> <documentation>A file on the file system</documentation> </annotation> </attribute> <annotation> <documentation>A file as a resource in the classpath</documentation> </annotation> </attribute> <annotation> <documentation>the contents is fetched by loading a url</documentation> </annotation> </attribute> <annotation> <documentation> optionally indicates if the content of referenced file in attributes 'file', 'resource' or 'url' is XML. The default is the plain properties format with a space or the equals character (=) separating key and value on each line. </documentation> </annotation> </attribute> </complexType> </element> <!-- OBJECT ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- BASIC TYPES ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <complexType> <annotation> <documentation>the name of the string object</documentation> </annotation> </attribute> <annotation> <documentation>the actual string value</documentation> </annotation> </attribute> </complexType> </element> <annotation> <documentation>A java.lang.Byte</documentation> </annotation> <complexType> <annotation> <documentation> The name of the object. It's optional and serves as an id to refer to this object from other object declarations. This name can also be used lookup the object programmatically. </documentation> </annotation> </attribute> </complexType> </element> <annotation> <documentation>A java.lang.Character</documentation> </annotation> <complexType> <annotation> <documentation> The name of the object. It's optional and serves as an id to refer to this object from other object declarations. This name can also be used lookup the object programmatically. </documentation> </annotation> </attribute> <simpleType> <restriction base="string"> <maxLength value="1"/> </restriction> </simpleType> </attribute> </complexType> </element> <annotation> <documentation>A java.lang.Double</documentation> </annotation> <complexType> <annotation> <documentation> The name of the object. It's optional and serves as an id to refer to this object from other object declarations. This name can also be used lookup the object programmatically. </documentation> </annotation> </attribute> </complexType> </element> <annotation> <documentation> java.lang.Boolean.FALSE </documentation> </annotation> <complexType> <annotation> <documentation> The name of the object. It's optional and serves as an id to refer to this object from other object declarations. This name can also be used lookup the object programmatically. </documentation> </annotation> </attribute> </complexType> </element> <annotation> <documentation> A java.lang.Float </documentation> </annotation> <complexType> <annotation> <documentation> The name of the object. It's optional and serves as an id to refer to this object from other object declarations. This name can also be used lookup the object programmatically. </documentation> </annotation> </attribute> </complexType> </element> <annotation> <documentation> A java.lang.Integer </documentation> </annotation> <complexType> <annotation> <documentation> The name of the object. It's optional and serves as an id to refer to this object from other object declarations. This name can also be used lookup the object programmatically. </documentation> </annotation> </attribute> </complexType> </element> <annotation> <documentation>A java.lang.Long</documentation> </annotation> <complexType> <annotation> <documentation> The name of the object. It's optional and serves as an id to refer to this object from other object declarations. This name can also be used lookup the object programmatically. </documentation> </annotation> </attribute> </complexType> </element> <annotation> <documentation> a java.lang.Short </documentation> </annotation> <complexType> <annotation> <documentation> The name of the object. It's optional and serves as an id to refer to this object from other object declarations. This name can also be used lookup the object programmatically. </documentation> </annotation> </attribute> </complexType> </element> <annotation> <documentation> java.lang.Boolean.TRUE </documentation> </annotation> <complexType> <annotation> <documentation> The name of the object. It's optional and serves as an id to refer to this object from other object declarations. This name can also be used lookup the object programmatically. </documentation> </annotation> </attribute> </complexType> </element> </choice> </group> <annotation> <documentation> Any java object that will be created by reflection. . <p> There are three main ways to create an object: by constructor or by a factory object or a static factory method. </p> <p> <b>Using the constructor</b> : Then the <code>class</code> attribute must provide the fully qualified class name. In case another constructor then the default is targetted, a <code>constructor</code> child element can be provided. The <code>factory</code> attribute should not be provided for using a constructor. </p> <p> <b>Using a factory</b> : Then the <code>factory</code> attribute or one <code>factory</code> element must be provided along with the attribute <code>method</code> . </p> <p> <b>Using a static factory method</b> : Then the <code>class</code> and <code>method</code> attributes should be specified. There should be no reference to a <code>factory</code> attribute of element. </p> <p> <b>Construction and initialization</b> : all objects (constructor and factory) are build in two phases: construction and initialisation phase. During construction all is done until a pointer is obtained to the object. In initialisation, operations are applied to the object until it is ready to be used. The separation between construction and initialisation is made to allow for bidirectional references. In that case, at least one of both ends can not be fully initialised before it is injected into the other end. </p> <p> <b>Operations</b> : after construction, various operations can be applied to objects like e.g. direct field injection, injection through setters, method invocation, enlist with the standard transaction, subscribe the object as a listener to an observable </p> <p> <b>Arguments</b> : There are two different places for arguments. The <code>arg</code> elements for the factory method invocation should be placed as child elements under the <code>object</code> element. The <code>arg</code> elements for the constructor should be placed as child elements under the <code>constructor</code> element. </p> </documentation> </annotation> <choice maxOccurs="unbounded" minOccurs="0"> <annotation> <documentation> Contains one element that describes the factory object. </documentation> </annotation> <complexType> </complexType> </element> <annotation> <documentation> Specifies the arguments to use for a non-default constructor. </documentation> </annotation> <complexType> <choice maxOccurs="unbounded"> </choice> </complexType> </element> <annotation> <documentation>The factory method arguments.</documentation> </annotation> </element> <annotation> <documentation> Injects a value into a member field of this object. Exactly one child element must specify the value. </documentation> </annotation> <complexType> <annotation> <documentation>The member field name</documentation> </annotation> </attribute> </complexType> </element> <annotation> <documentation> Injects a value through a setter method. Exactly one child element must specify the value. </documentation> </annotation> <complexType> <annotation> <documentation> The name of the property (without the 'set' prefix) </documentation> </annotation> </attribute> </complexType> </element> <annotation> <documentation>Invokes a method</documentation> </annotation> <complexType> <choice maxOccurs="unbounded" minOccurs="0"> </choice> <annotation> <documentation>the method name</documentation> </annotation> </attribute> </complexType> </element> </choice> <annotation> <documentation>The fully qualified class name</documentation> </annotation> </attribute> <annotation> <documentation> The class to instantiate. </documentation> </annotation> </attribute> <annotation> <documentation> The class to instantiate. </documentation> </annotation> </attribute> <annotation> <documentation>The name of the factory object</documentation> </annotation> </attribute> <annotation> <documentation>The factory method name</documentation> </annotation> </attribute> <annotation> <documentation> Indicates if the member fields and setter properties should be automatically wired based on matching the property names and types with the object names and types </documentation> </annotation> </attribute> </complexType> <annotation> <documentation> The method arguments. Each 'arg' element should have exactly one child element that represents the value of the argument. </documentation> </annotation> <annotation> <documentation> The java class name representing the type of the method. This is optional and can be used to indicate the appropriate method in case of method overloading. </documentation> </annotation> </attribute> </complexType> <sequence> <annotation> <documentation> Field injections from the environment invocation. </documentation> </annotation> </element> <annotation> <documentation>Method arguments.</documentation> </annotation> </element> </sequence> <annotation> <documentation> Name of the object in the environment </documentation> </annotation> </attribute> <annotation> <documentation> The name of the method to invoke. </documentation> </annotation> </attribute> <annotation> <documentation> The class to instantiate. </documentation> </annotation> </attribute> <annotation> <documentation> Expression that resolves to the target object on which the method should be invoked. </documentation> </annotation> </attribute> <annotation> <documentation> The language in which attribute 'expr' is to be resolved. </documentation> </annotation> </attribute> <annotation> <documentation> The variable name to store the return value </documentation> </annotation> </attribute> </complexType> <sequence> <annotation> <documentation> The content of this expression element is the script text that will be evaluated. This is mutually exclusive with the expression attribute. </documentation> </annotation> </element> </sequence> <annotation> <documentation> The script text that will be evaluated. This is mutually exclusive with the expression element. </documentation> </annotation> </attribute> <annotation> <documentation> Identification of the scripting language to use. </documentation> </annotation> </attribute> <annotation> <documentation> Name of the variable in which the result of the script evaluation will be stored </documentation> </annotation> </attribute> </complexType> <sequence> <annotation> <documentation>The query text.</documentation> </annotation> </element> <annotation> <documentation>Query parameters.</documentation> </annotation> <complexType> <sequence> </sequence> </complexType> </element> </sequence> <annotation> <documentation> Name of the variable in which the result of the script evaluation will be stored </documentation> </annotation> </attribute> <annotation> <documentation> Does this query return a unique result or a list </documentation> </annotation> </attribute> </complexType> <annotation> <documentation> The id of this activity. The name should be unique in the complete scope of the process. </documentation> </annotation> </attribute> <annotation> <documentation> Graphical information used by process designer tool. </documentation> </annotation> </attribute> <annotation> <documentation> To specify async continuations. sync is the default. </documentation> </annotation> </attribute> </attributeGroup> <restriction base="string"> <enumeration value="async"/> <enumeration value="sync"/> <enumeration value="exclusive"/> </restriction> </simpleType> <annotation> <documentation> the assignment attributes will be used in tasks and swimlanes to specify to whom these respectively are assigned. </documentation> </annotation> <annotation> <documentation> Expression that resolves to a userId referencing the person to which the task or swimlane will be assigned. </documentation> </annotation> </attribute> <annotation> <documentation> Expression language for the assignee attribute. </documentation> </annotation> </attribute> <annotation> <documentation> Expression that resolves to a comma separated list of userId's. All the referred people will be candidates for take the task or swimlane. </documentation> </annotation> </attribute> <annotation> <documentation> Expression language for the candidate-users attribute. </documentation> </annotation> </attribute> <annotation> <documentation> Resolves to a comma separated list of groupId's. All the referred people will be candidates to take the task or swimlane. </documentation> </annotation> </attribute> <annotation> <documentation> Expression language for the candidate-groups attribute. </documentation> </annotation> </attribute> </attributeGroup> <annotation> <documentation>A process role.</documentation> </annotation> <complexType> </complexType> </element> <annotation> <documentation> The outgoing transitions. The first in the list will be the default outgoing transition. </documentation> </annotation> <sequence> </sequence> <annotation> <documentation>Name of this outgoing transition</documentation> </annotation> </attribute> <annotation> <documentation> Name of the destination activity of this transition. </documentation> </annotation> </attribute> <annotation> <documentation> Graphical information used by process designer tool. </documentation> </annotation> </attribute> </complexType> <annotation> <documentation>A transition from one activity to another.</documentation> </annotation> </element> <complexType> <sequence> <annotation> <documentation> A list of event listeners that will be notified when the event is fired </documentation> </annotation> </group> </sequence> <annotation> <documentation> The event identification. start, end, take or any other custom event. </documentation> </annotation> </attribute> </complexType> </element> <annotation> <documentation> The name of the sub process variable. </documentation> </annotation> </attribute> <annotation> <documentation> An expression for which the resulting value will be used as value. </documentation> </annotation> </attribute> <annotation> <documentation> Language of the expression. </documentation> </annotation> </attribute> <annotation> <documentation> Name of the process variable in the super process execution.. </documentation> </annotation> </attribute> </complexType> <complexType> <sequence> <annotation> <documentation> A list of event listeners that will be notified when the timer fires </documentation> </annotation> </group> </sequence> <annotation> <documentation> Timer duedate expression that defines the duedate of this timer relative to the creation time of the timer. E.g. '2 hours' or '4 business days' </documentation> </annotation> </attribute> <annotation> <documentation> Timer duedate expression that defines repeated scheduling relative to the last timer fire event. E.g. '2 hours' or '4 business days' </documentation> </annotation> </attribute> <annotation> <documentation> Absolute time in format <code>HH:mm dd/MM/yyyy</code> (see SimpleDateFormat). The format for the absolute time can be customized in the jbpm configuration. </documentation> </annotation> </attribute> </complexType> </element> <choice> </choice> </group> <sequence> <complexType> <sequence> <complexType> <annotation> <documentation>URL reference to the attachment</documentation> </annotation> </attribute> <annotation> <documentation>Name of the attachment resource on the classpath</documentation> </annotation> </attribute> <annotation> <documentation>File reference to the attachment</documentation> </annotation> </attribute> </complexType> </element> </sequence> </complexType> </element> </sequence> </complexType> <annotation> <documentation> list of email address separated by ',' (comma) ';' (semicolon) '|' or whitespace </documentation> </annotation> </attribute> <annotation> <documentation> list of user ids that are resolved to the email address against configured identity component. user ids should be separated by ',' (comma) ';' (semicolon) '|' or whitespace </documentation> </annotation> </attribute> <annotation> <documentation> list of group ids that are resolved to the email address against configured identity component. group ids should be separated by ',' (comma) ';' (semicolon) '|' or whitespace </documentation> </annotation> </attribute> </complexType> <restriction base="string"> <enumeration value="true"/> <enumeration value="on"/> <enumeration value="enabled"/> <enumeration value="false"/> <enumeration value="off"/> <enumeration value="disabled"/> </restriction> </simpleType> <annotation> <documentation>Reference to the email template</documentation> </annotation> <restriction base="string"/> </simpleType> </schema> |
This XML schema documentation has been generated with DocFlex/XML RE 1.7.2 using DocFlex/XML XSDDoc 2.1.0 template set. DocFlex/XML RE is a reduced edition of DocFlex/XML, which is a tool for programming and running highly sophisticated documentation and reports generators by the data obtained from any kind of XML files. The actual doc-generators are implemented in the form of special templates that are designed visually using a high quality Template Designer GUI basing on the XML schema (or DTD) files describing the data source XML. DocFlex/XML XSDDoc is a commercial template application of DocFlex/XML that implements a high-end XML Schema documentation generator with simultaneous support of framed multi-file HTML, single-file HTML and RTF output formats. (More formats are planned in the future). A commercial license for "DocFlex/XML XSDDoc" will allow you:
Once having only such a license, you will be able to run the fully-featured XML schema documentation generator both with DocFlex/XML SDK and with DocFlex/XML RE, which is a reduced free edition containing only the template interpretor / output generator. No other licenses will be required! But this is not all. In addition to it, a commercial license for DocFlex/XML SDK will allow you to modify the XSDDoc templates themselves as much as you want. You will be able to achieve whatever was impossible to do with the template parameters only. And, of course, you could develop any template applications by your own! Please note: By purchasing a license for this software, you not only acquire a useful tool, you will also make an important investment in its future development, the result of which you could enjoy later by yourself. Every single your purchase matters and makes a difference for us! To buy a license, please follow this link: http://www.filigris.com/shop/ |