efinnegan closed pull request #86: Adding value of 'bcd' to binaryCalendarRep
URL: https://github.com/apache/incubator-daffodil/pull/86
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git
a/daffodil-core/src/main/scala/org/apache/daffodil/grammar/ElementBaseGrammarMixin.scala
b/daffodil-core/src/main/scala/org/apache/daffodil/grammar/ElementBaseGrammarMixin.scala
index e83e40a50..db1e65aac 100644
---
a/daffodil-core/src/main/scala/org/apache/daffodil/grammar/ElementBaseGrammarMixin.scala
+++
b/daffodil-core/src/main/scala/org/apache/daffodil/grammar/ElementBaseGrammarMixin.scala
@@ -130,6 +130,7 @@ import org.apache.daffodil.schema.annotation.props.NotFound
import org.apache.daffodil.schema.annotation.props.gen.BinaryCalendarRep
import org.apache.daffodil.schema.annotation.props.gen.BinaryFloatRep
import org.apache.daffodil.schema.annotation.props.gen.BinaryNumberRep
+import org.apache.daffodil.schema.annotation.props.gen.CalendarPatternKind
import org.apache.daffodil.schema.annotation.props.gen.LengthKind
import org.apache.daffodil.schema.annotation.props.gen.LengthUnits
import org.apache.daffodil.schema.annotation.props.gen.NilKind
@@ -478,9 +479,9 @@ trait ElementBaseGrammarMixin
case PrimType.DateTime => binaryCalendarRep match {
case BinaryCalendarRep.BinarySeconds => 32
case BinaryCalendarRep.BinaryMilliseconds => 64
- case _ => schemaDefinitionError("Size of binary data '" + primType.name
+ "' with binaryCalendarRep='" + binaryCalendarRep + "' cannot be determined
implicitly.")
+ case _ => schemaDefinitionError("Length of binary data '" +
primType.name + "' with binaryCalendarRep='" + binaryCalendarRep + "' cannot be
determined implicitly.")
}
- case _ => schemaDefinitionError("Size of binary data '" + primType.name +
"' cannot be determined implicitly.")
+ case _ => schemaDefinitionError("Length of binary data '" + primType.name
+ "' cannot be determined implicitly.")
}
/**
@@ -496,8 +497,14 @@ trait ElementBaseGrammarMixin
case LengthKind.Implicit => implicitBinaryLengthInBits
case LengthKind.Explicit if (lengthEv.isConstant) =>
explicitBinaryLengthInBits()
case LengthKind.Explicit => -1 // means must be computed at runtime.
- case LengthKind.Delimited if (binaryNumberRep == BinaryNumberRep.Binary)
=> subsetError("lengthKind='delimited' only supported for packed binary
formats.")
- case LengthKind.Delimited => -1 // only for packed binary data, length
must be computed at runtime.
+ case LengthKind.Delimited => primType match {
+ case PrimType.DateTime | PrimType.Date | PrimType.Time =>
+ if (binaryCalendarRep == BinaryCalendarRep.BinaryMilliseconds ||
binaryCalendarRep == BinaryCalendarRep.BinarySeconds)
+ SDE("lengthKind='delimited' only supported for packed binary
formats.")
+ else -1 // only for packed binary data, length must be computed at
runtime.
+ case _ => if (binaryNumberRep == BinaryNumberRep.Binary)
SDE("lengthKind='delimited' only supported for packed binary formats.")
+ else -1 // only for packed binary data, length must be computed at
runtime.
+ }
case LengthKind.Pattern => schemaDefinitionError("Binary data elements
cannot have lengthKind='pattern'.")
case LengthKind.Prefixed => subsetError("lengthKind='prefixed' not yet
supported.")
case LengthKind.EndOfParent => schemaDefinitionError("Binary data elements
cannot have lengthKind='endOfParent'.")
@@ -652,6 +659,51 @@ trait ElementBaseGrammarMixin
private lazy val zonedTextUnsignedByte = prod("zonedTextUnsignedByte",
textNumberRep == TextNumberRep.Zoned) { ConvertZonedCombinator(this,
stringValue, ConvertZonedUnsignedBytePrim(this)) }
+
+ private lazy val bcdKnownLengthCalendar = prod("bcdKnownLengthCalendar",
binaryCalendarRep == BinaryCalendarRep.Bcd) {
+ bcdDateKnownLength | bcdTimeKnownLength | bcdDateTimeKnownLength
+ }
+ private lazy val bcdRuntimeLengthCalendar = prod("bcdRuntimeLengthCalendar",
binaryCalendarRep == BinaryCalendarRep.Bcd) {
+ bcdDateRuntimeLength | bcdTimeRuntimeLength | bcdDateTimeRuntimeLength
+ }
+ private lazy val bcdDelimitedLengthCalendar =
prod("bcdDelimitedLengthCalendar", binaryCalendarRep == BinaryCalendarRep.Bcd) {
+ bcdDateDelimitedLength | bcdTimeDelimitedLength |
bcdDateTimeDelimitedLength
+ }
+
+ // BCD calendar with known length
+ private lazy val bcdDateKnownLength = prod("bcdDateKnownLength", primType ==
PrimType.Date) {
+ ConvertZonedCombinator(this, new BCDIntegerKnownLength(this,
binaryNumberKnownLengthInBits), ConvertTextDatePrim(this))
+ }
+ private lazy val bcdDateTimeKnownLength = prod("bcdDateTimeKnownLength",
primType == PrimType.DateTime) {
+ ConvertZonedCombinator(this, new BCDIntegerKnownLength(this,
binaryNumberKnownLengthInBits), ConvertTextDateTimePrim(this))
+ }
+ private lazy val bcdTimeKnownLength = prod("bcdTimeKnownLength", primType ==
PrimType.Time) {
+ ConvertZonedCombinator(this, new BCDIntegerKnownLength(this,
binaryNumberKnownLengthInBits), ConvertTextTimePrim(this))
+ }
+
+ // BCD calendar with runtime length
+ private lazy val bcdDateRuntimeLength = prod("bcdDateRuntimeLength",
primType == PrimType.Date) {
+ ConvertZonedCombinator(this, new BCDIntegerRuntimeLength(this),
ConvertTextDatePrim(this))
+ }
+ private lazy val bcdDateTimeRuntimeLength = prod("bcdDateTimeRuntimeLength",
primType == PrimType.DateTime) {
+ ConvertZonedCombinator(this, new BCDIntegerRuntimeLength(this),
ConvertTextDateTimePrim(this))
+ }
+ private lazy val bcdTimeRuntimeLength = prod("bcdTimeRuntimeLength",
primType == PrimType.Time) {
+ ConvertZonedCombinator(this, new BCDIntegerRuntimeLength(this),
ConvertTextTimePrim(this))
+ }
+
+ // BCD calendar with delimited length
+ private lazy val bcdDateDelimitedLength = prod("bcdDateDelimitedLength",
primType == PrimType.Date) {
+ ConvertZonedCombinator(this, new BCDIntegerDelimitedEndOfData(this),
ConvertTextDatePrim(this))
+ }
+ private lazy val bcdDateTimeDelimitedLength =
prod("bcdDateTimeDelimitedLength", primType == PrimType.DateTime) {
+ ConvertZonedCombinator(this, new BCDIntegerDelimitedEndOfData(this),
ConvertTextDateTimePrim(this))
+ }
+ private lazy val bcdTimeDelimitedLength = prod("bcdTimeDelimitedLength",
primType == PrimType.Time) {
+ ConvertZonedCombinator(this, new BCDIntegerDelimitedEndOfData(this),
ConvertTextTimePrim(this))
+ }
+
+
private lazy val textDouble = prod("textDouble", impliedRepresentation ==
Representation.Text) {
standardTextDouble || zonedTextDouble
}
@@ -829,7 +881,19 @@ trait ElementBaseGrammarMixin
case (_, n) => SDE("binary xs:dateTime must be 64 bits when
binaryCalendarRep='binaryMilliseconds'. Length in bits was %s.", n)
}
case (_, BinaryCalendarRep.BinaryMilliseconds) =>
SDE("binaryCalendarRep='binaryMilliseconds' is not allowed with type %s",
primType.name)
- case _ => notYetImplemented("Type %s when representation='binary'
and binaryCalendarRep=%s", primType.name, binaryCalendarRep.toString)
+ case (_, BinaryCalendarRep.Bcd) => {
+ if ((binaryNumberKnownLengthInBits != -1) &&
(binaryNumberKnownLengthInBits % 4) != 0)
+ SDE("The given length (%s bits) must be a multiple of 4 when
using binaryCalendarRep='%s'.", binaryNumberKnownLengthInBits,
binaryCalendarRep)
+ if (calendarPatternKind != CalendarPatternKind.Explicit)
+ SDE("calendarPatternKind must be 'explicit' when
binaryCalendarRep='%s'", binaryCalendarRep)
+
+ (lengthKind, binaryNumberKnownLengthInBits) match {
+ case (LengthKind.Delimited, -1) => bcdDelimitedLengthCalendar
+ case (_, -1) => bcdRuntimeLengthCalendar
+ case (_, _) => bcdKnownLengthCalendar
+ }
+ }
+ case _ => notYetImplemented("Type %s when representation='binary'
and binaryCalendarRep=%s", primType.name, binaryCalendarRep.toString)
}
}
diff --git
a/daffodil-core/src/main/scala/org/apache/daffodil/grammar/primitives/PrimitivesDateTime.scala
b/daffodil-core/src/main/scala/org/apache/daffodil/grammar/primitives/PrimitivesDateTime.scala
index e6f275e6e..bef2ea3ce 100644
---
a/daffodil-core/src/main/scala/org/apache/daffodil/grammar/primitives/PrimitivesDateTime.scala
+++
b/daffodil-core/src/main/scala/org/apache/daffodil/grammar/primitives/PrimitivesDateTime.scala
@@ -23,6 +23,7 @@ import com.ibm.icu.util.Calendar
import com.ibm.icu.util.TimeZone
import com.ibm.icu.util.ULocale
import org.apache.daffodil.dsom.ElementBase
+import org.apache.daffodil.exceptions.Assert
import org.apache.daffodil.grammar.Terminal
import org.apache.daffodil.schema.annotation.props.gen.CalendarCheckPolicy
import org.apache.daffodil.schema.annotation.props.gen.CalendarFirstDayOfWeek
@@ -36,6 +37,8 @@ import org.apache.daffodil.processors.CalendarLanguageEv
import
org.apache.daffodil.processors.parsers.ConvertBinaryCalendarSecMilliParser
import org.apache.daffodil.processors.parsers.ConvertTextCalendarParser
import org.apache.daffodil.processors.parsers.TextCalendarConstants
+import org.apache.daffodil.schema.annotation.props.gen.BinaryCalendarRep
+import org.apache.daffodil.schema.annotation.props.gen.Representation
import scala.Boolean
abstract class ConvertCalendarPrimBase(e: ElementBase, guard: Boolean)
@@ -54,26 +57,6 @@ abstract class ConvertTextCalendarPrimBase(e: ElementBase,
guard: Boolean)
protected def implicitPattern: String
protected def validFormatCharacters: Seq[Char]
- lazy val pattern: String = {
- val p = e.calendarPatternKind match {
- case CalendarPatternKind.Explicit => e.calendarPattern
- case CalendarPatternKind.Implicit => implicitPattern
- }
-
- val escapedText = "(''|'[^']+'|[^a-zA-Z])".r
- val patternNoEscapes = escapedText.replaceAllIn(p, "")
- patternNoEscapes.toSeq.foreach(char =>
- if (!validFormatCharacters.contains(char)) {
- SDE("Character '%s' not allowed in dfdl:calendarPattern for
xs:%s".format(char, xsdType))
- })
-
- if (patternNoEscapes.indexOf("S" *
(TextCalendarConstants.maxFractionalSeconds + 1)) >= 0) {
- SDE("More than %d fractional seconds unsupported in dfdl:calendarPattern
for xs:%s".format(TextCalendarConstants.maxFractionalSeconds, xsdType))
- }
-
- p
- }
-
val firstDay = e.calendarFirstDayOfWeek match {
case CalendarFirstDayOfWeek.Sunday => Calendar.SUNDAY
case CalendarFirstDayOfWeek.Monday => Calendar.MONDAY
@@ -92,13 +75,19 @@ abstract class ConvertTextCalendarPrimBase(e: ElementBase,
guard: Boolean)
}
val TimeZoneRegex = """(UTC)?([+\-])?([01]\d|\d)(:?([0-5]\d))?""".r
- val tzStr = e.calendarTimeZone match {
- case TimeZoneRegex(_, plusOrMinus, hour, _, minute) => {
- val pomStr = if (plusOrMinus == null) "+" else plusOrMinus
- val minStr = if (minute == null) "" else minute
- "GMT%s%s%s".format(pomStr, hour, minStr)
+
+ // Binary calendars with a BinaryCalendarRep of 'bcd' or 'ibm4690Packed'
should ignore the calendarTimeZone option
+ val tzStr = if (e.representation == Representation.Binary &&
e.binaryCalendarRep != BinaryCalendarRep.Packed) {
+ ""
+ } else {
+ e.calendarTimeZone match {
+ case TimeZoneRegex(_, plusOrMinus, hour, _, minute) => {
+ val pomStr = if (plusOrMinus == null) "+" else plusOrMinus
+ val minStr = if (minute == null) "" else minute
+ "GMT%s%s%s".format(pomStr, hour, minStr)
+ }
+ case _ => e.calendarTimeZone
}
- case _ => e.calendarTimeZone
}
val calendarTz: Option[TimeZone] = {
@@ -146,6 +135,43 @@ abstract class ConvertTextCalendarPrimBase(e: ElementBase,
guard: Boolean)
cev
}
+ lazy val pattern: String = {
+ val p = e.calendarPatternKind match {
+ case CalendarPatternKind.Explicit => e.calendarPattern
+ case CalendarPatternKind.Implicit => e.representation match {
+ case Representation.Binary => Assert.impossibleCase
+ case _ => implicitPattern
+ }
+ }
+
+ val patternToCheck : String = if (e.representation == Representation.Text)
{
+ val escapedText = "(''|'[^']+'|[^a-zA-Z])".r
+ escapedText.replaceAllIn(p, "")
+ } else {
+ p
+ }
+ patternToCheck.toSeq.foreach(char =>
+ if (!validFormatCharacters.contains(char)) {
+ if (e.representation == Representation.Binary)
+ SDE("Character '%s' not allowed in dfdl:calendarPattern for xs:%s
with a binaryCalendarRep of '%s'".format(char, xsdType, e.binaryCalendarRep))
+ else
+ SDE("Character '%s' not allowed in dfdl:calendarPattern for
xs:%s".format(char, xsdType))
+ })
+
+ if (e.representation == Representation.Binary) {
+ // For binary calendars, calendarPattern can contain only characters
that always result in digits,
+ // so more than 2 'e' or 'M' in a row aren't valid as they result in
text
+ if (patternToCheck.contains("eee") || patternToCheck.contains("MMM")) {
+ SDE("dfdl:calendarPattern must only contain characters that result in
the presentation of digits for xs:%s with a binaryCalendarRep of
'%s'".format(xsdType, e.binaryCalendarRep))
+ }
+ }
+ if (patternToCheck.indexOf("S" *
(TextCalendarConstants.maxFractionalSeconds + 1)) >= 0) {
+ SDE("More than %d fractional seconds unsupported in dfdl:calendarPattern
for xs:%s".format(TextCalendarConstants.maxFractionalSeconds, xsdType))
+ }
+
+ p
+ }
+
override lazy val parser = new ConvertTextCalendarParser(
e.elementRuntimeData,
xsdType,
@@ -167,7 +193,12 @@ case class ConvertTextDatePrim(e: ElementBase) extends
ConvertTextCalendarPrimBa
protected override val prettyType = "Date"
protected override val infosetPattern = "uuuu-MM-ddxxx"
protected override val implicitPattern = "uuuu-MM-dd"
- protected override val validFormatCharacters = "dDeEFGMuwWyXxYzZ".toSeq
+ protected override val validFormatCharacters =
+ if (e.representation == Representation.Binary) {
+ "dDeFMuwWyY".toSeq
+ } else {
+ "dDeEFGMuwWyXxYzZ".toSeq
+ }
}
case class ConvertTextTimePrim(e: ElementBase) extends
ConvertTextCalendarPrimBase(e, true) {
@@ -175,7 +206,12 @@ case class ConvertTextTimePrim(e: ElementBase) extends
ConvertTextCalendarPrimBa
protected override val prettyType = "Time"
protected override val infosetPattern = "HH:mm:ss.SSSSSSxxx"
protected override val implicitPattern = "HH:mm:ssZ"
- protected override val validFormatCharacters = "ahHkKmsSvVzXxZ".toSeq
+ protected override val validFormatCharacters =
+ if (e.representation == Representation.Binary) {
+ "hHkKmsS".toSeq
+ } else {
+ "ahHkKmsSvVzXxZ".toSeq
+ }
}
case class ConvertTextDateTimePrim(e: ElementBase) extends
ConvertTextCalendarPrimBase(e, true) {
@@ -183,12 +219,12 @@ case class ConvertTextDateTimePrim(e: ElementBase)
extends ConvertTextCalendarPr
protected override val prettyType = "DateTime"
protected override val infosetPattern = "uuuu-MM-dd'T'HH:mm:ss.SSSSSSxxx"
protected override val implicitPattern = "uuuu-MM-dd'T'HH:mm:ss"
- protected override val validFormatCharacters =
"adDeEFGhHkKmMsSuwWvVyXxYzZ".toSeq
-}
-
-abstract class ConvertBinaryCalendarPrimBase(e: ElementBase, guard: Boolean,
lengthInBits: Long)
- extends ConvertCalendarPrimBase(e, guard) {
-
+ protected override val validFormatCharacters =
+ if (e.representation == Representation.Binary) {
+ "dDeFhHkKmMsSuwWyY".toSeq
+ } else {
+ "adDeEFGhHkKmMsSuwWvVyXxYzZ".toSeq
+ }
}
case class ConvertBinaryDateTimeSecMilliPrim(e: ElementBase, lengthInBits:
Long) extends ConvertCalendarPrimBase(e, true) {
diff --git
a/daffodil-runtime1-unparser/src/main/scala/org/apache/daffodil/processors/unparsers/ConvertBinaryCalendarUnparser.scala
b/daffodil-runtime1-unparser/src/main/scala/org/apache/daffodil/processors/unparsers/ConvertBinaryCalendarUnparser.scala
index f948c2286..aef452c66 100644
---
a/daffodil-runtime1-unparser/src/main/scala/org/apache/daffodil/processors/unparsers/ConvertBinaryCalendarUnparser.scala
+++
b/daffodil-runtime1-unparser/src/main/scala/org/apache/daffodil/processors/unparsers/ConvertBinaryCalendarUnparser.scala
@@ -51,7 +51,7 @@ case class ConvertBinaryCalendarSecMilliUnparser(
val calValue = node.dataValue match {
case dc: DFDLCalendar => dc.calendar
- case x => Assert.invariantFailed("ConvertTextCalendar received
unsupported type. %s of type %s.".format(x, Misc.getNameFromClass(x)))
+ case x => Assert.invariantFailed("ConvertBinaryCalendar received
unsupported type. %s of type %s.".format(x, Misc.getNameFromClass(x)))
}
// Adjust the time based on time zone - if a time zone wasn't specified,
Calendar will assume the default
diff --git
a/daffodil-runtime1-unparser/src/main/scala/org/apache/daffodil/processors/unparsers/PackedBinaryUnparserTraits.scala
b/daffodil-runtime1-unparser/src/main/scala/org/apache/daffodil/processors/unparsers/PackedBinaryUnparserTraits.scala
index 6bedb5824..810f1ae15 100644
---
a/daffodil-runtime1-unparser/src/main/scala/org/apache/daffodil/processors/unparsers/PackedBinaryUnparserTraits.scala
+++
b/daffodil-runtime1-unparser/src/main/scala/org/apache/daffodil/processors/unparsers/PackedBinaryUnparserTraits.scala
@@ -26,6 +26,7 @@ import org.apache.daffodil.exceptions.Assert
import org.apache.daffodil.io.DataOutputStream
import org.apache.daffodil.io.FormatInfo
import org.apache.daffodil.processors.Evaluatable
+import org.apache.daffodil.dpath.NodeInfo
trait PackedBinaryConversion {
def fromBigInteger(bigInt: JBigInteger, nBits: Int): Array[Byte]
@@ -45,7 +46,18 @@ abstract class PackedBinaryBaseUnparser(
override def unparse(state: UState): Unit = {
val nBits = getBitLength(state)
val node = state.currentInfosetNode.asSimple
- val value = node.dataValue.asInstanceOf[JNumber]
+
+ // Packed decimal calendars use the convert combinator which sets the
string value of the calendar
+ // - using dataValue would give the Calendar value rather than that
string. Since the Calendar value
+ // cannot be cast as a JNumber we need to use dataValueAsString and
convert it to a JBigInteger.
+ // With packed numbers, dataValue is already a number so just use that.
+ val nodeValue =
+ node.erd.optPrimType.get match {
+ case NodeInfo.Date | NodeInfo.DateTime | NodeInfo.Time => new
JBigInteger(node.dataValueAsString)
+ case _ => node.dataValue
+ }
+
+ val value = nodeValue.asInstanceOf[JNumber]
val dos = state.dataOutputStream
val res = putNumber(dos, value, nBits, state)
diff --git
a/daffodil-test/src/test/resources/org/apache/daffodil/section05/simple_types/SimpleTypes.tdml
b/daffodil-test/src/test/resources/org/apache/daffodil/section05/simple_types/SimpleTypes.tdml
index 8d215cd75..61cf5698b 100644
---
a/daffodil-test/src/test/resources/org/apache/daffodil/section05/simple_types/SimpleTypes.tdml
+++
b/daffodil-test/src/test/resources/org/apache/daffodil/section05/simple_types/SimpleTypes.tdml
@@ -263,9 +263,68 @@
dfdl:binaryCalendarRep="binarySeconds"
dfdl:binaryCalendarEpoch="2000-1-1T00:00"/>
<xs:element name="dateTimeBin11" type="xs:dateTime"
dfdl:lengthKind="implicit" dfdl:lengthUnits="bytes"
dfdl:binaryCalendarRep="binarySeconds"
dfdl:binaryCalendarEpoch="01-01-2000T00:00:00"/>
+ <xs:element name="dateTimeBin12" type="xs:dateTime"
dfdl:lengthKind="delimited" dfdl:terminator=";"
+ dfdl:binaryCalendarRep="binarySeconds"
dfdl:binaryCalendarEpoch="1977-01-01T00:00:07"/>
+
+ <xs:element name="dateBinBCD" type="xs:date" dfdl:calendarPattern="MMddyy"
dfdl:calendarPatternKind="explicit"
+ dfdl:lengthKind="explicit" dfdl:length="{ 3 }" dfdl:lengthUnits="bytes"
dfdl:binaryCalendarRep="bcd" />
+ <xs:element name="dateBinBCD2" type="xs:date"
dfdl:calendarPattern="MMddyyyy" dfdl:calendarPatternKind="explicit"
+ dfdl:lengthKind="explicit" dfdl:length="{ 4 }" dfdl:lengthUnits="bytes"
dfdl:binaryCalendarRep="bcd"/>
+ <xs:element name="dateBinBCD3" type="xs:date"
dfdl:calendarPattern="MM-dd-yy" dfdl:calendarPatternKind="explicit"
+ dfdl:lengthKind="explicit" dfdl:length="{ 3 }" dfdl:lengthUnits="bytes"
dfdl:binaryCalendarRep="bcd"/>
+ <xs:element name="dateBinBCD4" type="xs:date"
dfdl:calendarPattern="MMddyy" dfdl:calendarPatternKind="explicit"
+ dfdl:lengthKind="explicit" dfdl:length="{ 7 }" dfdl:lengthUnits="bits"
dfdl:binaryCalendarRep="bcd"/>
+ <xs:element name="dateBinBCD5" type="xs:date"
dfdl:calendarPattern="MMEEyy" dfdl:calendarPatternKind="explicit"
+ dfdl:lengthKind="explicit" dfdl:length="{ 3 }" dfdl:lengthUnits="bytes"
dfdl:binaryCalendarRep="bcd"/>
+ <xs:element name="dateBinBCD6" type="xs:date"
dfdl:calendarPattern="MMddyyeee" dfdl:calendarPatternKind="explicit"
+ dfdl:lengthKind="explicit" dfdl:length="{ 3 }" dfdl:lengthUnits="bytes"
dfdl:binaryCalendarRep="bcd"/>
+ <xs:element name="dateBinBCD7" type="xs:date" dfdl:calendarPattern="eMyy"
dfdl:calendarPatternKind="explicit"
+ dfdl:lengthKind="explicit" dfdl:length="{ 16 }" dfdl:lengthUnits="bits"
dfdl:binaryCalendarRep="bcd"/>
+
+ <xs:element name="timeBinBCD" type="xs:time" dfdl:calendarPattern="HHmmss"
dfdl:calendarPatternKind="explicit"
+ dfdl:lengthKind="explicit" dfdl:length="{ 3 }" dfdl:lengthUnits="bytes"
dfdl:binaryCalendarRep="bcd"/>
+ <xs:element name="timeBinBCD2" type="xs:time"
dfdl:calendarPattern="HHmmssSSSS" dfdl:calendarPatternKind="explicit"
+ dfdl:lengthKind="explicit" dfdl:length="{ 5 }" dfdl:lengthUnits="bytes"
dfdl:binaryCalendarRep="bcd"/>
+ <xs:element name="timeBinBCD3" type="xs:time"
dfdl:calendarPatternKind="implicit"
+ dfdl:lengthKind="explicit" dfdl:length="{ 5 }" dfdl:lengthUnits="bytes"
dfdl:binaryCalendarRep="bcd"/>
+ <xs:element name="timeBinBCD4" type="xs:time"
dfdl:calendarPattern="HHmmss" dfdl:calendarPatternKind="explicit"
+ dfdl:lengthKind="implicit" dfdl:binaryCalendarRep="bcd"/>
+ <xs:element name="timeBinBCD5" type="xs:time"
dfdl:calendarPattern="HHmmss" dfdl:calendarPatternKind="explicit"
+ dfdl:lengthKind="delimited" dfdl:terminator=";"
dfdl:binaryCalendarRep="bcd" dfdl:encoding="ISO-8859-1"/>
+
+ <xs:element name="timeBinBCD6">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="length" type="xs:int" dfdl:representation="binary"
+ dfdl:lengthKind="explicit" dfdl:length="{ 1 }"
dfdl:lengthUnits="bytes" />
+ <xs:element name="time" type="xs:time" dfdl:calendarPattern="HHmmss"
dfdl:calendarPatternKind="explicit"
+ dfdl:lengthKind="explicit" dfdl:length="{ ../ex:length }"
dfdl:lengthUnits="bytes" dfdl:binaryCalendarRep="bcd" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="dateTimeBinBCD" type="xs:dateTime"
dfdl:calendarPattern="MMddyyyyHHmmss" dfdl:calendarPatternKind="explicit"
+ dfdl:lengthKind="explicit" dfdl:length="{ 7 }" dfdl:lengthUnits="bytes"
dfdl:binaryCalendarRep="bcd"/>
+ <xs:element name="dateTimeBinBCD2" type="xs:dateTime"
dfdl:calendarPattern="MMddyyyyhhmmss" dfdl:calendarPatternKind="explicit"
+ dfdl:lengthKind="implicit" dfdl:lengthUnits="bytes"
dfdl:binaryCalendarRep="bcd"/>
+ <xs:element name="dateTimeBinBCD3" type="xs:dateTime"
dfdl:calendarPattern="MMddyyyyhhmmss" dfdl:calendarPatternKind="explicit"
+ dfdl:lengthKind="explicit" dfdl:length="{ 7 }" dfdl:lengthUnits="bytes"
dfdl:binaryCalendarRep="bcd"/>
+
+ <xs:element name="dateTimeBinBCD4">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="num1" type="xs:decimal" dfdl:encoding="ISO-8859-1"
dfdl:representation="binary" dfdl:binaryNumberRep="bcd"
+ dfdl:lengthKind="delimited" dfdl:terminator=";"
dfdl:binaryDecimalVirtualPoint="0"/>
+ <xs:element name="datetime" type="xs:dateTime"
dfdl:calendarPattern="MMddyyyyHHmmss" dfdl:encoding="ISO-8859-1"
+ dfdl:calendarPatternKind="explicit" dfdl:binaryCalendarRep="bcd"
dfdl:lengthKind="delimited" dfdl:terminator=";"/>
+ <xs:element name="num2" type="xs:decimal" dfdl:encoding="ISO-8859-1"
dfdl:representation="binary" dfdl:binaryNumberRep="bcd"
+ dfdl:lengthKind="delimited" dfdl:terminator=";"
dfdl:binaryDecimalVirtualPoint="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
- <xs:element name="dateBin2" type="xs:date" dfdl:lengthKind="explicit"
dfdl:length="{ 4 }"
- dfdl:lengthUnits="bytes" dfdl:binaryCalendarRep="binarySeconds"
dfdl:binaryCalendarEpoch="1970-01-01T00:00:00+00:00"/>
+ <xs:element name="dateBinInvalid" type="xs:date"
dfdl:calendarPattern="yyyy.MM.dd" dfdl:calendarPatternKind="explicit"
dfdl:lengthKind="explicit"
+ dfdl:length="{ 4 }" dfdl:lengthUnits="bytes"
dfdl:binaryCalendarRep="binarySeconds"
dfdl:binaryCalendarEpoch="1970-01-01T00:00:00+00:00"/>
</tdml:defineSchema>
@@ -1850,7 +1909,7 @@
<tdml:document><tdml:documentPart type="byte">ff ff fb ff ff ff
fb</tdml:documentPart></tdml:document>
<tdml:errors>
<tdml:error>Schema Definition Error</tdml:error>
- <tdml:error>Size of binary data 'nonNegativeInteger' cannot be
determined implicitly.</tdml:error>
+ <tdml:error>Length of binary data 'nonNegativeInteger' cannot be
determined implicitly.</tdml:error>
</tdml:errors>
</tdml:parserTestCase>
@@ -1996,8 +2055,7 @@
</tdml:parserTestCase>
<tdml:parserTestCase name="dateTimeBin2" root="dateTimeBin2"
- model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R"
- roundTrip="false">
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R" >
<tdml:document>
<tdml:documentPart type="bits">00000000 00000000 00000000
00111101</tdml:documentPart>
@@ -2008,8 +2066,7 @@
</tdml:parserTestCase>
<tdml:parserTestCase name="dateTimeBin3" root="dateTimeBin3"
- model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R"
- roundTrip="false">
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R" >
<tdml:document>
<tdml:documentPart type="bits">00000000 00000000 00000000
00111101</tdml:documentPart>
@@ -2124,8 +2181,7 @@
</tdml:parserTestCase>
<tdml:parserTestCase name="dateTimeBin11" root="dateTimeBin6"
- model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R"
- roundTrip="true">
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R" >
<tdml:document>
<tdml:documentPart type="bits">01111111 11111111 11111111 11111111
11111111 11111111 11111111 11111111</tdml:documentPart>
@@ -2156,8 +2212,7 @@
<!-- xs:dateTime with binaryCalendarRep='binaryMillieconds' - expecting an
error for being 1 milisecond
greater than the maximum date allowed -->
<tdml:parserTestCase name="dateTimeBin13" root="dateTimeBin6"
- model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R"
- roundTrip="true">
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R" >
<tdml:document>
<tdml:documentPart type="bits">00000010 10001101 01000110 11111011
11111100 10101110 01100010 11101001</tdml:documentPart>
@@ -2187,8 +2242,7 @@
<!-- xs:dateTime with binaryCalendarRep='binaryMillieconds' - expecting an
error for being 1 milisecond
less than the minimum date allowed -->
<tdml:parserTestCase name="dateTimeBin15" root="dateTimeBin6"
- model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R"
- roundTrip="true">
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R" >
<tdml:document>
<tdml:documentPart type="bits">11111101 01110001 00110111 10110011
11111100 10101110 01100010 11100111</tdml:documentPart>
@@ -2228,8 +2282,7 @@
</tdml:parserTestCase>
<tdml:parserTestCase name="dateTimeBin18" root="dateTimeBin10"
- model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R"
- roundTrip="false">
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R" >
<tdml:document>
<tdml:documentPart type="bits">00000000 00000000 00000000
00111101</tdml:documentPart>
@@ -2240,8 +2293,7 @@
</tdml:parserTestCase>
<tdml:parserTestCase name="dateTimeBin19" root="dateTimeBin11"
- model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R"
- roundTrip="false">
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R" >
<tdml:document>
<tdml:documentPart type="bits">00000000 00000000 00000000
00111101</tdml:documentPart>
@@ -2251,10 +2303,276 @@
</tdml:errors>
</tdml:parserTestCase>
- <tdml:parserTestCase name="dateBin2" root="dateBin2"
+ <tdml:parserTestCase name="dateTimeBin20" root="dateTimeBin12"
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R" >
+
+ <tdml:document>
+ <tdml:documentPart type="bits">00000000 00000000 00000000
00111101</tdml:documentPart>
+ </tdml:document>
+ <tdml:errors>
+ <tdml:error>Schema Definition Error: lengthKind='delimited' only
supported for packed binary formats.</tdml:error>
+ </tdml:errors>
+ </tdml:parserTestCase>
+
+ <tdml:parserTestCase name="dateBinBCD" root="dateBinBCD"
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R"
+ roundTrip="true">
+
+ <tdml:document>
+ <tdml:documentPart type="byte">12 14 23</tdml:documentPart>
+ </tdml:document>
+ <tdml:infoset>
+ <tdml:dfdlInfoset>
+ <dateBinBCD>2023-12-14</dateBinBCD>
+ </tdml:dfdlInfoset>
+ </tdml:infoset>
+ </tdml:parserTestCase>
+
+ <tdml:parserTestCase name="dateBinBCD2" root="dateBinBCD2"
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R"
+ roundTrip="true">
+
+ <tdml:document>
+ <tdml:documentPart type="byte">12 14 20 23</tdml:documentPart>
+ </tdml:document>
+ <tdml:infoset>
+ <tdml:dfdlInfoset>
+ <dateBinBCD2>2023-12-14</dateBinBCD2>
+ </tdml:dfdlInfoset>
+ </tdml:infoset>
+ </tdml:parserTestCase>
+
+ <tdml:parserTestCase name="dateBinBCD3" root="dateBinBCD"
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R" >
+
+ <tdml:document>
+ <tdml:documentPart type="byte">12 0F 23</tdml:documentPart>
+ </tdml:document>
+ <tdml:errors>
+ <tdml:error>Parse Error</tdml:error>
+ <tdml:error>Invalid low nibble</tdml:error>
+ </tdml:errors>
+ </tdml:parserTestCase>
+
+ <tdml:parserTestCase name="dateBinBCD4" root="dateBinBCD3"
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R" >
+
+ <tdml:document>
+ <tdml:documentPart type="byte">08 17 48</tdml:documentPart>
+ </tdml:document>
+ <tdml:errors>
+ <tdml:error>Schema Definition Error</tdml:error>
+ <tdml:error>Character '-' not allowed in dfdl:calendarPattern for
xs:date with a binaryCalendarRep of 'bcd'</tdml:error>
+ </tdml:errors>
+ </tdml:parserTestCase>
+
+ <tdml:parserTestCase name="dateBinBCD5" root="dateBinBCD4"
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R" >
+
+ <tdml:document>
+ <tdml:documentPart type="bits">0000000</tdml:documentPart>
+ </tdml:document>
+ <tdml:errors>
+ <tdml:error>Schema Definition Error</tdml:error>
+ <tdml:error>The given length (7 bits) must be a multiple of 4 when using
binaryCalendarRep='bcd'</tdml:error>
+ </tdml:errors>
+ </tdml:parserTestCase>
+
+ <tdml:parserTestCase name="dateBinBCD6" root="dateBinBCD"
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R"
+ roundTrip="true">
+
+ <tdml:document>
+ <tdml:documentPart type="bits">0001 0010 0010 0111 1001
1001</tdml:documentPart>
+ </tdml:document>
+ <tdml:infoset>
+ <tdml:dfdlInfoset>
+ <dateBinBCD>1999-12-27</dateBinBCD>
+ </tdml:dfdlInfoset>
+ </tdml:infoset>
+ </tdml:parserTestCase>
+
+ <tdml:parserTestCase name="dateBinBCD7" root="dateBinBCD5"
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R" >
+
+ <tdml:document>
+ <tdml:documentPart type="byte">08 17 48</tdml:documentPart>
+ </tdml:document>
+ <tdml:errors>
+ <tdml:error>Schema Definition Error</tdml:error>
+ <tdml:error>Character 'E' not allowed in dfdl:calendarPattern for
xs:date with a binaryCalendarRep of 'bcd'</tdml:error>
+ </tdml:errors>
+ </tdml:parserTestCase>
+
+ <tdml:parserTestCase name="dateBinBCD8" root="dateBinBCD6"
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R" >
+
+ <tdml:document>
+ <tdml:documentPart type="byte">08 17 48</tdml:documentPart>
+ </tdml:document>
+ <tdml:errors>
+ <tdml:error>Schema Definition Error</tdml:error>
+ <tdml:error>dfdl:calendarPattern must only contain characters that
result in the presentation of digits for xs:date with a binaryCalendarRep of
'bcd'</tdml:error>
+ </tdml:errors>
+ </tdml:parserTestCase>
+
+ <tdml:parserTestCase name="dateBinBCD9" root="dateBinBCD7"
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R" >
+
+ <tdml:document>
+ <tdml:documentPart type="byte">38 18</tdml:documentPart>
+ </tdml:document>
+ <tdml:infoset>
+ <tdml:dfdlInfoset>
+ <dateBinBCD7>2018-08-07</dateBinBCD7>
+ </tdml:dfdlInfoset>
+ </tdml:infoset>
+ </tdml:parserTestCase>
+
+ <tdml:parserTestCase name="timeBinBCD" root="timeBinBCD"
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R"
+ roundTrip="true">
+
+ <tdml:document>
+ <tdml:documentPart type="byte">18 56 03</tdml:documentPart>
+ </tdml:document>
+ <tdml:infoset>
+ <tdml:dfdlInfoset>
+ <timeBinBCD>18:56:03.000000</timeBinBCD>
+ </tdml:dfdlInfoset>
+ </tdml:infoset>
+ </tdml:parserTestCase>
+
+ <tdml:parserTestCase name="timeBinBCD2" root="timeBinBCD2"
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R"
+ roundTrip="twoPass">
+
+ <tdml:document>
+ <tdml:documentPart type="byte">01 45 00 99 87</tdml:documentPart>
+ </tdml:document>
+ <tdml:infoset>
+ <tdml:dfdlInfoset>
+ <timeBinBCD2>01:45:00.998000</timeBinBCD2>
+ </tdml:dfdlInfoset>
+ </tdml:infoset>
+ </tdml:parserTestCase>
+
+ <tdml:parserTestCase name="timeBinBCD3" root="timeBinBCD3"
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R" >
+
+ <tdml:document>
+ <tdml:documentPart type="byte">01 45 00 99 87</tdml:documentPart>
+ </tdml:document>
+ <tdml:errors>
+ <tdml:error>Schema Definition Error</tdml:error>
+ <tdml:error>calendarPatternKind must be 'explicit' when
binaryCalendarRep='bcd'</tdml:error>
+ </tdml:errors>
+ </tdml:parserTestCase>
+
+ <tdml:parserTestCase name="timeBinBCD4" root="timeBinBCD4"
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R" >
+
+ <tdml:document>
+ <tdml:documentPart type="byte">18 56 03</tdml:documentPart>
+ </tdml:document>
+ <tdml:errors>
+ <tdml:error>Schema Definition Error</tdml:error>
+ <tdml:error>Length of binary data 'Time' cannot be determined
implicitly</tdml:error>
+ </tdml:errors>
+ </tdml:parserTestCase>
+
+ <tdml:parserTestCase name="timeBinBCD5" root="timeBinBCD5"
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R"
+ roundTrip="true">
+
+ <tdml:document>
+ <tdml:documentPart type="byte">18 56 03 3B</tdml:documentPart>
+ </tdml:document>
+ <tdml:infoset>
+ <tdml:dfdlInfoset>
+ <timeBinBCD5>18:56:03.000000</timeBinBCD5>
+ </tdml:dfdlInfoset>
+ </tdml:infoset>
+ </tdml:parserTestCase>
+
+ <tdml:parserTestCase name="timeBinBCD6" root="timeBinBCD6"
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R"
+ roundTrip="true">
+
+ <tdml:document>
+ <tdml:documentPart type="byte">03 18 56 03</tdml:documentPart>
+ </tdml:document>
+ <tdml:infoset>
+ <tdml:dfdlInfoset>
+ <timeBinBCD6>
+ <length>3</length>
+ <time>18:56:03.000000</time>
+ </timeBinBCD6>
+ </tdml:dfdlInfoset>
+ </tdml:infoset>
+ </tdml:parserTestCase>
+
+ <tdml:parserTestCase name="dateTimeBinBCD" root="dateTimeBinBCD"
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R"
+ roundTrip="true">
+
+ <tdml:document>
+ <tdml:documentPart type="byte">06 14 20 04 18 56 03</tdml:documentPart>
+ </tdml:document>
+ <tdml:infoset>
+ <tdml:dfdlInfoset>
+ <dateTimeBinBCD>2004-06-14T18:56:03.000000</dateTimeBinBCD>
+ </tdml:dfdlInfoset>
+ </tdml:infoset>
+ </tdml:parserTestCase>
+
+ <tdml:parserTestCase name="dateTimeBinBCD2" root="dateTimeBinBCD2"
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R" >
+
+ <tdml:document>
+ <tdml:documentPart type="byte">01 45 00 99 87</tdml:documentPart>
+ </tdml:document>
+ <tdml:errors>
+ <tdml:error>Schema Definition Error</tdml:error>
+ <tdml:error>Length of binary data 'DateTime' with
binaryCalendarRep='bcd' cannot be determined implicitly</tdml:error>
+ </tdml:errors>
+ </tdml:parserTestCase>
+
+ <tdml:parserTestCase name="dateTimeBinBCD3" root="dateTimeBinBCD3"
model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R"
roundTrip="false">
+ <tdml:document>
+ <tdml:documentPart type="byte">06 14 20 04 18 56 03</tdml:documentPart>
+ </tdml:document>
+ <tdml:infoset>
+ <tdml:dfdlInfoset>
+ <dateTimeBinBCD3>2004-06-14T18:56:03.000000</dateTimeBinBCD3>
+ </tdml:dfdlInfoset>
+ </tdml:infoset>
+ </tdml:parserTestCase>
+
+ <tdml:parserTestCase name="dateTimeBinBCD4" root="dateTimeBinBCD4"
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R"
+ roundTrip="true">
+
+ <tdml:document>
+ <tdml:documentPart type="byte">03 3B 06 14 20 04 18 56 03 3B 19
3B</tdml:documentPart>
+ </tdml:document>
+ <tdml:infoset>
+ <tdml:dfdlInfoset>
+ <dateTimeBinBCD4>
+ <num1>3</num1>
+ <datetime>2004-06-14T18:56:03.000000</datetime>
+ <num2>19</num2>
+ </dateTimeBinBCD4>
+ </tdml:dfdlInfoset>
+ </tdml:infoset>
+ </tdml:parserTestCase>
+
+ <tdml:parserTestCase name="dateBinInvalid" root="dateBinInvalid"
+ model="SimpleTypes-binary" description="Section 5 Schema types-dateTime -
DFDL-5-016R" >
+
<tdml:document>
<tdml:documentPart type="bits">0000 0000 0011 1101</tdml:documentPart>
</tdml:document>
@@ -2427,7 +2745,7 @@
<tdml:documentPart type="byte">00 00 00 01</tdml:documentPart>
</tdml:document>
<tdml:errors>
- <tdml:error>Schema Definition Error: Size of binary data 'decimal'
cannot be determined implicitly.</tdml:error>
+ <tdml:error>Schema Definition Error: Length of binary data 'decimal'
cannot be determined implicitly.</tdml:error>
</tdml:errors>
</tdml:parserTestCase>
@@ -3282,7 +3600,7 @@
</tdml:document>
<tdml:errors>
<tdml:error>Schema Definition Error</tdml:error>
- <tdml:error>Size of binary data 'integer' cannot be determined
implicitly</tdml:error>
+ <tdml:error>Length of binary data 'integer' cannot be determined
implicitly</tdml:error>
</tdml:errors>
</tdml:parserTestCase>
@@ -3299,7 +3617,7 @@
</tdml:document>
<tdml:errors>
<tdml:error>Schema Definition Error</tdml:error>
- <tdml:error>Size of binary data 'integer' cannot be determined
implicitly</tdml:error>
+ <tdml:error>Length of binary data 'integer' cannot be determined
implicitly</tdml:error>
</tdml:errors>
</tdml:parserTestCase>
diff --git
a/daffodil-test/src/test/resources/org/apache/daffodil/section12/lengthKind/DelimitedTests.tdml
b/daffodil-test/src/test/resources/org/apache/daffodil/section12/lengthKind/DelimitedTests.tdml
index 6b5019ec5..682646bd5 100644
---
a/daffodil-test/src/test/resources/org/apache/daffodil/section12/lengthKind/DelimitedTests.tdml
+++
b/daffodil-test/src/test/resources/org/apache/daffodil/section12/lengthKind/DelimitedTests.tdml
@@ -1098,7 +1098,7 @@ C</MessageHeaders>
</tdml:document>
<tdml:errors>
<tdml:error>Schema Definition Error</tdml:error>
- <tdml:error>Subset lengthKind='delimited' only supported for packed
binary formats.</tdml:error>
+ <tdml:error>lengthKind='delimited' only supported for packed binary
formats.</tdml:error>
</tdml:errors>
</tdml:parserTestCase>
diff --git
a/daffodil-test/src/test/scala/org/apache/daffodil/section05/simple_types/TestSimpleTypes.scala
b/daffodil-test/src/test/scala/org/apache/daffodil/section05/simple_types/TestSimpleTypes.scala
index a87831393..c5a0ed44b 100644
---
a/daffodil-test/src/test/scala/org/apache/daffodil/section05/simple_types/TestSimpleTypes.scala
+++
b/daffodil-test/src/test/scala/org/apache/daffodil/section05/simple_types/TestSimpleTypes.scala
@@ -189,7 +189,27 @@ class TestSimpleTypes {
@Test def test_dateTimeBin17() { runner.runOneTest("dateTimeBin17") }
@Test def test_dateTimeBin18() { runner.runOneTest("dateTimeBin18") }
@Test def test_dateTimeBin19() { runner.runOneTest("dateTimeBin19") }
- @Test def test_dateBin2() { runner.runOneTest("dateBin2") }
+ @Test def test_dateTimeBin20() { runner.runOneTest("dateTimeBin20") }
+ @Test def test_dateBinBCD() { runner.runOneTest("dateBinBCD") }
+ @Test def test_dateBinBCD2() { runner.runOneTest("dateBinBCD2") }
+ @Test def test_dateBinBCD3() { runner.runOneTest("dateBinBCD3") }
+ @Test def test_dateBinBCD4() { runner.runOneTest("dateBinBCD4") }
+ @Test def test_dateBinBCD5() { runner.runOneTest("dateBinBCD5") }
+ @Test def test_dateBinBCD6() { runner.runOneTest("dateBinBCD6") }
+ @Test def test_dateBinBCD7() { runner.runOneTest("dateBinBCD7") }
+ @Test def test_dateBinBCD8() { runner.runOneTest("dateBinBCD8") }
+ @Test def test_dateBinBCD9() { runner.runOneTest("dateBinBCD9") }
+ @Test def test_timeBinBCD() { runner.runOneTest("timeBinBCD") }
+ @Test def test_timeBinBCD2() { runner.runOneTest("timeBinBCD2") }
+ @Test def test_timeBinBCD3() { runner.runOneTest("timeBinBCD3") }
+ @Test def test_timeBinBCD4() { runner.runOneTest("timeBinBCD4") }
+ @Test def test_timeBinBCD5() { runner.runOneTest("timeBinBCD5") }
+ @Test def test_timeBinBCD6() { runner.runOneTest("timeBinBCD6") }
+ @Test def test_dateTimeBinBCD() { runner.runOneTest("dateTimeBinBCD") }
+ @Test def test_dateTimeBinBCD2() { runner.runOneTest("dateTimeBinBCD2") }
+ @Test def test_dateTimeBinBCD3() { runner.runOneTest("dateTimeBinBCD3") }
+ @Test def test_dateTimeBinBCD4() { runner.runOneTest("dateTimeBinBCD4") }
+ @Test def test_dateBinInvalid() { runner.runOneTest("dateBinInvalid") }
@Test def test_dateTimeImplicitPattern() {
runner.runOneTest("dateTimeImplicitPattern") }
@Test def test_dateTimeImplicitPatternFail() {
runner.runOneTest("dateTimeImplicitPatternFail") }
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services