Element: ENUM

Enumerations are data types that support a finite, well-defined set of possible value iden-tifiedby symbolic names. XML, as well as most programming languages support someform of definition of enumerations.

Attributes

Name Type Optional
NAME STRING No Defines the name of the enumeration, as itwill be used by individual field to refer tothe enumeration. This name never occursin the XML file to parse. It is a symbolicname used internally by XMLBOOSTER.
PREFIX STRING Yes If specified, the character string specifiedby this attribute will be prepended to allvalues names to yield the correspondingname in the host language.
POSTFIX STRING Yes If specified, the character string specifiedby this attribute will be appended to all val-uesnames to yield the corresponding namein the host language.

Content

Sequence of
META
Non-empty sequence of
ENUMVALUE

Appears in

SYSTEM

Example

<SYSTEM NAME="Agenda">
  <CCONFIG MAXLEN="100"
           ARRAYSIZE="5"
           FLATMODE="TRUE"/>
  <COBOLCONFIG NUMBERLINES="6"
               USECLASSPREFIX="TRUE"
               MAXLEN="40"
               ARRAYSIZE="40"
               DATAPREFIX=""
               LABELPREFIX="XMLB-"/>
  <DELPHICONFIG COLLECTIONSTART="ONE"/>
  <JAVACONFIG PACKAGE="com.raincode.xmlbooster.agenda"
              COLLECTIONCLASS="ArrayList"
              COLLECTIONSTART="ZERO">
    <IMPORT>
/////////////////////////////////////
// Automatically inserted import list
/////////////////////////////////////
import java.util.*;
    </IMPORT>
  </JAVACONFIG>
  <CPPCONFIG STRINGCLASS="std::string"
             COLLECTIONCLASS="std::vector">
    <INCLUDES>
#include <vector.h>
#include <stl_string.h>
</INCLUDES>
  </CPPCONFIG>
  <ELEMENT NAME="AGENDA"
           MAIN="TRUE">
    <FIELDS>
      <FIELD NAME="Entries"
             REFTYPE="ENTRY"
             MODE="LIST"/>
    </FIELDS>
    <FORMULA>
      <REPEAT TARGET="ENTRIES"
              ATLEASTONE="TRUE">
        <ELEMENTREF NAME="ENTRY"/>
      </REPEAT>
    </FORMULA>
  </ELEMENT>
  <ELEMENT NAME="ENTRY">
    <FIELDS>
      <FIELD NAME="Day"
             TYPE="INTEGER"/>
      <FIELD NAME="Month"
             TYPE="INTEGER"/>
      <FIELD NAME="Year"
             TYPE="INTEGER"/>
      <FIELD NAME="Who"
             TYPE="PCHAR">
        <META NAME="JUST"/>
      </FIELD>
      <FIELD NAME="Status"
             ENUMTYPE="ENTRYSTATUS"/>
    </FIELDS>
    <ATTRIBUTES>
      <ATTR NAME="DAY"
            TARGET="Day"/>
      <ATTR NAME="MONTH"
            TARGET="Month"/>
      <ATTR NAME="YEAR"
            TARGET="Year"/>
      <ATTR NAME="WHO"
            TARGET="Who"/>
      <ATTR NAME="STATUS"
            TARGET="Status"
            OPTIONAL="TRUE"/>
    </ATTRIBUTES>
  </ELEMENT>
  <ENUM NAME="ENTRYSTATUS"
        PREFIX=""
        POSTFIX="">
    <ENUMVALUE NAME="Proposed"/>
    <ENUMVALUE NAME="Cancelled"/>
    <ENUMVALUE NAME="Confirmed"/>
  </ENUM>
</SYSTEM>

DTD declaration

<!ELEMENT ENUM
((META)*, (ENUMVALUE)+)
>

<!ATTLIST ENUM
NAME CDATA #REQUIRED
PREFIX CDATA #IMPLIED
POSTFIX CDATA #IMPLIED
>