Definition Type Element
Name multi-list
Abstract False
MinOccurs 0
MaxOccurs unbounded
XSD Schema Character Sheet Definition.xsd
XSD Schema Diagram
XSD Schema Code
<xs:element minOccurs="0" maxOccurs="unbounded" name="multi-list" >
  <xs:complexType>
    <xs:sequence>
      <xs:choice maxOccurs="unbounded">
        <xs:element minOccurs="0" name="name" type="xs:string"/>
        <xs:element minOccurs="0" name="title-color" type="xs:string"/>
        <xs:element minOccurs="0" name="id" type="xs:string"/>
        <xs:element minOccurs="0" default="false" name="read-only" type="xs:boolean">
          <xs:annotation>
            <xs:documentation>Flag indicating that the contents of this table can not be edited via the character sheet.

Setting this flag indicates that the only way to alter the contents of this table is programmatically.
</xs:documentation>
          </xs:annotation>

        </xs:element>

        <xs:element minOccurs="0" default="false" name="dm-only" type="xs:boolean">
          <xs:annotation>
            <xs:documentation>Flag indicating that this table should only appear to the Master.</xs:documentation>
          </xs:annotation>

        </xs:element>

        <xs:element minOccurs="0" default="false" name="hidden" type="xs:boolean">
          <xs:annotation>
            <xs:documentation>Flag indicating that this table should never be rendered.</xs:documentation>
          </xs:annotation>

        </xs:element>

        <xs:element minOccurs="0" name="table-tag" type="xs:string">
          <xs:annotation>
            <xs:documentation>A unique identifier for saving this table's contents.</xs:documentation>
          </xs:annotation>

        </xs:element>

        <xs:element minOccurs="0" name="row-tag" type="xs:string">
          <xs:annotation>
            <xs:documentation>An identifier for saving each row of this table's contents.</xs:documentation>
          </xs:annotation>

        </xs:element>

        <xs:element minOccurs="0" maxOccurs="unbounded" name="data-file" type="xs:string">
          <xs:annotation>
            <xs:documentation>The name of a file that contains information that can be used to create rows of the table.</xs:documentation>
          </xs:annotation>

        </xs:element>

        <xs:element minOccurs="0" maxOccurs="unbounded" name="table-column">
          <xs:annotation>
            <xs:documentation>This clause defines a column of the table.</xs:documentation>
          </xs:annotation>

          <xs:complexType>
            <xs:sequence>
              <xs:choice maxOccurs="unbounded">
                <xs:element minOccurs="0" name="name" type="xs:string">
                  <xs:annotation>
                    <xs:documentation>A label to associate with this field.</xs:documentation>
                  </xs:annotation>

                </xs:element>

                <xs:element minOccurs="0" name="tag" type="xs:string">
                  <xs:annotation>
                    <xs:documentation>A unique identifier for saving this field's contents.</xs:documentation>
                  </xs:annotation>

                </xs:element>

                <xs:element minOccurs="0" name="id" type="xs:string">
                  <xs:annotation>
                    <xs:documentation>An optional identifier so that the contents of this field can be referenced elsewhere in the definition.</xs:documentation>
                  </xs:annotation>

                </xs:element>

                <xs:element minOccurs="0" name="array-list" type="xs:string">
                  <xs:annotation>
                    <xs:documentation>The ID of a previously defined &quot;array&quot; whose values are available to this field.</xs:documentation>
                  </xs:annotation>

                </xs:element>

                <xs:element minOccurs="0" name="foreground" type="xs:string">
                  <xs:annotation>
                    <xs:documentation>A color to use for the foreground text of this field.</xs:documentation>
                  </xs:annotation>

                </xs:element>

                <xs:element minOccurs="0" name="background" type="xs:string">
                  <xs:annotation>
                    <xs:documentation>A color to use for the background this field.</xs:documentation>
                  </xs:annotation>

                </xs:element>

                <xs:element minOccurs="0" name="default" type="xs:string">
                  <xs:annotation>
                    <xs:documentation>A default value for this field.</xs:documentation>
                  </xs:annotation>

                </xs:element>

                <xs:element minOccurs="0" maxOccurs="1" name="read-only" type="xs:boolean">
                  <xs:annotation>
                    <xs:documentation>Flag indicating that this column should be &quot;read only.&quot;

A &quot;read only&quot; column's data can not be modified through the program's character sheet interface, but can be modified programmatically via scripts or other indirect methods.
</xs:documentation>
                  </xs:annotation>

                </xs:element>

                <xs:element minOccurs="0" name="token-name" type="xs:string">
                  <xs:annotation>
                    <xs:documentation>A unique identifier that allows the contents of this field to be referenced by the contents of other fields.</xs:documentation>
                  </xs:annotation>

                </xs:element>

                <xs:element minOccurs="0" default="false" name="double-value" type="xs:boolean">
                  <xs:annotation>
                    <xs:documentation>Flag that indicates that the contents of this field are expected to be in the format of a double precision number.</xs:documentation>
                  </xs:annotation>

                </xs:element>

                <xs:element minOccurs="0" default="false" name="string-value" type="xs:boolean">
                  <xs:annotation>
                    <xs:documentation>Flag that indicates that the contents of this field are expected to be a string.</xs:documentation>
                  </xs:annotation>

                </xs:element>

                <xs:element minOccurs="0" default="false" name="bool-value" type="xs:boolean">
                  <xs:annotation>
                    <xs:documentation>Flag that indicates that the contents of this field are expected to be in the format of a boolean (true/false).</xs:documentation>
                  </xs:annotation>

                </xs:element>

                <xs:element minOccurs="0" name="size" type="xs:integer">
                  <xs:annotation>
                    <xs:documentation>The number of columns that this field should occupy.  Depending on the layout of the character sheet, this value may not be honored.</xs:documentation>
                  </xs:annotation>

                </xs:element>

                <xs:element minOccurs="0" name="tooltip" type="xs:string">
                  <xs:annotation>
                    <xs:documentation>A tooltip to apply to this field.</xs:documentation>
                  </xs:annotation>

                </xs:element>

                <xs:element minOccurs="0" maxOccurs="unbounded" name="modifiers">
                  <xs:annotation>
                    <xs:documentation>A list of field IDs whose values can modify another field's value.</xs:documentation>
                  </xs:annotation>

                  <xs:complexType>
                    <xs:sequence>
                      <xs:element minOccurs="0" maxOccurs="unbounded" name="modifier" type="xs:string">
                        <xs:annotation>
                          <xs:documentation>The ID of a field whose contents will directly modify the value of the associated field.</xs:documentation>
                        </xs:annotation>

                      </xs:element>

                      <xs:element minOccurs="0" maxOccurs="unbounded" name="modifier-positive" type="xs:string">
                        <xs:annotation>
                          <xs:documentation>The ID of a field which contains data whose absolute value will positively modify the value of the associated field.</xs:documentation>
                        </xs:annotation>

                      </xs:element>

                      <xs:element minOccurs="0" maxOccurs="unbounded" name="modifier-negative" type="xs:string">
                        <xs:annotation>
                          <xs:documentation>The ID of a field which contains data whose absolute value will negatively modify the value of the associated field.</xs:documentation>
                        </xs:annotation>

                      </xs:element>

                      <xs:element minOccurs="0" maxOccurs="unbounded" name="modifier-script">
                        <xs:annotation>
                          <xs:documentation>A clause that defines a script to be executed during the &quot;parse&quot; phase of expression evaluation.

This differs from the &quot;parse-script&quot; tag in that this extended clause allows you to define and pass variables to the script before it is executed.

This allows you to have more generic scripts whose functionality is tailored by data contained in the character sheet.
</xs:documentation>
                        </xs:annotation>

                        <xs:complexType>
                          <xs:sequence>
                            <xs:element minOccurs="1" maxOccurs="1" name="script" type="xs:string">
                              <xs:annotation>
                                <xs:documentation>The script file name to execute.</xs:documentation>
                              </xs:annotation>

                            </xs:element>

                            <xs:element minOccurs="0" maxOccurs="unbounded" name="args">
                              <xs:annotation>
                                <xs:documentation>List of arguments to define for the script.</xs:documentation>
                              </xs:annotation>

                              <xs:complexType>
                                <xs:sequence>
                                  <xs:element minOccurs="0" maxOccurs="unbounded" name="arg">
                                    <xs:annotation>
                                      <xs:documentation>An individual script variable.</xs:documentation>
                                    </xs:annotation>

                                    <xs:complexType>
                                      <xs:sequence>
                                        <xs:element minOccurs="1" name="name" type="xs:string">
                                          <xs:annotation>
                                            <xs:documentation>The name of the variable to be declared in the script's context.</xs:documentation>
                                          </xs:annotation>

                                        </xs:element>

                                        <xs:element minOccurs="1" name="value" type="xs:string">
                                          <xs:annotation>
                                            <xs:documentation>The value of the declared varible.</xs:documentation>
                                          </xs:annotation>

                                        </xs:element>

                                      </xs:sequence>

                                    </xs:complexType>

                                  </xs:element>

                                </xs:sequence>

                              </xs:complexType>

                            </xs:element>

                          </xs:sequence>

                        </xs:complexType>

                      </xs:element>

                    </xs:sequence>

                  </xs:complexType>

                </xs:element>

                <xs:element minOccurs="0" maxOccurs="unbounded" name="expression">
                  <xs:annotation>
                    <xs:documentation>A button placed at the top of this tab.

A button is, essentially, an expression that is evaluated when the button is pressed.

Note that the various tags and labels associated with a button are meant to contain not simple literal values, but also tokens or IDs of other fields.  In this fashion you can define expressions that reference data contained in other places on the character sheet.
</xs:documentation>
                  </xs:annotation>

                  <xs:complexType>
                    <xs:sequence>
                      <xs:choice maxOccurs="unbounded">
                        <xs:element minOccurs="0" name="button-label" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>The label to render on the face of this button.

This value can contain tokens and field IDs, which will be evaluated and expanded when the label is rendered.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="button-sub-label" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>An additional label to render on the face of this button when it is placed in a Dice Panel.

This value can contain tokens and field IDs, which will be evaluated and expanded when the label is rendered.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="type" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>The type of expression/button.  Only one of a perdefined list of types are supported.

These types are:

  button - an expression with no special handling
  toggle  - an expression that is added to some other expression
  init        - an initiative experssion
  attrib    - an attribute expression
  save     - a save expression
  attack   - an attack expression
  damage - a damage expression
  spell       - a spell expression
  skill         - a skill expression
  clc          - a &quot;caster level check&quot; expression
  custom   - a custom expression
  info         - an informative expression (does not roll)

Not all the expression types indicate that special handling is done, but by specifying the correct type, you indicate to the program that certain handling is expected and, should this handling be expanded in the future, you will be able to take advantage of it without further alteration.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="type-for-button" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>You can use this tag to specify an alternate type for this expression.  This alternate type will only be used for selecting the image to use for the expression's button in the Dice Dialog.</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="raw-label" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>The &quot;raw&quot; or &quot;base&quot; identification of this expression.  When multiple Icons are selected and a roll performed, the program will evaluate whether all the Icons have matching expressions based on this label.

As such, it should not contain any information specify to a particular Icon.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" default="false" name="exclude-value" type="xs:boolean">
                          <xs:annotation>
                            <xs:documentation>Flag indicating that any value associated with this field/button should be excluded from the expression.

This is especially useful for items that do not actually have any particular value (like buttons) or fields that contain something that will not actually be used in the expression.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" default="false" name="ignore-targets" type="xs:boolean">
                          <xs:annotation>
                            <xs:documentation>Flag indicating that when this expression is evaluated, any targets that the issuing Icon has should be ignored.

This is useful for &quot;skill&quot; and similar expression types that are not evaluated &quot;against&quot; a target, but might be rolled while the Icon is targeting someone.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" default="false" name="low-to-succeed" type="xs:boolean">
                          <xs:annotation>
                            <xs:documentation>Flag indicating that the success or failure of this expression should be determined by a low result.

This is generally used in conjunction with a &quot;target-value&quot; in game systems that support this notion.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" default="true" name="high-to-succeed" type="xs:boolean">
                          <xs:annotation>
                            <xs:documentation>Flag indicating that the success or failure of this expression should be determined by a high result.

This is generally used in conjunction with a &quot;target-value&quot; in game systems that support this notion.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" default="false" name="discard-remainder" type="xs:boolean">
                          <xs:annotation>
                            <xs:documentation>Flag indicating that if the result of this expression does not evaluate to a whole number, the remainder should be discarded.

Game system vary their rules for how/when/if remainders are allowed and how those remainders are treated.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" default="false" name="remainder-round-down" type="xs:boolean">
                          <xs:annotation>
                            <xs:documentation>Flag indicating that if the result of this expression does not evaluate to a whole number, the remainder should be used to round the result down to the next lowest whole number.

Game system vary their rules for how/when/if remainders are allowed and how those remainders are treated.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" default="false" name="remainder-roiund-up" type="xs:boolean">
                          <xs:annotation>
                            <xs:documentation>Flag indicating that if the result of this expression does not evaluate to a whole number, the remainder should be used to round the result up to the next highest whole number.

Game system vary their rules for how/when/if remainders are allowed and how those remainders are treated.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="hit-sound" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>The name of a sound file to be played when it is determined that this expression results in a &quot;hit.&quot;

This value is only relavent when the expression's type is &quot;attack.&quot;
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="miss-sound" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>The name of a sound file to be played when it is determined that this expression results in a &quot;miss.&quot;

This value is only relavent when the expression's type is &quot;attack.&quot;
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="critical-hit-sound" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>The name of a sound file to be played when it is determined that this expression results in a &quot;critical hit.&quot;

This value is only relavent when the expression's type is &quot;attack.&quot;
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="critical-miss-sound" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>The name of a sound file to be played when it is determined that this expression results in a &quot;critical miss.&quot;

This value is only relavent when the expression's type is &quot;attack.&quot;
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="damage-sound" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>The name of a sound file to be played when this expression is evaluated.

This value is only relavent when the expression's type is &quot;damage.&quot;
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="spell-sound" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>The name of a sound file to be played when this expression is evaluated.

This value is only relavent when the expression's type is &quot;spell.&quot;
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="applied-effect" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>The name of a pre-defined Icon Effect to apply to the targeted Icon when this expression is evaluated.

Pre-defined Icon Effects are set up by the Master and maintained by him.  In order to be applied, the value of this tag must match exactly the description of a pre-defined Icon Effect.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="hand" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>Reference to where &quot;hand&quot; information about the expression can be retrieved.

This information is used by the program when rendering various aspects of an expression to pass information on to the user.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" maxOccurs="1" name="armed" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>The ID of a field that indicates whether this item is considered to be &quot;armed&quot; (ie, ready for use).

A state of &quot;armed&quot; does not really impact the behavior of the program, unless the Master has set the Preferences option that forces an expression to be &quot;armed&quot; before it will be evaluated.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="desc-label" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>A descriptive labe for this expression.  This is only used for &quot;old style&quot; expression menus.</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="target-value" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>The &quot;target&quot; that the expression should be evaluated against.

For game systems that support this notion, this value contributes to the program determining whether the result of the expression evaluates to success or failure.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="pre-roll" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>A piece of the expression to be inserted before the main portion of the expression is built.</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="post-roll" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>A piece of the expression to be inserted after the main portion of the expression is built.</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="pre-expr" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>A piece of the expression that is inserted immediately prior to the main expression.

Where &quot;pre-roll&quot; is intended to be generally used to issue descriptive chat text concerning the expression, this tag is used to alter eactly what the expression contains.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="post-expr" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>A piece of the expression that is inserted immediately after the main expression.

Where &quot;post-roll&quot; is intended to be generally used to issue descriptive chat text concerning the expression, this tag is used to alter eactly what the expression contains.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="die-to-use" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>The ID of a previously defined die to be used as the main payload of this expression.

For &quot;custom,&quot; &quot;spell&quot; and &quot;button&quot; expression types, it is assumed that no predefined die will be used, so this tag is generally ignored.  For other expression types, however, this makes up the bulk of the expression's payload.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="static-label" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>A label that is used in the &quot;old style&quot; of Dice Dialogs and menus.</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="critical-check" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>A value to be used to determine a &quot;critical hit.&quot;

Generally this value should point to another field, where the user will enter data pertinent to this evaluation.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="critical-miss-check" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>A value to be used to determine a &quot;critical miss.&quot;

Generally this value should point to another field, where the user will enter data pertinent to this evaluation.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="sound" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>A sound file to play when this expression is evaluated.</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="effect" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>A visual effect to render when this expression is evaluated.</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="exclude-above" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>A value which, if the expression (or a piece of the expression) evaluates in excess of, will be discarded.</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="exclude-below" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>A value which, if the expression (or a piece of the expression) evaluates lower than, will be discarded.</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="reroll-above" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>A value which, if the expression (or a piece of the expression) evaluates in excess of, will be re-rolled.</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="reroll-above-save" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>A value which, if the expression (or a piece of the expression) evaluates in excess of, will be discarded, but the number of discardings is retained.</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="reroll-below-save" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>A value which, if the expression (or a piece of the expression) evaluates lower than, will be discarded, but the number of discardings is retained.</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="success-above" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>A value which, if the expression evaluates in excess of, will indicate success.</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="success-below" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>A value which, if the expression evaluates lower than, will indicate success.</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="no-damage" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>The ID of a field that indicates to the program that this expression should never be considered to adjust hit points.

This is useful for expressions of the &quot;spell&quot; variety that may or may not adjust hit points.  By indicating to the program where it can look for a hint, it is better able to determine whether or not to adjust hit points.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="quantity" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>The ID of a field where the program can look for quantity information.

The notion of &quot;quantity&quot; applies to an expression that, with a single evaluation, may disberse its results amongst various targets.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" maxOccurs="unbounded" name="check-availability">
                          <xs:annotation>
                            <xs:documentation>This clause instructs the program where to look to determine if the expression is available for evaluation.

If not present, then an expression is always considered to be available.
</xs:documentation>
                          </xs:annotation>

                          <xs:complexType>
                            <xs:sequence>
                              <xs:element minOccurs="0" name="memorized" type="xs:string">
                                <xs:annotation>
                                  <xs:documentation>The ID of the field where the program can find information about the number of this expression that is available.</xs:documentation>
                                </xs:annotation>

                              </xs:element>

                              <xs:element minOccurs="0" name="cost" type="xs:string">
                                <xs:annotation>
                                  <xs:documentation>The ID of the field where the program can find the &quot;cost&quot; of evaluating this expression.  This &quot;cost&quot; may be deducted from the value contained in the &quot;memorized&quot; field.</xs:documentation>
                                </xs:annotation>

                              </xs:element>

                              <xs:element minOccurs="0" name="cost-value" type="xs:string">
                                <xs:annotation>
                                  <xs:documentation>A literal value for &quot;cost&quot; that is always used instead of a value contained in the character sheet data.</xs:documentation>
                                </xs:annotation>

                              </xs:element>

                              <xs:element minOccurs="0" name="compare-from" type="xs:string">
                                <xs:annotation>
                                  <xs:documentation>The ID of a field where the program can find comparison information.

For availablity that does not rely on a particular number of the expression being &quot;memorized,&quot; this value refers to a &quot;pool&quot; of resources from which multiple expressions can draw.
</xs:documentation>
                                </xs:annotation>

                              </xs:element>

                              <xs:element minOccurs="0" name="compare-to" type="xs:string">
                                <xs:annotation>
                                  <xs:documentation>The ID of a field which contains data that must match data contained in the &quot;compare-from&quot; field.</xs:documentation>
                                </xs:annotation>

                              </xs:element>

                              <xs:element minOccurs="0" name="check-against" type="xs:string">
                                <xs:annotation>
                                  <xs:documentation>The ID of a field, in the same row as the &quot;compare-to&quot; field, whose value will be used to compare against.</xs:documentation>
                                </xs:annotation>

                              </xs:element>

                              <xs:element minOccurs="0" default="false" name="can-cast-up" type="xs:boolean">
                                <xs:annotation>
                                  <xs:documentation>Flag that indicates whether availability fails if there are no matching data available.

Essentially, this covers the instance where the user can elect to use a slot where he has data available in exchange for a slot where he does not.
</xs:documentation>
                                </xs:annotation>

                              </xs:element>

                            </xs:sequence>

                          </xs:complexType>

                        </xs:element>

                        <xs:element minOccurs="0" maxOccurs="unbounded" name="modify-on-roll">
                          <xs:annotation>
                            <xs:documentation>This clause instructs the program where to look to determine what fields should have their contents modified when this expression is evaluated.</xs:documentation>
                          </xs:annotation>

                          <xs:complexType>
                            <xs:sequence>
                              <xs:element minOccurs="0" name="memorized" type="xs:string">
                                <xs:annotation>
                                  <xs:documentation>The ID of the field where the program can find information about the number of this expression that is available.</xs:documentation>
                                </xs:annotation>

                              </xs:element>

                              <xs:element minOccurs="0" name="cost" type="xs:string">
                                <xs:annotation>
                                  <xs:documentation>The ID of the field where the program can find the &quot;cost&quot; of evaluating this expression.  This &quot;cost&quot; will be deducted from the value contained in the &quot;memorized&quot; field.</xs:documentation>
                                </xs:annotation>

                              </xs:element>

                              <xs:element minOccurs="0" name="cost-value" type="xs:string">
                                <xs:annotation>
                                  <xs:documentation>A literal value for &quot;cost&quot; that is always used instead of a value contained in the character sheet data.</xs:documentation>
                                </xs:annotation>

                              </xs:element>

                              <xs:element minOccurs="0" name="compare-from" type="xs:string">
                                <xs:annotation>
                                  <xs:documentation>The ID of a field where the program can find comparison information.

For availablity that does not rely on a particular number of the expression being &quot;memorized,&quot; this value refers to a &quot;pool&quot; of resources from which multiple expressions can draw.
</xs:documentation>
                                </xs:annotation>

                              </xs:element>

                              <xs:element minOccurs="0" name="compare-to" type="xs:string">
                                <xs:annotation>
                                  <xs:documentation>The ID of a field which contains data that must match data contained in the &quot;compare-from&quot; field.</xs:documentation>
                                </xs:annotation>

                              </xs:element>

                              <xs:element minOccurs="0" name="modify-field" type="xs:string">
                                <xs:annotation>
                                  <xs:documentation>The ID of the field to be modified.</xs:documentation>
                                </xs:annotation>

                              </xs:element>

                              <xs:element minOccurs="0" default="false" name="can-cast-up" type="xs:boolean">
                                <xs:annotation>
                                  <xs:documentation>Flag that indicates whether modification fails if there are no matching data available.

Essentially, this covers the instance where the user can elect to use a slot where he has data available in exchange for a slot where he does not.
</xs:documentation>
                                </xs:annotation>

                              </xs:element>

                            </xs:sequence>

                          </xs:complexType>

                        </xs:element>

                        <xs:element minOccurs="0" maxOccurs="1" name="actionable-def">
                          <xs:annotation>
                            <xs:documentation>This clause allows you to give the program a hint regarding which piece of multi-part expression should be used for hit point adjustment.

Primarily intended for expressions of the &quot;spell&quot; type, this clause is prone to failure.  The problem arises from the fact that a &quot;spell&quot; type can contain any number of expression pieces, any one of which (or none of which) may actually cause a hit point adjustment.

The &quot;no-damage&quot; tag is a refinement of this situation, but can not act alone.
</xs:documentation>
                          </xs:annotation>

                          <xs:complexType>
                            <xs:sequence>
                              <xs:element minOccurs="1" maxOccurs="1" name="total-clauses" type="xs:integer">
                                <xs:annotation>
                                  <xs:documentation>The total number of pieces that this expression is expected to contain.

If the expression does not actually contain this many pieces, then no hit point adjustment will be done.
</xs:documentation>
                                </xs:annotation>

                              </xs:element>

                              <xs:element minOccurs="1" maxOccurs="1" name="use-clause" type="xs:integer">
                                <xs:annotation>
                                  <xs:documentation>The piece of the expression that should be used for hit point adjustment.</xs:documentation>
                                </xs:annotation>

                              </xs:element>

                            </xs:sequence>

                          </xs:complexType>

                        </xs:element>

                        <xs:element minOccurs="0" name="color" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>The color to use when issuing the the chat message when this expression is evaluated.

This represents a &quot;default,&quot; which can be overridding by various other settings in the program.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="minimum" type="xs:integer">
                          <xs:annotation>
                            <xs:documentation>A minimum possible value for this expression.  If the expression is evaluated and the results is below this minimum, then the minimum value is used instead of the actual results.</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="parse-script" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>The name of a script to be executed when this expression is evaluated.

If this script returns a result, that result will be used instead of anything that the expression would otherwise generate.
</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" name="post-script" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>The name of a script to execute after this expression has been evaluated.</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="0" maxOccurs="unbounded" name="parse-script-ex">
                          <xs:annotation>
                            <xs:documentation>A clause that defines a script to be executed during the &quot;parse&quot; phase of expression evaluation.

This differs from the &quot;parse-script&quot; tag in that this extended clause allows you to define and pass variables to the script before it is executed.

This allows you to have more generic scripts whose functionality is tailored by data contained in the character sheet.
</xs:documentation>
                          </xs:annotation>

                          <xs:complexType>
                            <xs:sequence>
                              <xs:element minOccurs="1" maxOccurs="1" name="script" type="xs:string">
                                <xs:annotation>
                                  <xs:documentation>The script file name to execute.</xs:documentation>
                                </xs:annotation>

                              </xs:element>

                              <xs:element minOccurs="0" maxOccurs="unbounded" name="args">
                                <xs:annotation>
                                  <xs:documentation>List of arguments to define for the script.</xs:documentation>
                                </xs:annotation>

                                <xs:complexType>
                                  <xs:sequence>
                                    <xs:element minOccurs="0" maxOccurs="unbounded" name="arg">
                                      <xs:annotation>
                                        <xs:documentation>An individual script variable.</xs:documentation>
                                      </xs:annotation>

                                      <xs:complexType>
                                        <xs:sequence>
                                          <xs:element minOccurs="1" name="name" type="xs:string">
                                            <xs:annotation>
                                              <xs:documentation>The name of the variable to be declared in the script's context.</xs:documentation>
                                            </xs:annotation>

                                          </xs:element>

                                          <xs:element minOccurs="1" name="value" type="xs:string">
                                            <xs:annotation>
                                              <xs:documentation>The value of the declared varible.</xs:documentation>
                                            </xs:annotation>

                                          </xs:element>

                                        </xs:sequence>

                                      </xs:complexType>

                                    </xs:element>

                                  </xs:sequence>

                                </xs:complexType>

                              </xs:element>

                            </xs:sequence>

                          </xs:complexType>

                        </xs:element>

                        <xs:element minOccurs="0" maxOccurs="unbounded" name="post-script-ex">
                          <xs:annotation>
                            <xs:documentation>A clause that defines a script to be executed after the expression is evaluated.

This differs from the &quot;post-script&quot; tag in that this extended clause allows you to define and pass variables to the script before it is executed.

This allows you to have more generic scripts whose functionality is tailored by data contained in the character sheet.
</xs:documentation>
                          </xs:annotation>

                          <xs:complexType>
                            <xs:sequence>
                              <xs:element minOccurs="1" maxOccurs="1" name="script" type="xs:string">
                                <xs:annotation>
                                  <xs:documentation>The script file name to execute.</xs:documentation>
                                </xs:annotation>

                              </xs:element>

                              <xs:element minOccurs="0" maxOccurs="unbounded" name="args">
                                <xs:annotation>
                                  <xs:documentation>List of arguments to define for the script.</xs:documentation>
                                </xs:annotation>

                                <xs:complexType>
                                  <xs:sequence>
                                    <xs:element minOccurs="0" maxOccurs="unbounded" name="arg">
                                      <xs:annotation>
                                        <xs:documentation>An individual script variable.</xs:documentation>
                                      </xs:annotation>

                                      <xs:complexType>
                                        <xs:sequence>
                                          <xs:element minOccurs="1" name="name" type="xs:string">
                                            <xs:annotation>
                                              <xs:documentation>The name of the variable to be declared in the script's context.</xs:documentation>
                                            </xs:annotation>

                                          </xs:element>

                                          <xs:element minOccurs="1" name="value" type="xs:string">
                                            <xs:annotation>
                                              <xs:documentation>The value of the declared varible.</xs:documentation>
                                            </xs:annotation>

                                          </xs:element>

                                        </xs:sequence>

                                      </xs:complexType>

                                    </xs:element>

                                  </xs:sequence>

                                </xs:complexType>

                              </xs:element>

                            </xs:sequence>

                          </xs:complexType>

                        </xs:element>

                        <xs:element minOccurs="0" maxOccurs="unbounded" name="static-label-script-ex">
                          <xs:annotation>
                            <xs:documentation>A clause that defines a script to be executed to build an expression's label.

Unlike &quot;parse&quot; scripts, the script referenced by this tag must contain a &quot;getLabel()&quot; method that returns a String.  This string will be used, unaltered, in the program's interface to represent the expression.
</xs:documentation>
                          </xs:annotation>

                          <xs:complexType>
                            <xs:sequence>
                              <xs:element minOccurs="1" maxOccurs="1" name="script" type="xs:string">
                                <xs:annotation>
                                  <xs:documentation>The script file name to execute.</xs:documentation>
                                </xs:annotation>

                              </xs:element>

                              <xs:element minOccurs="0" maxOccurs="unbounded" name="args">
                                <xs:annotation>
                                  <xs:documentation>List of arguments to define for the script.</xs:documentation>
                                </xs:annotation>

                                <xs:complexType>
                                  <xs:sequence>
                                    <xs:element minOccurs="0" maxOccurs="unbounded" name="arg">
                                      <xs:annotation>
                                        <xs:documentation>An individual script variable.</xs:documentation>
                                      </xs:annotation>

                                      <xs:complexType>
                                        <xs:sequence>
                                          <xs:element minOccurs="1" name="name" type="xs:string">
                                            <xs:annotation>
                                              <xs:documentation>The name of the variable to be declared in the script's context.</xs:documentation>
                                            </xs:annotation>

                                          </xs:element>

                                          <xs:element minOccurs="1" name="value" type="xs:string">
                                            <xs:annotation>
                                              <xs:documentation>The value of the declared varible.</xs:documentation>
                                            </xs:annotation>

                                          </xs:element>

                                        </xs:sequence>

                                      </xs:complexType>

                                    </xs:element>

                                  </xs:sequence>

                                </xs:complexType>

                              </xs:element>

                            </xs:sequence>

                          </xs:complexType>

                        </xs:element>

                      </xs:choice>

                    </xs:sequence>

                  </xs:complexType>

                </xs:element>

                <xs:element minOccurs="0" maxOccurs="1" name="dot-field">
                  <xs:annotation>
                    <xs:documentation>A special interface component that renders as a series of &quot;dots&quot; that can be either selected or unselected.

This is intended for game systems that support this special way of tracking data.
</xs:documentation>
                  </xs:annotation>

                  <xs:complexType>
                    <xs:sequence>
                      <xs:element minOccurs="0" name="minimum" type="xs:integer">
                        <xs:annotation>
                          <xs:documentation>The minimum number of &quot;dots&quot; that can be selected.</xs:documentation>
                        </xs:annotation>

                      </xs:element>

                      <xs:element minOccurs="0" name="maximum" type="xs:integer">
                        <xs:annotation>
                          <xs:documentation>The maximum number of &quot;dots&quot; to render.</xs:documentation>
                        </xs:annotation>

                      </xs:element>

                    </xs:sequence>

                  </xs:complexType>

                </xs:element>

              </xs:choice>

            </xs:sequence>

          </xs:complexType>

        </xs:element>

      </xs:choice>

    </xs:sequence>

  </xs:complexType>

</xs:element>
Child Elements
Name Type Min Occurs Max Occurs
Derivation Tree
[No Sub Types]
multi-list
    [No Super Types]
Generated using Liquid XML Studio by Liquid Technologies Ltd