weka.experiment.xml

## Class XMLExperiment

- java.lang.Object
- - weka.core.xml.XMLSerialization
  - - weka.core.xml.XMLBasicSerialization
    - - weka.experiment.xml.XMLExperiment

- All Implemented Interfaces:
    RevisionHandler

      public class XMLExperiment
      extends XMLBasicSerialization

  This class serializes and deserializes an Experiment instance to and fro XML.
  It omits the `options` from the Experiment, since these are handled by the get/set-methods. For the `Classifier` class with all its derivative classes it stores only `debug` and `options`. For `SplitEvaluator` and `ResultProducer` only the options are retrieved. The `PropertyNode` is done manually since it has no get/set-methods for its public fields.
  Since there's no read-method for `m_ClassFirst` we always save it as `false`.
  Version:
    $Revision: 10204 $
  Author:
    FracPete (fracpete at waikato dot ac dot nz)
  See Also:
    `Experiment.m_ClassFirst`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `NAME_CLASSFIRST` the name of the classFirst property
    `static java.lang.String` | `NAME_PROPERTYNODE_PARENTCLASS` PropertyNode member
    `static java.lang.String` | `NAME_PROPERTYNODE_PROPERTY` PropertyNode member
    `static java.lang.String` | `NAME_PROPERTYNODE_VALUE` PropertyNode member

    - ### Fields inherited from class weka.core.xml.XMLBasicSerialization

      `VAL_CELLS, VAL_KEY, VAL_MAPPING, VAL_VALUE`

    - ### Fields inherited from class weka.core.xml.XMLSerialization

      `ATT_ARRAY, ATT_ARRAY_DEFAULT, ATT_CLASS, ATT_NAME, ATT_NULL, ATT_NULL_DEFAULT, ATT_PRIMITIVE, ATT_PRIMITIVE_DEFAULT, ATT_VERSION, DOCTYPE, ROOT_NODE, SUPPRESS_PROPERTY_WARNINGS, TAG_OBJECT, VAL_NO, VAL_ROOT, VAL_YES`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `XMLExperiment()` initializes the serialization

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `clear()` generates internally a new XML document and clears also the IgnoreList and the mappings for the Read/Write-Methods
    `java.lang.String` | `getRevision()` Returns the revision string.
    `static void` | `main(java.lang.String[] args)` for testing only.
    `java.lang.Object` | `readPropertyNode(org.w3c.dom.Element node)` builds the PropertyNode from the given DOM node.
    `org.w3c.dom.Element` | `writePropertyNode(org.w3c.dom.Element parent, java.lang.Object o, java.lang.String name)` adds the given PropertyNode to a DOM structure.

    - ### Methods inherited from class weka.core.xml.XMLBasicSerialization

      `readCollection, readCostMatrixOld, readDefaultListModel, readMap, readMatrix, readMatrixOld, writeCollection, writeCostMatrixOld, writeDefaultListModel, writeMap, writeMatrix, writeMatrixOld`

    - ### Methods inherited from class weka.core.xml.XMLSerialization

      `fromXML, getVersion, read, read, read, read, readBooleanFromXML, readByteFromXML, readCharFromXML, readDoubleFromXML, readFloatFromXML, readFromXML, readFromXML, readIntFromXML, readLongFromXML, readShortFromXML, toXML, write, write, write, write, writeToXML`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### NAME_CLASSFIRST

          public static final java.lang.String NAME_CLASSFIRST

      the name of the classFirst property
      See Also:
        Constant Field Values

    - #### NAME_PROPERTYNODE_VALUE

          public static final java.lang.String NAME_PROPERTYNODE_VALUE

      PropertyNode member
      See Also:
        Constant Field Values

    - #### NAME_PROPERTYNODE_PARENTCLASS

          public static final java.lang.String NAME_PROPERTYNODE_PARENTCLASS

      PropertyNode member
      See Also:
        Constant Field Values

    - #### NAME_PROPERTYNODE_PROPERTY

          public static final java.lang.String NAME_PROPERTYNODE_PROPERTY

      PropertyNode member
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### XMLExperiment

          public XMLExperiment()
                        throws java.lang.Exception

      initializes the serialization
      Throws:
        `java.lang.Exception` - if initialization fails

  - ### Method Detail

    - #### clear

          public void clear()
                     throws java.lang.Exception

      generates internally a new XML document and clears also the IgnoreList and the mappings for the Read/Write-Methods
      Overrides:
        `clear` in class `XMLBasicSerialization`
      Throws:
        `java.lang.Exception` - if initializing fails

    - #### writePropertyNode

          public org.w3c.dom.Element writePropertyNode(org.w3c.dom.Element parent,
                                              java.lang.Object o,
                                              java.lang.String name)
                                                throws java.lang.Exception

      adds the given PropertyNode to a DOM structure.
      Parameters:
        `parent` - the parent of this object, e.g. the class this object is a member of
        `o` - the Object to describe in XML
        `name` - the name of the object
      Returns:
        the node that was created
      Throws:
        `java.lang.Exception` - if the DOM creation fails

    - #### readPropertyNode

          public java.lang.Object readPropertyNode(org.w3c.dom.Element node)
                                            throws java.lang.Exception

      builds the PropertyNode from the given DOM node.
      Parameters:
        `node` - the associated XML node
      Returns:
        the instance created from the XML description
      Throws:
        `java.lang.Exception` - if instantiation fails
      See Also:
        `DefaultListModel`

    - #### getRevision

          public java.lang.String getRevision()

      Returns the revision string.
      Specified by:
        `getRevision` in interface `RevisionHandler`
      Overrides:
        `getRevision` in class `XMLBasicSerialization`
      Returns:
        the revision

    - #### main

          public static void main(java.lang.String[] args)
                           throws java.lang.Exception

      for testing only. if the first argument is a filename with ".xml" as extension it tries to generate an instance from the XML description and does a `toString()` of the generated object. Otherwise it loads the binary file, saves the XML representation in a file with the original filename appended by ".xml" and once again in a binary file with the original filename appended by ".exp".
      Parameters:
        `args` - the commandline arguments
      Throws:
        `java.lang.Exception` - if something goes wrong, e.g., file not found