org.apache.uima.cas.impl

## Class XmiCasDeserializer

- java.lang.Object
- - org.apache.uima.cas.impl.XmiCasDeserializer

-     public class XmiCasDeserializer
      extends Object

  XMI CAS deserializer. Used to read in a CAS from XML Metadata Interchange (XMI) format.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `class` | `XmiCasDeserializer.XmiCasDeserializerHandler`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `XmiCasDeserializer(TypeSystem ts)`
    `XmiCasDeserializer(TypeSystem ts, UimaContext uimaContext)` Create a new deserializer from a type system.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `deserialize(InputStream aStream, CAS aCAS)` Deserializes a CAS from XMI.
    `static void` | `deserialize(InputStream aStream, CAS aCAS, boolean aLenient)` Deserializes a CAS from XMI.
    `static void` | `deserialize(InputStream aStream, CAS aCAS, boolean aLenient, XmiSerializationSharedData aSharedData)` Deserializes a CAS from XMI.
    `static void` | `deserialize(InputStream aStream, CAS aCAS, boolean aLenient, XmiSerializationSharedData aSharedData, int aMergePoint)` Deserializes a CAS from XMI.
    `static void` | `deserialize(InputStream aStream, CAS aCAS, boolean aLenient, XmiSerializationSharedData aSharedData, int aMergePoint, AllowPreexistingFS allowPreexistingFS)` Deserializes a CAS from XMI.
    `DefaultHandler` | `getXmiCasHandler(CAS cas)` Create a default handler for deserializing a CAS from XMI.
    `DefaultHandler` | `getXmiCasHandler(CAS cas, boolean lenient)` Create a default handler for deserializing a CAS from XMI.
    `DefaultHandler` | `getXmiCasHandler(CAS cas, boolean lenient, XmiSerializationSharedData sharedData)` Create a default handler for deserializing a CAS from XMI.
    `DefaultHandler` | `getXmiCasHandler(CAS cas, boolean lenient, XmiSerializationSharedData sharedData, int mergePoint)` Create a default handler for deserializing a CAS from XMI.
    `DefaultHandler` | `getXmiCasHandler(CAS cas, boolean lenient, XmiSerializationSharedData sharedData, int mergePoint, AllowPreexistingFS allow)` Create a default handler for deserializing a CAS from XMI.

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

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

- - ### Constructor Detail

    - #### XmiCasDeserializer

          public XmiCasDeserializer(TypeSystem ts,
                                    UimaContext uimaContext)

      Create a new deserializer from a type system.

      Note: all CAS arguments later supplied to `getXCASHandler()` must have this type system as their type system.

      Parameters:
        `ts` - The type system of the CASes to be deserialized.
        `uimaContext` - the UIMA Context to use for the deserialization

    - #### XmiCasDeserializer

          public XmiCasDeserializer(TypeSystem ts)

  - ### Method Detail

    - #### getXmiCasHandler

          public DefaultHandler getXmiCasHandler(CAS cas)

      Create a default handler for deserializing a CAS from XMI.
      Parameters:
        `cas` - This CAS will be used to hold the data deserialized from the XMI
      Returns:
        The `DefaultHandler` to pass to the SAX parser.

    - #### getXmiCasHandler

          public DefaultHandler getXmiCasHandler(CAS cas,
                                                 boolean lenient)

      Create a default handler for deserializing a CAS from XMI. By default this is not lenient, meaning that if the XMI references Types that are not in the Type System, an Exception will be thrown. Use `getXmiCasHandler(CAS,boolean)` to turn on lenient mode and ignore any unknown types.
      Parameters:
        `cas` - This CAS will be used to hold the data deserialized from the XMI
        `lenient` - if true, unknown Types will be ignored. If false, unknown Types will cause an exception. The default is false.
      Returns:
        The `DefaultHandler` to pass to the SAX parser.

    - #### getXmiCasHandler

          public DefaultHandler getXmiCasHandler(CAS cas,
                                                 boolean lenient,
                                                 XmiSerializationSharedData sharedData)

      Create a default handler for deserializing a CAS from XMI.
      Parameters:
        `cas` - This CAS will be used to hold the data deserialized from the XMI
        `lenient` - if true, unknown Types will be ignored. If false, unknown Types will cause an exception. The default is false.
        `sharedData` - data structure used to allow the XmiCasSerializer and XmiCasDeserializer to share information.
      Returns:
        The `DefaultHandler` to pass to the SAX parser.

    - #### getXmiCasHandler

          public DefaultHandler getXmiCasHandler(CAS cas,
                                                 boolean lenient,
                                                 XmiSerializationSharedData sharedData,
                                                 int mergePoint)

      Create a default handler for deserializing a CAS from XMI.
      Parameters:
        `cas` - This CAS will be used to hold the data deserialized from the XMI
        `lenient` - if true, unknown Types will be ignored. If false, unknown Types will cause an exception. The default is false.
        `sharedData` - data structure used to allow the XmiCasSerializer and XmiCasDeserializer to share information.
        `mergePoint` - (represented as an xmiId, not an fsAddr) used to support merging multiple XMI CASes. If the mergePoint is negative, "normal" deserialization will be done, meaning the target CAS will be reset and the entire XMI content will be deserialized. If the mergePoint is nonnegative (including 0), the target CAS will not be reset, and only Feature Structures whose xmi:id is strictly greater than the mergePoint value will be deserialized.
      Returns:
        The `DefaultHandler` to pass to the SAX parser.

    - #### getXmiCasHandler

          public DefaultHandler getXmiCasHandler(CAS cas,
                                                 boolean lenient,
                                                 XmiSerializationSharedData sharedData,
                                                 int mergePoint,
                                                 AllowPreexistingFS allow)

      Create a default handler for deserializing a CAS from XMI. By default this is not lenient, meaning that if the XMI references Types that are not in the Type System, an Exception will be thrown. Use `getXmiCasHandler(CAS,boolean)` to turn on lenient mode and ignore any unknown types.
      Parameters:
        `cas` - This CAS will be used to hold the data deserialized from the XMI
        `lenient` - if true, unknown Types will be ignored. If false, unknown Types will cause an exception. The default is false.
        `sharedData` - data structure used to allow the XmiCasSerializer and XmiCasDeserializer to share information.
        `mergePoint` - used to support merging multiple XMI CASes. If the mergePoint is negative, "normal" deserialization will be done, meaning the target CAS will be reset and the entire XMI content will be deserialized. If the mergePoint is nonnegative (including 0), the target CAS will not be reset, and only Feature Structures whose xmi:id is strictly greater than the mergePoint value will be deserialized.
        `allow` - indicates what action to do if a pre-existing FS is found
      Returns:
        The `DefaultHandler` to pass to the SAX parser.

    - #### deserialize

          public static void deserialize(InputStream aStream,
                                         CAS aCAS)
                                  throws SAXException,
                                         IOException

      Deserializes a CAS from XMI.
      Parameters:
        `aStream` - input stream from which to read the XMI document
        `aCAS` - CAS into which to deserialize. This CAS must be set up with a type system that is compatible with that in the XMI
      Throws:
        `SAXException` - if an XML Parsing error occurs
        `IOException` - if an I/O failure occurs

    - #### deserialize

          public static void deserialize(InputStream aStream,
                                         CAS aCAS,
                                         boolean aLenient)
                                  throws SAXException,
                                         IOException

      Deserializes a CAS from XMI.
      Parameters:
        `aStream` - input stream from which to read the XMI document
        `aCAS` - CAS into which to deserialize. This CAS must be set up with a type system that is compatible with that in the XMI
        `aLenient` - if true, unknown Types will be ignored. If false, unknown Types will cause an exception. The default is false.
      Throws:
        `SAXException` - if an XML Parsing error occurs
        `IOException` - if an I/O failure occurs

    - #### deserialize

          public static void deserialize(InputStream aStream,
                                         CAS aCAS,
                                         boolean aLenient,
                                         XmiSerializationSharedData aSharedData)
                                  throws SAXException,
                                         IOException

      Deserializes a CAS from XMI.
      Parameters:
        `aStream` - input stream from which to read the XMI document
        `aCAS` - CAS into which to deserialize. This CAS must be set up with a type system that is compatible with that in the XMI
        `aLenient` - if true, unknown Types will be ignored. If false, unknown Types will cause an exception. The default is false.
        `aSharedData` - an optional container for data that is shared between the `XmiCasSerializer` and the `XmiCasDeserializer`. See the JavaDocs for `XmiSerializationSharedData` for details.
      Throws:
        `SAXException` - if an XML Parsing error occurs
        `IOException` - if an I/O failure occurs

    - #### deserialize

          public static void deserialize(InputStream aStream,
                                         CAS aCAS,
                                         boolean aLenient,
                                         XmiSerializationSharedData aSharedData,
                                         int aMergePoint)
                                  throws SAXException,
                                         IOException

      Deserializes a CAS from XMI. This version of this method supports merging multiple XMI documents into a single CAS.
      Parameters:
        `aStream` - input stream from which to read the XMI document
        `aCAS` - CAS into which to deserialize. This CAS must be set up with a type system that is compatible with that in the XMI
        `aLenient` - if true, unknown Types will be ignored. If false, unknown Types will cause an exception. The default is false.
        `aSharedData` - a container for data that is shared between the `XmiCasSerializer` and the `XmiCasDeserializer`. See the JavaDocs for `XmiSerializationSharedData` for details.
        `aMergePoint` - used to support merging multiple XMI CASes. If the mergePoint is negative, "normal" deserialization will be done, meaning the target CAS will be reset and the entire XMI content will be deserialized. If the mergePoint is nonnegative (including 0), the target CAS will not be reset, and only Feature Structures whose xmi:id is strictly greater than the mergePoint value will be deserialized.
      Throws:
        `SAXException` - if an XML Parsing error occurs
        `IOException` - if an I/O failure occurs

    - #### deserialize

          public static void deserialize(InputStream aStream,
                                         CAS aCAS,
                                         boolean aLenient,
                                         XmiSerializationSharedData aSharedData,
                                         int aMergePoint,
                                         AllowPreexistingFS allowPreexistingFS)
                                  throws SAXException,
                                         IOException

      Deserializes a CAS from XMI. This version of this method supports deserializing XMI document containing only deltas. The Delta CAS XMI is in the same form as a complete CAS XMI but only consists of new and modified FSs and updates to Views. This API is for reducing the overhead associated with serialization when calling a remote service. The service can send back only the deltas which are deserialized into the original outgoing CAS.
      Parameters:
        `aStream` - input stream from which to read the XMI document
        `aCAS` - CAS into which to deserialize. This CAS must be set up with a type system that is compatible with that in the XMI
        `aLenient` - if true, unknown Types will be ignored. If false, unknown Types will cause an exception. The default is false.
        `aSharedData` - a container for data that is shared between the `XmiCasSerializer` and the `XmiCasDeserializer`. See the JavaDocs for `XmiSerializationSharedData` for details.
        `aMergePoint` - used to support merging multiple XMI CASes. If the mergePoint is negative, "normal" deserialization will be done, meaning the target CAS will be reset and the entire XMI content will be deserialized. If the mergePoint is nonnegative (including 0), the target CAS will not be reset, and only Feature Structures whose xmi:id is strictly greater than the mergePoint value will be deserialized.
        `allowPreexistingFS` - used when deserializing delta CAS whether to allow, disallow or ignore elements representign preexisting FSs or preexisting FSs updates in View element. if IGNORE, FSs below the mergePoint are ignored and only new FSs are processed. if ALLOW, FSs below the mergePoint are processed as well as new FSs. if DISALLOW FSs below mergePoint will cause serialization to fail. FSs below the mergePoint referenced in View element will be flagged as an error condition and will not modifiy the CAS being filled and an exception reporting this will be thrown at the end of deserialization.
      Throws:
        `SAXException` - if an XML Parsing error occurs
        `IOException` - if an I/O failure occurs NOTES: It is expected that Delta CAS serialization will serialize modified preexisting FSs first so that disallowed preexisting FSs are detected at the start and the CAS being filled is left untouched. If disallowed prexisting FS is encountered in the View element, the FS is ignored and the deserialization completes but throws an exception at the end. Possible performance issue with StringListFS. When processing String, StringArrayFS and StringListFS features of a preexisting FS, the string value in the CAS is updated only if it is not equal to the incoming string value. Processing of a StringListFS where a new string value has been inserted, all subsequent strings in the list will be updated with new strings.

Copyright © 2006–2022 The Apache Software Foundation. All rights reserved.