Skip to content

ABAP Keyword Documentation →  ABAP - Reference →  Data Interfaces and Communication Interfaces →  ABAP and XML →  Simple Transformations →  ST - Serialization and Deserialization →  ST - Transformation of ABAP Values →  ST - tt:value, elementare Datenobjekte 

ST - xsd-type, Validation

Other versions: 7.31 | 7.40 | 7.54

Syntax


... xsd-type="type" 
   [xsd-maxInclusive="max"]
   [xsd-maxExclusive ="max"]
   [xsd-minInclusive="min"]
   [xsd-minExclusive ="min"]
   [xsd-totalDigits="dgts"]
   [xsd-fractionDigits="dgts"] ...

Effect

These attributes can be used with tt:value, and tt:write and tt:read to validate the value.

The attribute xsd-type can be used to specify an XML schema data type type. The serialized or deserialized value must be in the value range of this type. If not, an exception of the class CX_ST_VALIDATION_ERROR is raised, which is not caught directly but by using CX_ST_SERIALIZATION_ERROR, CX_ST_DESERIALIZATION_ERROR, and its superclasses instead. The following subtypes of xsd:decimal can be specified for type:

xsd:byte, xsd:decimal, xsd:int, xsd:integer, xsd:long, xsd:negativeInteger, xsd:nonNegativeInteger, xsd:nonPosistiveInteger, xsd:positiveInteger, xsd:short, xsd:unsignedByte, xsd:unsignedInt, xsd:unsignedLong, and xsd:unsignedShort.

Together with the attribute xsd-type, the following "constraining facets" permitted by the XML schema can be specified as further attributes:

  • xsd-maxInclusive, xsd-maxExclusive
The value must be less than or equal to or less than max. max must be in the value range of the XML schema data type and cannot be less than a simultaneous lower limit min.
  • xsd-minInclusive, xsd-minExclusive
The value must be greater than or equal to or greater than min. min must be in the value range of the XML schema data type and cannot be greater than a simultaneous upper limit max.
  • xsd-totalDigits, fractionDigits
The value can have a maximum of dgts digits or decimal places. dgts must fit the other restrictions.

After the transformation from ABAP, serializations perform the validation to XML. Before the transformation from XML, deserializations perform the validation to ABAP. In both cases, the data type of the bound ABAP data object is ignored.


Example

Serialization of ABAP Data with Validation

<tt:transform
  xmlns:tt="http://www.sap.com/transformation-templates">
  <tt:root name="NUM"/>
  <tt:template>
    <Number>
      <tt:value ref="NUM"
          xsd-type="short" xsd-minInclusive="30000"/>
    </Number>
  </tt:template>
</tt:transform>

The transformation only accepts numbers between 30000 and 32767. The following ABAP program calls the transformation and catches the validation exceptions.

PARAMETERS int TYPE i.

DATA xml_string TYPE string.

TRY.
    CALL TRANSFORMATION ...
         SOURCE num = int
         RESULT XML xml_string.
    WRITE / 'OK'.
  CATCH cx_st_error.
    WRITE / 'Not OK'.
ENDTRY.