You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

Potentially Runtime-valued Properties

  • byteOrder - used for all binary types
  • encoding - Used for all xs:string, all representation="text", all delimiters, matching of assert/discriminators with testKind='pattern', matching of lengthKind='pattern'.
  • outputNewLine - unparsing only


Note that primitives that do delimited text need terminators and/or separators of potentially many objects in scope, any subset of which may have runtime expression for the value. If an element is required and has its own terminator, then nothing else's separator or terminators matter (though they must be escaped according to DFDL v1.0 rules), but if it is optional, then one must search for this objects terminator, or whatever other terminating markup might end the element, and of course nillable, nilValues and nilValueDelimiterPolicy as well as emptyValueDelimiterPolicy play a role in whether/when one needs specific terminators or not. 

  • initiator
  • terminator
  • separator
  • escapeCharacter
  • escapeEscapeCharacter


  • length
  • occursCount


  • textStandardDecimalSeparator
  • textStandardGroupingSeparator
  • textStandardExponentRep
  • binaryFloatRep
  • textBooleanTrueRep
  • textbooleanFalseRep
  • choiceDispatchKey
  • calendarLanguage (recently added)


Special Cases

  • inputValueCalc
  • outputValueCalc
  • also in assert and discriminator with textKind='expression' the test property (or value of the element)
  • also value property on setVariable (or the value of the element)
  • also defaultValue property on newVariableInstance (or the value of the element)
  • also defaultValue property on defineVariable (however, these are evaluated in a special context, as part of initialization) (or the value of the element)


Example

Consider an element with representation="text" textNumberRep="standard" type="xs:decimal", in a context of lengthKind='delimited' with an escape scheme of escapeKind="escapeCharacter".

For parsing, this could use

  • encoding
  • initiator
  • terminator - possibly from this element and from several enclosing scopes
  • separator - possibly from this element and from several enclosing scopes
  • escapeCharacter
  • escapeEscapeCharacter
  • textStandardDecimalSeparator
  • textStandardGroupingSeparator
  • textStandardExponentRep
  • choiceBranchRef - if the element is an alternative of a choice


I think that is the worst case pretty much. Note that all of these could be static, or any subset could be dynamic.

  • No labels