TROXMLSerializer Class

From RemObjects Wiki
Jump to: navigation, search

This is a Library topic for RemObjects SDK for Delphi
This page is generated from external data, please do not update

InterfacesClassesAliasesImplements

Contents

Overview

The TROXMLSerializer class is used for serializing and deserializing data of any type to XML format.
Every WriteXXXX method has a symmetrical ReadXXXX method, so you can easily write and read any object to XML format.
This class is also used by the TROSOAPMessage class for serializing and deserializing data.


Location

uROXMLSerializer.pas


Properties

CurrentNamespace

Gets or sets the current namespace.



property CurrentNamespace: string read write


Node



property Node: IXMLNode read


Prefix

Gets or sets a prefix for the current namespace.



property Prefix: string read


PrefixMap

Gets a list of prefixes with their namespaces.



property PrefixMap: TStrings read


RecordStrictOrder     (declared in TROSerializer)

Indicates whether the field order of the structures must be maintained the same order as in the RODL. If set to false, alphabetical order is used for the fields.



property RecordStrictOrder: Boolean read


SerializationOptions

Defines how this class generates XML and wsdl/xsd files.



property SerializationOptions: TROXMLSerializationOptions read write


Instance Methods

constructor Create ()     (declared in TROSerializer)



constructor Create


constructor Create (pointer)

Creates a new instance.


constructor Create(aStorageRef: pointer)


Parameters:

  • aStorageRef:


destructor Destroy   override



destructor Destroy


BeginReadObject   protected override

Validates a serialized object and prepares it for reading.


procedure BeginReadObject(const aName: string; aClass: TClass; var anObject: TObject; var LevelRef: IUnknown; var IsValidType: boolean; ArrayElementId: integer)


Parameters:

  • aName:
  • aClass:
  • anObject:
  • LevelRef:
  • IsValidType:
  • ArrayElementId:


BeginWriteObject   protected override

Validates a serialized object and prepares it for writing.


procedure BeginWriteObject(const aName: string; aClass: TClass; anObject: TObject; var LevelRef: IUnknown; var IsValidType: boolean; out IsAssigned: Boolean; ArrayElementId: integer)


Parameters:

  • aName:
  • aClass:
  • anObject:
  • LevelRef:
  • IsValidType:
  • IsAssigned:
  • ArrayElementId:


ChangeClass   override

Sets the specified class attribute value to the current namespace.


procedure ChangeClass(aClass: TClass)


Parameters:

  • aClass:


CustomReadObject   protected override

Checks the object and reads it from the XML.


procedure CustomReadObject(const aName: string; aClass: TClass; var Ref: ; ArrayElementId: integer)


Parameters:

  • aName:
  • aClass:
  • Ref:
  • ArrayElementId:


CustomWriteObject   protected override

Checks the object and writes it to XML.


procedure CustomWriteObject(const aName: string; aClass: TClass; const Ref: ; ArrayElementId: integer)


Parameters:

  • aName:
  • aClass:
  • Ref:
  • ArrayElementId:


EndReadObject   protected override

Sets the LevelRef to the current node.


procedure EndReadObject(const aName: string; aClass: TClass; var anObject: TObject; const LevelRef: IUnknown)


Parameters:

  • aName:
  • aClass:
  • anObject:
  • LevelRef:


EndWriteObject   protected override

Sets the LevelRef to the current node.


procedure EndWriteObject(const aName: string; aClass: TClass; anObject: TObject; const LevelRef: IUnknown)


Parameters:

  • aName:
  • aClass:
  • anObject:
  • LevelRef:


GetArrayElementName   override

Returns an element name as a string by using anItemType and anItemReference.


function GetArrayElementName(anItemType: PTypeInfo; anItemReference: pointer): string


Parameters:

  • anItemType:
  • anItemReference:


GetRecordStrictOrder   protected override

Returns True, if the xsoStrictStructureFieldOrder is included in the SerializationOptions property.


function GetRecordStrictOrder: Boolean


InitializeRPCEncoding



procedure InitializeRPCEncoding


IsROCustomStreamable   protected     (declared in TROSerializer)

Determines if the instance is custom streamable by testing for the IROCustomStreamableType interface implementation.


function IsROCustomStreamable(aClass: TClass): Boolean


Parameters:

  • aClass: Class to test.


Read     (declared in TROSerializer)

General method to deserialize any data.


procedure Read(const aName: string; aTypeInfo: PTypeInfo; var Ptr: ; ArrayElementId: integer)


Parameters:

  • aName: Name of the object to read.
  • aTypeInfo: Runtime type information for the data to read.
  • Ptr: Output parameter, should point to the deserialized instance.
  • ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.


ReadAnsiString   override

Reads an AnsiString value from XML.


procedure ReadAnsiString(const aName: string; var Ref: ; ArrayElementId: integer; iMaxLength: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the destination variable
  • ArrayElementId:
  • iMaxLength:


ReadArray   override

Reads an Array value from XML.


function ReadArray(const aName: string; aClass: TClass; var Ref: ; ArrayElementId: integer): Boolean


Parameters:

  • aName: Parameter name
  • aClass:
  • Ref: Pointer to the destination variable
  • ArrayElementId:


ReadBinary   override

Reads a Binary value from XML.


procedure ReadBinary(const aName: string; var Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the destination variable
  • ArrayElementId:


ReadDateTime   override

Reads a TDateTime value from XML.


procedure ReadDateTime(const aName: string; var Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the destination variable
  • ArrayElementId:


ReadDecimal   override

Reads a Decimal value from XML.


procedure ReadDecimal(const aName: string; var Ref: ; ArrayElementId: Integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the destination variable
  • ArrayElementId:


ReadDouble   override

Reads a Double value from XML.


procedure ReadDouble(const aName: string; aFloatType: TFloatType; var Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • aFloatType:
  • Ref: Pointer to the destination variable
  • ArrayElementId:


ReadEnumerated   override

Reads an Enumerated value from XML.


procedure ReadEnumerated(const aName: string; anEnumTypeInfo: PTypeInfo; var Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • anEnumTypeInfo:
  • Ref: Pointer to the destination variable
  • ArrayElementId:


ReadException   override

Reads an Exception value from XML.


procedure ReadException(const aName: string; var Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the destination variable
  • ArrayElementId:


ReadGuid   override

Reads a Guid value from XML.


procedure ReadGuid(const aName: string; var Ref: ; ArrayElementId: Integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the destination variable
  • ArrayElementId:


ReadInt64   override

Reads an Int64 value from XML.


procedure ReadInt64(const aName: string; var Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the destination variable
  • ArrayElementId:


ReadInteger   override

Reads an Integer value from XML.


procedure ReadInteger(const aName: string; anOrdType: TOrdType; var Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • anOrdType:
  • Ref: Pointer to the destination variable
  • ArrayElementId:


ReadObject   protected override     (declared in TROSerializer)

Deserializes data of any object type.


procedure ReadObject(obj: TObject)


Parameters:

  • obj: Object instance whose properties will be deserialized.


ReadROCustomStreamable   protected     (declared in TROSerializer)

Deserializes a custom streamable object (the object implementing the IROCustomStreamableType interface).


procedure ReadROCustomStreamable(const aName: string; aClass: TClass; var Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Name of the object to read.
  • aClass: Class of the object to read.
  • Ref: Output parameter, should point to the deserialized instance.
  • ArrayElementId: If the object about to be read is an array element, its index is contained in this parameter, otherwise it is -1.


ReadStruct   override

Reads a Struct value from XML.


function ReadStruct(const aName: string; aClass: TClass; var Ref: ; ArrayElementId: integer): Boolean


Parameters:

  • aName: Parameter name
  • aClass:
  • Ref: Pointer to the destination variable
  • ArrayElementId:


ReadUnicodeString   override

Reads a Unicode String value from XML.


procedure ReadUnicodeString(const aName: string; var Ref: ; ArrayElementId: integer; iMaxLength: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the destination variable
  • ArrayElementId:
  • iMaxLength:


ReadUTF8String   override

Reads a UTF8String value from XML.


procedure ReadUTF8String(const aName: string; var Ref: ; ArrayElementId: integer; iMaxLength: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the destination variable
  • ArrayElementId:
  • iMaxLength:


ReadVariant   override

Reads a value of unknown type from XML.


procedure ReadVariant(const aName: string; var Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the destination variable
  • ArrayElementId:


ReadWideString   override

Reads an Unicode String value from XML.


procedure ReadWideString(const aName: string; var Ref: ; ArrayElementId: integer; iMaxLength: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the destination variable
  • ArrayElementId:
  • iMaxLength:


ReadXml   override

Reads an XML value from XML.


procedure ReadXml(const aName: string; var Ref: ; ArrayElementId: Integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the destination variable
  • ArrayElementId:


ReadXsDateTime

Reads an XsDateTime value from XML.


function ReadXsDateTime(const aName: string; ArrayElementId: integer): XsDateTime


Parameters:

  • aName: Parameter name
  • ArrayElementId:


SetStorageRef

Sets a new XML object to write/read objects to.


procedure SetStorageRef(aStorageRef: pointer)


Parameters:

  • aStorageRef:


Write     (declared in TROSerializer)

The general method to serialize any data.


procedure Write(const aName: string; aTypeInfo: PTypeInfo; const Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Name of the object to write.
  • aTypeInfo: Runtime type information of the object to write.
  • Ref: Points to the instance to serialize.
  • ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.


WriteAnsiString   override

Writes an AnsiString value to XML.


procedure WriteAnsiString(const aName: string; const Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the source variable
  • ArrayElementId:


WriteArray   override

Writes an Array value to XML.


procedure WriteArray(const aName: string; const Ref: ; aClass: TClass; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the source variable
  • aClass:
  • ArrayElementId:


WriteBinary   override

Writes a Binary value to XML.


procedure WriteBinary(const aName: string; const Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the source variable
  • ArrayElementId:


WriteDateTime   override

Writes a TDateTime value to XML.


procedure WriteDateTime(const aName: string; const Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the source variable
  • ArrayElementId:


WriteDecimal   override

Writes a Decimal value to XML.


procedure WriteDecimal(const aName: string; const Ref: ; ArrayElementId: Integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the source variable
  • ArrayElementId:


WriteDouble   override

Writes a Double value to XML.


procedure WriteDouble(const aName: string; aFloatType: TFloatType; const Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • aFloatType:
  • Ref: Pointer to the source variable
  • ArrayElementId:


WriteEnumerated   override

Writes an Enumerated value to XML.


procedure WriteEnumerated(const aName: string; anEnumTypeInfo: PTypeInfo; const Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • anEnumTypeInfo:
  • Ref: Pointer to the source variable
  • ArrayElementId:


WriteException   override

Writes an Exception value to XML.


procedure WriteException(const aName: string; const Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the source variable
  • ArrayElementId:


WriteGuid   override

Writes a Guid value to XML.


procedure WriteGuid(const aName: string; const Ref: ; ArrayElementId: Integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the source variable
  • ArrayElementId:


WriteInt64   override

Writes an Int64 value to XML.


procedure WriteInt64(const aName: string; const Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the source variable
  • ArrayElementId:


WriteInteger   override

Writes an Integer value to XML.


procedure WriteInteger(const aName: string; anOrdType: TOrdType; const Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • anOrdType:
  • Ref: Pointer to the source variable
  • ArrayElementId:


WriteObject   protected override     (declared in TROSerializer)

Serializes data of any object type.


procedure WriteObject(obj: TObject)


Parameters:

  • obj: Object instance whose properties will be serialized.


WriteROCustomStreamable   protected     (declared in TROSerializer)

Serializes a custom streamable object (the object implementing the IROCustomStreamableType interface).


procedure WriteROCustomStreamable(const aName: string; aClass: TClass; const Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Name of the object to write.
  • aClass: Class of the object to write.
  • Ref: Points to the instance to deserialize.
  • ArrayElementId: If the object to write is an array element, its index is contained in this parameter, otherwise it is -1.


WriteStruct   override

Writes a Struct value to XML.


procedure WriteStruct(const aName: string; const Ref: ; aClass: TClass; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the source variable
  • aClass:
  • ArrayElementId:


WriteUnicodeString   override

Writes a Unicode String value to XML.


procedure WriteUnicodeString(const aName: string; const Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the source variable
  • ArrayElementId:


WriteUTF8String   override

Writes a UTF8String value to XML.


procedure WriteUTF8String(const aName: string; const Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the source variable
  • ArrayElementId:


WriteVariant   override

Writes a value of unknown type to XML.


procedure WriteVariant(const aName: string; const Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the source variable
  • ArrayElementId:


WriteWideString   override

Writes a Unicode String value to XML.


procedure WriteWideString(const aName: string; const Ref: ; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the source variable
  • ArrayElementId:


WriteXml   override

Writes an XML value to XML.


procedure WriteXml(const aName: string; const Ref: ; ArrayElementId: Integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the source variable
  • ArrayElementId:


WriteXSDateTime

Writes an XsDateTime value to XML.


procedure WriteXSDateTime(const aName: string; Ref: XsDateTime; ArrayElementId: integer)


Parameters:

  • aName: Parameter name
  • Ref: Pointer to the source variable
  • ArrayElementId:


See Also


Product: RemObjects SDK
Available Editions: RemObjects SDK for .NET, Xcode, Delphi, Java and JavaScript

GlossaryArticlesLibrarySamples

Personal tools
Namespaces

Variants
Actions
Navigation
products
platforms
special
Toolbox