Package com.creditcall.chipdnamobile

# Class ChipDnaMobileSerializer

java.lang.Object
com.creditcall.chipdnamobile.ChipDnaMobileSerializer

public class ChipDnaMobileSerializer extends Object
Utility class for serializing and deserializing ChipDNA Mobile data objects to/from XML format.

This class provides static methods for converting ChipDNA Mobile data structures to XML strings and converting XML strings back into various ChipDNA Mobile data structures (such as receipt data, card hashes, device status, etc.).

All public methods in this class are static and thread-safe for XML serialization and deserialization operations.

Since:
  16/07/2017
Author:
  Creditcall

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `ApiKeyTag`
  `static final String`
  `ApplicationNameAttribute`
  `static final String`
  `ApplicationNameTag`
  `static final String`
  `ApplicationPriorityAttribute`
  `static final String`
  `ApplicationTag`
  `static final String`
  `AvailabilityStateTag`
  `static final String`
  `AvailableApplicationsTag`
  `static final String`
  `AvailableCurrenciesTag`
  `static final String`
  `CardHashesTag`
  `static final String`
  `CardHashScopeAttribute`
  `static final String`
  `CardHashSourceAttribute`
  `static final String`
  `CardHashTag`
  `static final String`
  `CardSchemesTag`
  `static final String`
  `CardSchemeTag`
  `static final String`
  `CardTokenAlgorithmAttribute`
  `static final String`
  `CardTokenKeyAttribute`
  `static final String`
  `CardTokensTag`
  `static final String`
  `CardTokenTag`
  `static final String`
  `CategoryCodeAttribute`
  `static final String`
  `CharCodeAttribute`
  `static final String`
  `CurrenciesTag`
  `static final String`
  `CurrencyTag`
  `static final String`
  `DateTimeFormatTag`
  `static final String`
  `DaysUntilConfigUpdateRequiredTag`
  `static final String`
  `DaysUntilFirmwareUpdateRequiredTag`
  `static final String`
  `DeviceStatusAvailabilityErrorTag`
  `static final String`
  `DeviceStatusBatteryChargePercentageTag`
  `static final String`
  `DeviceStatusBatteryChargingStatusTag`
  `static final String`
  `DeviceStatusBatteryChargingStatusUpdateDateTimeFormatTag`
  `static final String`
  `DeviceStatusBatteryChargingStatusUpdateDateTimeTag`
  `static final String`
  `DeviceStatusErrorInformationTag`
  `static final String`
  `DeviceStatusFirmwareNameTag`
  `static final String`
  `DeviceStatusFirmwareVersionTag`
  `static final String`
  `DeviceStatusKernelsHashTag`
  `static final String`
  `DeviceStatusMakeTag`
  `static final String`
  `DeviceStatusModelTag`
  `static final String`
  `DeviceStatusNameTag`
  `static final String`
  `DeviceStatusOperatingSystemVersionTag`
  `static final String`
  `DeviceStatusRawBatteryChargePercentageTag`
  `static final String`
  `DeviceStatusRevisionTag`
  `static final String`
  `DeviceStatusRootTag`
  `static final String`
  `DeviceStatusSerialNumTag`
  `static final String`
  `DeviceStatusTag`
  `static final String`
  `EnabledAttribute`
  `static final String`
  `ErrorsTag`
  `static final String`
  `ErrorTag`
  `static final String`
  `ExponentAttribute`
  `static final String`
  `FailedOfflineRequestsTag`
  `static final String`
  `FailedRequestTag`
  `static final String`
  `FailedRequestTotalsByRequestTypeTag`
  `static final String`
  `FailedRequestVolumesByRequestType`
  `static final String`
  `FeatureTokensTag`
  `static final String`
  `FeatureTokenTag`
  `static final String`
  `FileNameAttribute`
  `static final String`
  `FilesRequiringUpdateTag`
  `static final String`
  `FileTag`
  `static final String`
  `FirmwareUpdateStatusTag`
  `static final String`
  `HashMapItemTag`
  `static final String`
  `HashMapKeyTag`
  `static final String`
  `HashMapValueTag`
  `static final String`
  `IdAttribute`
  `static final String`
  `LastConfigUpdateDateTimeTag`
  `static final String`
  `LocalDateTimeFormatTag`
  `static final String`
  `LocalDateTimeTag`
  `static final String`
  `MerchantDataTag`
  `static final String`
  `MerchantNameTag`
  `static final String`
  `MerchantTag`
  `static final String`
  `NumericCodeAttribute`
  `static final String`
  `OldestPendingRequestDateTimeTag`
  `static final String`
  `PaymentMethodAttribute`
  `static final String`
  `PaymentPlatformStatusCheckDateTimeFormatTag`
  `static final String`
  `PaymentPlatformStatusCheckDateTimeTag`
  `static final String`
  `PaymentPlatformStatusTag`
  `static final String`
  `PendingRequestsStorageLimitTag`
  `static final String`
  `PendingRequestTotalsByRequestTypeTag`
  `static final String`
  `PendingRequestValueLimitTag`
  `static final String`
  `PendingRequestVolumesByRequestTypeTag`
  `static final String`
  `PinPadConnectionTypeAttribute`
  `static final String`
  `PinPadsTag`
  `static final String`
  `PinPadTag`
  `static final String`
  `ReceiptDataTag`
  `static final String`
  `ReceiptInclusionTag`
  `static final String`
  `ReceiptItemIdTag`
  `static final String`
  `ReceiptItemTag`
  `static final String`
  `ReceiptLabelTag`
  `static final String`
  `ReceiptPriorityAttribute`
  `static final String`
  `ReceiptValueTag`
  `static final String`
  `ReleaseNameTag`
  `static final String`
  `RequestQueueStatusTag`
  `static final String`
  `RequiredConfigUpdateDateTimeTag`
  `static final String`
  `RequiredFirmwareUpdateDateTimeTag`
  `static final String`
  `SymbolAttribute`
  `static final String`
  `TerminalIdTag`
  `static final String`
  `TerminalStatusTag`
  `static final String`
  `TmsStatusTag`
  `static final String`
  `TotalFailedValueStoredTag`
  `static final String`
  `TotalNumberOfFailedRequestsTag`
  `static final String`
  `TotalNumberOfPendingRequestsTag`
  `static final String`
  `TotalPendingValueStoredTag`
  `static final String`
  `TransactionKeyTag`
  `static final String`
  `TransactionTypesTag`
  `static final String`
  `TransactionTypeTag`
  `static final String`
  `VersionInformationTag`
  `static final String`
  `VersionTag`
  `static final String`
  `WebMisPasswordTag`
  `static final String`
  `WebMisUsernameTag`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ChipDnaMobileSerializer()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static ArrayList<Application>`
  `deserializeAvailableApplications(String availableApplicationsXml)`
  Deserializes XML string containing available applications into an ArrayList of Application objects.
  `static HashMap<PaymentMethod,ArrayList<Currency>>`
  `deserializeAvailableCurrencies(String availableCurrenciesXml)`
  Deserializes XML string containing available currencies into a HashMap mapping payment methods to currency lists.
  `static HashMap<String,ArrayList<String>>`
  `deserializeAvailablePinPads(String availablePinPadsXml)`
  Deserializes XML string containing available pin pads into a HashMap mapping connection types to pin pad names.
  `static List<CardHash>`
  `deserializeCardHashes(String cardHashXml)`
  Deserializes XML string containing card hashes into a List of CardHash objects.
  `static List<CardToken>`
  `deserializeCardTokens(String cardTokenXml)`
  Deserializes XML string containing card tokens into a List of CardToken objects.
  `static DeviceStatus`
  `deserializeDeviceStatus(String deviceStatusXml)`
  Deserializes XML string containing device status information into a DeviceStatus object.
  `static FirmwareUpdateStatus`
  `deserializeFirmwareUpdateStatus(String firmwareUpdateStatusXml)`
  Deserializes XML string containing firmware update status into a FirmwareUpdateStatus object.
  `static MerchantData`
  `deserializeMerchantData(String merchantDataXml)`
  Deserializes XML string containing merchant data into a MerchantData object.
  `static PaymentPlatformStatus`
  `deserializePaymentPlatformStatus(String paymentPlatformStatusXml)`
  Deserializes XML string containing payment platform status into a PaymentPlatformStatus object.
  `static Map<String,ReceiptField>`
  `deserializeReceiptData(String receiptDataXml)`
  Deserializes XML string containing receipt data into a Map of ReceiptField objects.
  `static RequestQueueStatus`
  `deserializeRequestQueueStatus(String requestQueueStatusXml)`
  Deserializes XML string containing request queue status into a RequestQueueStatus object.
  `static TerminalStatus`
  `deserializeTerminalStatus(String terminalStatusXml)`
  Deserializes XML string containing terminal status information into a TerminalStatus object.
  `static TmsStatus`
  `deserializeTmsStatus(String tmsStatusXml)`
  Deserializes XML string containing TMS status information into a TmsStatus object.
  `static VersionInformation`
  `deserializeVersionInformation(String versionInformationXml)`
  Deserializes XML string containing version information into a VersionInformation object.
  `static String`
  `serializeFeatureTokens(List<FeatureToken> featureTokens)`
  Serializes a List of FeatureToken objects into XML string format.

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

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

- ## Field Details

  - ### ReceiptDataTag

    public static final String ReceiptDataTag
    See Also:
      - Constant Field Values

  - ### ReceiptItemIdTag

    public static final String ReceiptItemIdTag
    See Also:
      - Constant Field Values

  - ### ReceiptItemTag

    public static final String ReceiptItemTag
    See Also:
      - Constant Field Values

  - ### ReceiptLabelTag

    public static final String ReceiptLabelTag
    See Also:
      - Constant Field Values

  - ### ReceiptValueTag

    public static final String ReceiptValueTag
    See Also:
      - Constant Field Values

  - ### ReceiptInclusionTag

    public static final String ReceiptInclusionTag
    See Also:
      - Constant Field Values

  - ### ReceiptPriorityAttribute

    public static final String ReceiptPriorityAttribute
    See Also:
      - Constant Field Values

  - ### CardHashesTag

    public static final String CardHashesTag
    See Also:
      - Constant Field Values

  - ### CardHashTag

    public static final String CardHashTag
    See Also:
      - Constant Field Values

  - ### CardHashScopeAttribute

    public static final String CardHashScopeAttribute
    See Also:
      - Constant Field Values

  - ### CardHashSourceAttribute

    public static final String CardHashSourceAttribute
    See Also:
      - Constant Field Values

  - ### CardTokensTag

    public static final String CardTokensTag
    See Also:
      - Constant Field Values

  - ### CardTokenTag

    public static final String CardTokenTag
    See Also:
      - Constant Field Values

  - ### CardTokenAlgorithmAttribute

    public static final String CardTokenAlgorithmAttribute
    See Also:
      - Constant Field Values

  - ### CardTokenKeyAttribute

    public static final String CardTokenKeyAttribute
    See Also:
      - Constant Field Values

  - ### FeatureTokensTag

    public static final String FeatureTokensTag
    See Also:
      - Constant Field Values

  - ### FeatureTokenTag

    public static final String FeatureTokenTag
    See Also:
      - Constant Field Values

  - ### VersionInformationTag

    public static final String VersionInformationTag
    See Also:
      - Constant Field Values

  - ### VersionTag

    public static final String VersionTag
    See Also:
      - Constant Field Values

  - ### ReleaseNameTag

    public static final String ReleaseNameTag
    See Also:
      - Constant Field Values

  - ### ApplicationNameTag

    public static final String ApplicationNameTag
    See Also:
      - Constant Field Values

  - ### HashMapItemTag

    public static final String HashMapItemTag
    See Also:
      - Constant Field Values

  - ### HashMapKeyTag

    public static final String HashMapKeyTag
    See Also:
      - Constant Field Values

  - ### HashMapValueTag

    public static final String HashMapValueTag
    See Also:
      - Constant Field Values

  - ### DeviceStatusRootTag

    public static final String DeviceStatusRootTag
    See Also:
      - Constant Field Values

  - ### DeviceStatusNameTag

    public static final String DeviceStatusNameTag
    See Also:
      - Constant Field Values

  - ### DeviceStatusTag

    public static final String DeviceStatusTag
    See Also:
      - Constant Field Values

  - ### DeviceStatusMakeTag

    public static final String DeviceStatusMakeTag
    See Also:
      - Constant Field Values

  - ### DeviceStatusModelTag

    public static final String DeviceStatusModelTag
    See Also:
      - Constant Field Values

  - ### DeviceStatusFirmwareNameTag

    public static final String DeviceStatusFirmwareNameTag
    See Also:
      - Constant Field Values

  - ### DeviceStatusFirmwareVersionTag

    public static final String DeviceStatusFirmwareVersionTag
    See Also:
      - Constant Field Values

  - ### DeviceStatusOperatingSystemVersionTag

    public static final String DeviceStatusOperatingSystemVersionTag
    See Also:
      - Constant Field Values

  - ### DeviceStatusKernelsHashTag

    public static final String DeviceStatusKernelsHashTag
    See Also:
      - Constant Field Values

  - ### DeviceStatusRevisionTag

    public static final String DeviceStatusRevisionTag
    See Also:
      - Constant Field Values

  - ### DeviceStatusRawBatteryChargePercentageTag

    public static final String DeviceStatusRawBatteryChargePercentageTag
    See Also:
      - Constant Field Values

  - ### DeviceStatusBatteryChargePercentageTag

    public static final String DeviceStatusBatteryChargePercentageTag
    See Also:
      - Constant Field Values

  - ### DeviceStatusBatteryChargingStatusTag

    public static final String DeviceStatusBatteryChargingStatusTag
    See Also:
      - Constant Field Values

  - ### DeviceStatusBatteryChargingStatusUpdateDateTimeTag

    public static final String DeviceStatusBatteryChargingStatusUpdateDateTimeTag
    See Also:
      - Constant Field Values

  - ### DeviceStatusBatteryChargingStatusUpdateDateTimeFormatTag

    public static final String DeviceStatusBatteryChargingStatusUpdateDateTimeFormatTag
    See Also:
      - Constant Field Values

  - ### DeviceStatusSerialNumTag

    public static final String DeviceStatusSerialNumTag
    See Also:
      - Constant Field Values

  - ### DeviceStatusAvailabilityErrorTag

    public static final String DeviceStatusAvailabilityErrorTag
    See Also:
      - Constant Field Values

  - ### DeviceStatusErrorInformationTag

    public static final String DeviceStatusErrorInformationTag
    See Also:
      - Constant Field Values

  - ### DateTimeFormatTag

    public static final String DateTimeFormatTag
    See Also:
      - Constant Field Values

  - ### RequestQueueStatusTag

    public static final String RequestQueueStatusTag
    See Also:
      - Constant Field Values

  - ### TotalNumberOfPendingRequestsTag

    public static final String TotalNumberOfPendingRequestsTag
    See Also:
      - Constant Field Values

  - ### TotalNumberOfFailedRequestsTag

    public static final String TotalNumberOfFailedRequestsTag
    See Also:
      - Constant Field Values

  - ### PendingRequestsStorageLimitTag

    public static final String PendingRequestsStorageLimitTag
    See Also:
      - Constant Field Values

  - ### TotalPendingValueStoredTag

    public static final String TotalPendingValueStoredTag
    See Also:
      - Constant Field Values

  - ### TotalFailedValueStoredTag

    public static final String TotalFailedValueStoredTag
    See Also:
      - Constant Field Values

  - ### PendingRequestValueLimitTag

    public static final String PendingRequestValueLimitTag
    See Also:
      - Constant Field Values

  - ### OldestPendingRequestDateTimeTag

    public static final String OldestPendingRequestDateTimeTag
    See Also:
      - Constant Field Values

  - ### PendingRequestTotalsByRequestTypeTag

    public static final String PendingRequestTotalsByRequestTypeTag
    See Also:
      - Constant Field Values

  - ### FailedRequestTotalsByRequestTypeTag

    public static final String FailedRequestTotalsByRequestTypeTag
    See Also:
      - Constant Field Values

  - ### PendingRequestVolumesByRequestTypeTag

    public static final String PendingRequestVolumesByRequestTypeTag
    See Also:
      - Constant Field Values

  - ### FailedRequestVolumesByRequestType

    public static final String FailedRequestVolumesByRequestType
    See Also:
      - Constant Field Values

  - ### FailedOfflineRequestsTag

    public static final String FailedOfflineRequestsTag
    See Also:
      - Constant Field Values

  - ### FailedRequestTag

    public static final String FailedRequestTag
    See Also:
      - Constant Field Values

  - ### TmsStatusTag

    public static final String TmsStatusTag
    See Also:
      - Constant Field Values

  - ### LastConfigUpdateDateTimeTag

    public static final String LastConfigUpdateDateTimeTag
    See Also:
      - Constant Field Values

  - ### DaysUntilConfigUpdateRequiredTag

    public static final String DaysUntilConfigUpdateRequiredTag
    See Also:
      - Constant Field Values

  - ### RequiredConfigUpdateDateTimeTag

    public static final String RequiredConfigUpdateDateTimeTag
    See Also:
      - Constant Field Values

  - ### PaymentPlatformStatusTag

    public static final String PaymentPlatformStatusTag
    See Also:
      - Constant Field Values

  - ### AvailabilityStateTag

    public static final String AvailabilityStateTag
    See Also:
      - Constant Field Values

  - ### LocalDateTimeFormatTag

    public static final String LocalDateTimeFormatTag
    See Also:
      - Constant Field Values

  - ### LocalDateTimeTag

    public static final String LocalDateTimeTag
    See Also:
      - Constant Field Values

  - ### PaymentPlatformStatusCheckDateTimeFormatTag

    public static final String PaymentPlatformStatusCheckDateTimeFormatTag
    See Also:
      - Constant Field Values

  - ### PaymentPlatformStatusCheckDateTimeTag

    public static final String PaymentPlatformStatusCheckDateTimeTag
    See Also:
      - Constant Field Values

  - ### ErrorsTag

    public static final String ErrorsTag
    See Also:
      - Constant Field Values

  - ### ErrorTag

    public static final String ErrorTag
    See Also:
      - Constant Field Values

  - ### TerminalStatusTag

    public static final String TerminalStatusTag
    See Also:
      - Constant Field Values

  - ### TerminalIdTag

    public static final String TerminalIdTag
    See Also:
      - Constant Field Values

  - ### TransactionKeyTag

    public static final String TransactionKeyTag
    See Also:
      - Constant Field Values

  - ### ApiKeyTag

    public static final String ApiKeyTag
    See Also:
      - Constant Field Values

  - ### WebMisUsernameTag

    public static final String WebMisUsernameTag
    See Also:
      - Constant Field Values

  - ### WebMisPasswordTag

    public static final String WebMisPasswordTag
    See Also:
      - Constant Field Values

  - ### AvailableCurrenciesTag

    public static final String AvailableCurrenciesTag
    See Also:
      - Constant Field Values

  - ### CurrenciesTag

    public static final String CurrenciesTag
    See Also:
      - Constant Field Values

  - ### PaymentMethodAttribute

    public static final String PaymentMethodAttribute
    See Also:
      - Constant Field Values

  - ### CurrencyTag

    public static final String CurrencyTag
    See Also:
      - Constant Field Values

  - ### NumericCodeAttribute

    public static final String NumericCodeAttribute
    See Also:
      - Constant Field Values

  - ### CharCodeAttribute

    public static final String CharCodeAttribute
    See Also:
      - Constant Field Values

  - ### ExponentAttribute

    public static final String ExponentAttribute
    See Also:
      - Constant Field Values

  - ### SymbolAttribute

    public static final String SymbolAttribute
    See Also:
      - Constant Field Values

  - ### EnabledAttribute

    public static final String EnabledAttribute
    See Also:
      - Constant Field Values

  - ### ApplicationTag

    public static final String ApplicationTag
    See Also:
      - Constant Field Values

  - ### AvailableApplicationsTag

    public static final String AvailableApplicationsTag
    See Also:
      - Constant Field Values

  - ### ApplicationNameAttribute

    public static final String ApplicationNameAttribute
    See Also:
      - Constant Field Values

  - ### ApplicationPriorityAttribute

    public static final String ApplicationPriorityAttribute
    See Also:
      - Constant Field Values

  - ### PinPadsTag

    public static final String PinPadsTag
    See Also:
      - Constant Field Values

  - ### PinPadTag

    public static final String PinPadTag
    See Also:
      - Constant Field Values

  - ### PinPadConnectionTypeAttribute

    public static final String PinPadConnectionTypeAttribute
    See Also:
      - Constant Field Values

  - ### MerchantDataTag

    public static final String MerchantDataTag
    See Also:
      - Constant Field Values

  - ### MerchantTag

    public static final String MerchantTag
    See Also:
      - Constant Field Values

  - ### MerchantNameTag

    public static final String MerchantNameTag
    See Also:
      - Constant Field Values

  - ### IdAttribute

    public static final String IdAttribute
    See Also:
      - Constant Field Values

  - ### CategoryCodeAttribute

    public static final String CategoryCodeAttribute
    See Also:
      - Constant Field Values

  - ### CardSchemesTag

    public static final String CardSchemesTag
    See Also:
      - Constant Field Values

  - ### CardSchemeTag

    public static final String CardSchemeTag
    See Also:
      - Constant Field Values

  - ### TransactionTypesTag

    public static final String TransactionTypesTag
    See Also:
      - Constant Field Values

  - ### TransactionTypeTag

    public static final String TransactionTypeTag
    See Also:
      - Constant Field Values

  - ### FileTag

    public static final String FileTag
    See Also:
      - Constant Field Values

  - ### FileNameAttribute

    public static final String FileNameAttribute
    See Also:
      - Constant Field Values

  - ### FirmwareUpdateStatusTag

    public static final String FirmwareUpdateStatusTag
    See Also:
      - Constant Field Values

  - ### FilesRequiringUpdateTag

    public static final String FilesRequiringUpdateTag
    See Also:
      - Constant Field Values

  - ### DaysUntilFirmwareUpdateRequiredTag

    public static final String DaysUntilFirmwareUpdateRequiredTag
    See Also:
      - Constant Field Values

  - ### RequiredFirmwareUpdateDateTimeTag

    public static final String RequiredFirmwareUpdateDateTimeTag
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### ChipDnaMobileSerializer

    public ChipDnaMobileSerializer()

- ## Method Details

  - ### deserializeReceiptData

    public static Map<String,ReceiptField> deserializeReceiptData(String receiptDataXml) throws org.xmlpull.v1.XmlPullParserException, IOException
    Deserializes XML string containing receipt data into a Map of ReceiptField objects.
    Parameters:
      `receiptDataXml` - The XML string containing receipt data to be deserialized
    Returns:
      A Map where keys are receipt item IDs and values are ReceiptField objects
    Throws:
      `org.xmlpull.v1.XmlPullParserException` - If there is an error parsing the XML
      `IOException` - If there is an I/O error during parsing

  - ### deserializeCardHashes

    public static List<CardHash> deserializeCardHashes(String cardHashXml) throws org.xmlpull.v1.XmlPullParserException, IOException
    Deserializes XML string containing card hashes into a List of CardHash objects.
    Parameters:
      `cardHashXml` - The XML string containing card hash data to be deserialized
    Returns:
      A List of CardHash objects parsed from the XML
    Throws:
      `org.xmlpull.v1.XmlPullParserException` - If there is an error parsing the XML
      `IOException` - If there is an I/O error during parsing

  - ### deserializeCardTokens

    public static List<CardToken> deserializeCardTokens(String cardTokenXml) throws org.xmlpull.v1.XmlPullParserException, IOException
    Deserializes XML string containing card tokens into a List of CardToken objects.
    Parameters:
      `cardTokenXml` - The XML string containing card token data to be deserialized. Cannot be null.
    Returns:
      A List of CardToken objects parsed from the XML
    Throws:
      `org.xmlpull.v1.XmlPullParserException` - If there is an error parsing the XML
      `IOException` - If there is an I/O error during parsing
      `NullPointerException` - If cardTokenXml is null

  - ### serializeFeatureTokens

    public static String serializeFeatureTokens(List<FeatureToken> featureTokens)
    Serializes a List of FeatureToken objects into XML string format.
    Parameters:
      `featureTokens` - The List of FeatureToken objects to be serialized. Cannot be null.
    Returns:
      An XML string representation of the feature tokens
    Throws:
      `NullPointerException` - If featureTokens is null
      `RuntimeException` - If there is an error during XML serialization

  - ### deserializeVersionInformation

    public static VersionInformation deserializeVersionInformation(String versionInformationXml) throws org.xmlpull.v1.XmlPullParserException, IOException
    Deserializes XML string containing version information into a VersionInformation object.
    Parameters:
      `versionInformationXml` - The XML string containing version information to be deserialized
    Returns:
      A VersionInformation object containing version, release name, and application name
    Throws:
      `org.xmlpull.v1.XmlPullParserException` - If there is an error parsing the XML
      `IOException` - If there is an I/O error during parsing

  - ### deserializeDeviceStatus

    public static DeviceStatus deserializeDeviceStatus(String deviceStatusXml) throws org.xmlpull.v1.XmlPullParserException, IOException
    Deserializes XML string containing device status information into a DeviceStatus object.
    Parameters:
      `deviceStatusXml` - The XML string containing device status data to be deserialized
    Returns:
      A DeviceStatus object containing device information such as name, status, make, model, firmware details, battery information, etc.
    Throws:
      `org.xmlpull.v1.XmlPullParserException` - If there is an error parsing the XML
      `IOException` - If there is an I/O error during parsing

  - ### deserializeFirmwareUpdateStatus

    public static FirmwareUpdateStatus deserializeFirmwareUpdateStatus(String firmwareUpdateStatusXml) throws org.xmlpull.v1.XmlPullParserException, IOException
    Deserializes XML string containing firmware update status into a FirmwareUpdateStatus object.
    Parameters:
      `firmwareUpdateStatusXml` - The XML string containing firmware update status data to be deserialized
    Returns:
      A FirmwareUpdateStatus object containing update requirements, dates, and files requiring updates
    Throws:
      `org.xmlpull.v1.XmlPullParserException` - If there is an error parsing the XML
      `IOException` - If there is an I/O error during parsing

  - ### deserializeRequestQueueStatus

    public static RequestQueueStatus deserializeRequestQueueStatus(String requestQueueStatusXml) throws org.xmlpull.v1.XmlPullParserException, IOException
    Deserializes XML string containing request queue status into a RequestQueueStatus object.
    Parameters:
      `requestQueueStatusXml` - The XML string containing request queue status data to be deserialized
    Returns:
      A RequestQueueStatus object containing information about pending and failed requests, storage limits, and request totals by type
    Throws:
      `org.xmlpull.v1.XmlPullParserException` - If there is an error parsing the XML
      `IOException` - If there is an I/O error during parsing

  - ### deserializeTmsStatus

    public static TmsStatus deserializeTmsStatus(String tmsStatusXml) throws org.xmlpull.v1.XmlPullParserException, IOException
    Deserializes XML string containing TMS status information into a TmsStatus object.
    Parameters:
      `tmsStatusXml` - The XML string containing TMS status data to be deserialized
    Returns:
      A TmsStatus object containing configuration update information and date/time details
    Throws:
      `org.xmlpull.v1.XmlPullParserException` - If there is an error parsing the XML
      `IOException` - If there is an I/O error during parsing

  - ### deserializePaymentPlatformStatus

    public static PaymentPlatformStatus deserializePaymentPlatformStatus(String paymentPlatformStatusXml) throws org.xmlpull.v1.XmlPullParserException, IOException
    Deserializes XML string containing payment platform status into a PaymentPlatformStatus object.
    Parameters:
      `paymentPlatformStatusXml` - The XML string containing payment platform status data to be deserialized
    Returns:
      A PaymentPlatformStatus object containing availability state, date/time information, and any errors
    Throws:
      `org.xmlpull.v1.XmlPullParserException` - If there is an error parsing the XML
      `IOException` - If there is an I/O error during parsing

  - ### deserializeTerminalStatus

    public static TerminalStatus deserializeTerminalStatus(String terminalStatusXml) throws org.xmlpull.v1.XmlPullParserException, IOException
    Deserializes XML string containing terminal status information into a TerminalStatus object.
    Parameters:
      `terminalStatusXml` - The XML string containing terminal status data to be deserialized
    Returns:
      A TerminalStatus object containing terminal configuration including ID, transaction key, API key, and WebMIS credentials
    Throws:
      `org.xmlpull.v1.XmlPullParserException` - If there is an error parsing the XML
      `IOException` - If there is an I/O error during parsing

  - ### deserializeAvailableCurrencies

    public static HashMap<PaymentMethod,ArrayList<Currency>> deserializeAvailableCurrencies(String availableCurrenciesXml) throws org.xmlpull.v1.XmlPullParserException, IOException
    Deserializes XML string containing available currencies into a HashMap mapping payment methods to currency lists.
    Parameters:
      `availableCurrenciesXml` - The XML string containing available currencies data to be deserialized
    Returns:
      A HashMap where keys are PaymentMethod enums and values are ArrayLists of Currency objects
    Throws:
      `org.xmlpull.v1.XmlPullParserException` - If there is an error parsing the XML
      `IOException` - If there is an I/O error during parsing

  - ### deserializeAvailablePinPads

    public static HashMap<String,ArrayList<String>> deserializeAvailablePinPads(String availablePinPadsXml) throws org.xmlpull.v1.XmlPullParserException, IOException
    Deserializes XML string containing available pin pads into a HashMap mapping connection types to pin pad names.
    Parameters:
      `availablePinPadsXml` - The XML string containing available pin pads data to be deserialized. Can be null.
    Returns:
      A HashMap where keys are connection type strings and values are ArrayLists of pin pad names. Returns empty HashMap if input is null.
    Throws:
      `org.xmlpull.v1.XmlPullParserException` - If there is an error parsing the XML
      `IOException` - If there is an I/O error during parsing

  - ### deserializeAvailableApplications

    public static ArrayList<Application> deserializeAvailableApplications(String availableApplicationsXml) throws org.xmlpull.v1.XmlPullParserException, IOException
    Deserializes XML string containing available applications into an ArrayList of Application objects.
    Parameters:
      `availableApplicationsXml` - The XML string containing available applications data to be deserialized
    Returns:
      An ArrayList of Application objects containing application names and priorities
    Throws:
      `org.xmlpull.v1.XmlPullParserException` - If there is an error parsing the XML
      `IOException` - If there is an I/O error during parsing

  - ### deserializeMerchantData

    public static MerchantData deserializeMerchantData(String merchantDataXml) throws org.xmlpull.v1.XmlPullParserException, IOException
    Deserializes XML string containing merchant data into a MerchantData object.
    Parameters:
      `merchantDataXml` - The XML string containing merchant data to be deserialized
    Returns:
      A MerchantData object containing a list of Merchant objects with their associated information
    Throws:
      `org.xmlpull.v1.XmlPullParserException` - If there is an error parsing the XML
      `IOException` - If there is an I/O error during parsing