RainCode - XMLBooster

Element: ENUM

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

Attributes

Name Type Optional
NAME STRING No Defines the name of the enumeration, as it will be used by individual field to refer to the enumeration. This name never occurs in the XML file to parse. It is a symbolic name used internally by XMLBOOSTER.
PREFIX STRING Yes If specified, the character string specified by this attribute will be prepended to all values names to yield the corresponding name in the host language.
POSTFIX STRING Yes If specified, the character string specified by this attribute will be appended to all val-ues names to yield the corresponding name in the host language.

Content

Sequence of
META
Non-empty sequence of
ENUMVALUE

Appears in

SYSTEM

Example

<?xml version="1.0"?>
<!DOCTYPE SYSTEM SYSTEM "metaxmlb.dtd">
<SYSTEM NAME="Agenda">
        <COBOLCONFIG USECLASSPREFIX="TRUE"
                     NUMBERLINES="6"
                     DATAPREFIX="a"
                     MAXLEN="40"
                     ARRAYSIZE="40"/>
        <CCONFIG MAXLEN="100"
                 ARRAYSIZE="5"
                 FLATMODE="TRUE"/>
        <DELPHICONFIG COLLECTIONSTART="ONE">
    </DELPHICONFIG>
        <ASMCONFIG
            PASTEPRELUDE="xmlbmacros.Txt">
                <PRELUDE></PRELUDE>
                <POSTLUDE>          END</POSTLUDE>
        </ASMCONFIG>
        <JAVACONFIG PACKAGE="Agenda" COLLECTIONCLASS="ArrayList" COLLECTIONSTART="ZERO">
                <IMPORT>
      /////////////////////////////////////
      // Automatically inserted import list
      /////////////////////////////////////
      import java.util.*;
    </IMPORT>
        </JAVACONFIG>
        <YAFLCONFIG>
                <IMPORT></IMPORT>
        </YAFLCONFIG>
        <CPPCONFIG COLLECTIONCLASS="vector" STRINGCLASS="string">
        <INCLUDES>
      #include <vector.h>
      #include <stl_string.h>
        </INCLUDES>
        </CPPCONFIG>
        <ELEMENT NAME="AGENDA" MAIN="YES">
                <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" />
                        <FIELD NAME="Status" ENUMTYPE="ENTRYSTATUS"/>
                </FIELDS>
                <ATTRIBUTES>
                        <ATTR NAME="DAY" TARGET="Day" OPTIONAL="FALSE"/>
                        <ATTR NAME="MONTH" TARGET="Month" OPTIONAL="FALSE"/>
                        <ATTR NAME="YEAR" TARGET="Year" OPTIONAL="FALSE"/>
                        <ATTR NAME="WHO" TARGET="Who" OPTIONAL="FALSE"/>
                        <ATTR NAME="STATUS" TARGET="Status" OPTIONAL="TRUE"/>
                </ATTRIBUTES>
        </ELEMENT>
        <ENUM NAME="ENTRYSTATUS" PREFIX="" POSTFIX="">
                <ENUMVALUE NAME="Proposed"/>
                <ENUMVALUE NAME="Cancelled"/>
                <ENUMVALUE NAME="Confirmed"/>
    <ENUMVALUE NAME="Darius" />
    <ENUMVALUE NAME="Da" />
    <ENUMVALUE NAME="Double" />
    <ENUMVALUE NAME="D" />
        </ENUM>
</SYSTEM>

DTD declaration

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

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