Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Matches initial implementation of 4 transforms.

...

  • layerTransform (literal string or DFDL expression) - XSD NCNames - all reserved. In the future this may become extensible allowing QNames to be used.
  • layerEncoding (literal string or DFDL expression)
  • layerLengthKind - Can be 'implicit', 'explicit', or 'boundaryMark'. Perhaps other values in the future (e.g., 'pattern')
  • layerBoundaryMark (literal string or DFDL expression) - used with dfdl:layerLengthKind 'boundaryMark'
  • layerLength (literal string or DFDL expression) - used with dfdl:layerLengthKind 'explicit'
  • layerLengthPattern - used with dfdl:layerLengthKind 'pattern'
  • (TBD layer properties for when dfdl:layerLengthKind is 'prefixed' - such time as that is supported, if ever.)

The initial transform names and their supported layerLengthKinds are:

  • base64_MIME - layerLengthKind 'boundaryMark' only
  • gzip - layerLengthKind 'explicit' only
  • lineFolded_IMF - layerLengthKind 'boundaryMark' (without a layerBoundaryMark property - not used. Always CRLF), or layerLengthKind 'implicit' which extends to end of available data.
  • lineFolded_iCalendar - same as lineFolded_IMF

will include "base64_RFC2045", "lineFolding", "gzip", and perhaps others. Transform names are very specific. They identify not a general class of transformations, but the specifics of the algorithm. For example base64_RFC2045 MIME is the style of base64 encoding/decode used for MIME attachments in Internet messages. It includes limiting the length of lines in the encoded representation to 75 long.

...

The meaning of the values of these properties, and any constraints on those values, are essentially specified by the layer transform algorithm. For example: for layerLengthKind 'boundaryMark' and the base64 layer transform, we expect that the layerBoundaryMark must be a string, and this string has constraints beyond those we see in the the regular dfdl:terminator property. In particular for base64, we expect that layerBoundaryMark cannot contain DFDL character entities of any kind. This makes it impossible, for example, for a base64 'boundaryMark' layer to be bounded by a string containing ASCII NUL (character code 0), as there is no way to express this without use of DFDL character entities. These limitations must be enforced by the algorithms themselves.

To show these new annnotations annotations at work, a named format that specifies a layering is created via

...