Message Part Structures

This section discusses:

  • Rowset-based message parts.

  • Nonrowset-based message parts.

Message parts are rowset-based messages or nonrowset-based messages that you designate as a part message on the message definition. Message parts are used in container messages

Message parts can be re-used in multiple containers.

All parts in a container must be of the same type (Rowset-based or Nonrowset-based).

You create messages using the Message Builder page in the PeopleSoft Pure Internet Architecture.

Rowset-based message parts provide all the ease of use of using rowsets, yet the generated XML message is industry standard and not PeopleSoft proprietary. Rowset-based message parts, like nonrowset-based parts, can only be part of a container type message.

These are the benefits of using Rowset-based parts:

  • The XML schema generated is standard XML and not the PeopleSoft message format. Rowset-based message parts do not have a PSCAMA section, FieldTypes section, IsChanged attributes, and so forth.

  • The message API for rowset-based parts is simple to use and understand.

  • XML serialization and deserialization to and from part rowset is provided by Integration Broker framework.

  • You can use a CopyRowSet type method to populate the rowset from another rowset (component rowset).

The following example shows a sample schema from a rowset-based message part:

<?xml version="1.0"?> 
<xsd:schema elementFormDefault="qualified" targetNamespace="http://xmlns.
oracle.com/Enterprise/Tools/schemas/Part_1.V1" xmlns="http://xmlns.oracle.
com/Enterprise/Tools/schemas/Part_1.V1" xmlns:xsd="http://www.w3.org/
2001/XMLSchema"> 
  <xsd:element name="Part_1" type="Part_1_TypeShape"/> 
  <xsd:complexType name="Part_1_TypeShape"> 
    <xsd:sequence> 
      <xsd:element name="First_Part" type="First_PartMsgDataRecord_TypeShape"/> 
    </xsd:sequence> 
  </xsd:complexType> 
  <xsd:complexType name="First_PartMsgDataRecord_TypeShape"> 
    <xsd:sequence> 
      <xsd:element name="QE_ACNUMBER" type="QE_ACNUMBER_TypeDef"/> 
      <xsd:element name="QE_WAYPOINT_NBR" type="QE_WAYPOINT_NBR_TypeDef"/> 
      <xsd:element minOccurs="0" name="QE_BEARING" type="QE_BEARING_TypeDef"/> 
      <xsd:element minOccurs="0" name="QE_RANGE" type="QE_RANGE_TypeDef"/> 
      <xsd:element minOccurs="0" name="QE_ALTITUDE" type="QE_ALTITUDE_TypeDef"/> 
      <xsd:element minOccurs="0" name="QE_LATITUDE" type="QE_LATITUDE_TypeDef"/> 
      <xsd:element minOccurs="0" name="QE_LONGITUDE" type="QE_LONGITUDE_TypeDef"/> 
      <xsd:element name="QE_HEADING" type="QE_HEADING_TypeDef"/> 
      <xsd:element name="QE_VELOCITIES" type="QE_VELOCITIES_TypeDef"/> 
      <xsd:element minOccurs="0" name="QE_NAVDESC" type="QE_NAVDESC_TypeDef"/> 
    </xsd:sequence> 
    <xsd:attribute fixed="R" name="class" type="xsd:string" use="required"/> 
  </xsd:complexType> 
  <xsd:simpleType name="QE_ACNUMBER_TypeDef"> 
    <xsd:annotation> 
      <xsd:documentation>QE_ACNUMBER is a number of length 10 with a decimal 
        position of 0</xsd:documentation> 
    </xsd:annotation> 
    <xsd:restriction base="xsd:integer"> 
      <xsd:totalDigits value="10"/> 
    </xsd:restriction> 
  </xsd:simpleType> 
  <xsd:simpleType name="QE_WAYPOINT_NBR_TypeDef"> 
    <xsd:annotation> 
      <xsd:documentation>QE_WAYPOINT_NBR is a number of length 3 with a decimal 
        position of 0</xsd:documentation> 
    </xsd:annotation> 
    <xsd:restriction base="xsd:integer"> 
      <xsd:totalDigits value="3"/> 
    </xsd:restriction> 
  </xsd:simpleType> 
  <xsd:simpleType name="QE_BEARING_TypeDef"> 
    <xsd:annotation> 
      <xsd:documentation>QE_BEARING is a character of length 10</xsd:documentation> 
    </xsd:annotation> 
    <xsd:restriction base="xsd:string"> 
      <xsd:maxLength value="10"/> 
      <xsd:whiteSpace value="preserve"/> 
    </xsd:restriction> 
  </xsd:simpleType> 
  <xsd:simpleType name="QE_RANGE_TypeDef"> 
    <xsd:annotation> 
      <xsd:documentation>QE_RANGE is a character of length 10</xsd:documentation> 
    </xsd:annotation> 
    <xsd:restriction base="xsd:string"> 
      <xsd:maxLength value="10"/> 
      <xsd:whiteSpace value="preserve"/> 
    </xsd:restriction> 
  </xsd:simpleType> 
  <xsd:simpleType name="QE_ALTITUDE_TypeDef"> 
    <xsd:annotation> 
      <xsd:documentation>QE_ALTITUDE is a character of length 10</xsd:documentation> 
    </xsd:annotation> 
    <xsd:restriction base="xsd:string"> 
      <xsd:maxLength value="10"/> 
      <xsd:whiteSpace value="preserve"/> 
    </xsd:restriction> 
  </xsd:simpleType> 
  <xsd:simpleType name="QE_LATITUDE_TypeDef"> 
    <xsd:annotation> 
      <xsd:documentation>QE_LATITUDE is a character of length 15
      </xsd:documentation> 
    </xsd:annotation> 
    <xsd:restriction base="xsd:string"> 
      <xsd:maxLength value="15"/> 
      <xsd:whiteSpace value="preserve"/> 
    </xsd:restriction> 
  </xsd:simpleType> 
  <xsd:simpleType name="QE_LONGITUDE_TypeDef"> 
    <xsd:annotation> 
      <xsd:documentation>QE_LONGITUDE is a character of length 15
      </xsd:documentation> 
    </xsd:annotation> 
    <xsd:restriction base="xsd:string"> 
      <xsd:maxLength value="15"/> 
      <xsd:whiteSpace value="preserve"/> 
    </xsd:restriction> 
  </xsd:simpleType> 
  <xsd:simpleType name="QE_HEADING_TypeDef"> 
    <xsd:annotation> 
      <xsd:documentation>QE_HEADING is a character of length 4
     </xsd:documentation> 
    </xsd:annotation> 
    <xsd:restriction base="xsd:string"> 
      <xsd:enumeration value="MAG"/> 
      <xsd:enumeration value="TRUE"/> 
    </xsd:restriction> 
  </xsd:simpleType> 
  <xsd:simpleType name="QE_VELOCITIES_TypeDef"> 
    <xsd:annotation> 
      <xsd:documentation>QE_VELOCITIES is a character of length 4
      </xsd:documentation> 
    </xsd:annotation> 
    <xsd:restriction base="xsd:string"> 
      <xsd:enumeration value="ADC"/> 
      <xsd:enumeration value="GPS"/> 
      <xsd:enumeration value="INS"/> 
    </xsd:restriction> 
  </xsd:simpleType> 
  <xsd:simpleType name="QE_NAVDESC_TypeDef"> 
    <xsd:annotation> 
      <xsd:documentation>QE_NAVDESC is a character of length 30
      </xsd:documentation> 
    </xsd:annotation> 
    <xsd:restriction base="xsd:string"> 
      <xsd:maxLength value="30"/> 
      <xsd:whiteSpace value="preserve"/> 
    </xsd:restriction> 
  </xsd:simpleType> 
</xsd:schema>

A nonrowset-based message part schema is similar to a regular nonrowset-based message, however a nonrowset-based message part can be reused in multiple containers.