Service Layer XML Serialization Format¶
This document presents XML serialization format for Extended Server records. A record in Java Server Framework is represented by abstract class ifs.fnd.record.FndAbstractRecord and its subclasses. XML serialization methods for records are gathered in class ifs.fnd.record.serialization.FndXmlUtil.
There are two types of XML format for records: external format and internal format. The external format is used for communication with external systems, for example through IFS SOAP Gateway. The internal format is used internally by Extended Server, for example for export/import of data.
External XML Format¶
A record converted into an external XML document is presented in the example below. The name of the main tag of this document (PERSON_INFO) represents the type of the serialized record. Nested tags represent simple (like NAME) or compound (like ISO_LANGUAGE) attributes contained in the record.
See XML version of this example.
The name of a tag representing an attribute (or record) matches the upper-case version of the attribute/record name. The following table presents XML attributes for the main (top level) tag of an external (or internal) XML document.
XML Attribute Name | Example Value | Description |
---|---|---|
xmlns:xsi | http://www.w3.org/2001/XMLSchema-instance | Standard XML Schema instance namespace |
xmlns | urn:ifsworld-com:schemas:personinfo_person_info | Namespace specific to the type of record or BizApi operation |
A value of a simple attribute is converted to its string representation depending on the attribute type, as defined in the following table.
Attribute Type | Java Class | Example Value |
---|---|---|
Alpha | FndAlpha | ABC |
Text | FndText | ÅÖÄ |
Binary | FndBinary | (Base 64 encoded value) |
Boolean | FndBoolean | 1 |
Timestamp | FndTimestamp | 2003-08-08T09:35:25 |
Date | FndDate | 2003-08-08 |
Time | FndTime | 09:35:25 |
Number | FndNumber | 156.234 |
Integer | FndInteger | 10001 |
Enum | FndEnumeration | Active |
A null value is converted to the standard XML attribute xsi:nil, see the attribute INITIALS in the example above.
Compound record attributes (arrays and aggregates) are converted to nested XML tags in the same way as simple attributes. The only difference is that a compound attribute, instead of a simple value, contains one or more records. For example the aggregate ISO_LANGUAGE in the example above contains a record with the same name.
Query conditions are not supported and are ignored by the serialization process. Record attributes marked as non-existent are also ignored by the serialization process.
Internal XML Format¶
The internal XML format for records contains additional information absent in the external format:
- record state (queried, new, modified or removed)
- record attributes used by storage layer like OBJ_ID or OBJ_VERSION
- attribute type and state
A record converted into an internal XML document is presented in the following example.
See XML version of this example.
An XML tag representing a record in an internal XML document may contain the following XML attributes.
XML Attribute Name | Example Value | Description |
---|---|---|
xmlns:ifsrecord | urn:ifsworld-com:ifsrecord | IFS record namespace (only top level record) |
ifsrecord:state | modified | One of: queried, new, modified, removed |
ifsrecord:CREATED_BY | JOSMUS | Only for entity views |
ifsrecord:CREATED_DATE | 2003-08-08-09.35.25 | Only for entity views |
ifsrecord:OBJ_VERSION | 20030811140611 | Only for entity views and LU entity view |
ifsrecord:OBJ_ID | AAAMzlAAGAAABBSAAA | Only for LU entity views |
An XML tag describing a record attribute may contain the following XML attributes.
XML Attribute Name | Example Value | Description |
---|---|---|
ifsrecord:datatype | Text | attribute type (see attribute type table) |
ifsrecord:dirty | 1 | marks a dirty attribute |
ifsrecord:exclude | 1 | marks an attribute excluded from query |