CII-DT-097: Invalid CII date with format 102
The format-102 predicate examines the digit representation of a CII date. Its regular expression requires four year digits, a month from 01 through 12 and a day from 01 through 31, with optional surrounding whitespace. It is not a complete calendar-validity algorithm: the expression alone cannot reject every impossible day-month combination. The test value 20261340 fails both month and day ranges; 20261103 matches.
Source predicates and fields
CII en16931 evaluates //udt:DateTimeString[@format = '102'] and checks the selected field condition, including the alternatives in the predicate; the referenced elements are ..
context: //udt:DateTimeString[@format = '102']
test: matches(.,'^\s*(\d{4})(1[0-2]|0[1-9]){1}(3[01]|[12][0-9]|0[1-9]){1}\s*$')The controlled example
.//udt:DateTimeString : 20261340 → 20261103
2026134020261103Co-occurrence in our mutation corpus
In the 1,338 stored synthetic mutations, CII-DT-097 appeared in 5 runs (cii/en16931 1, cii/xrechnung 4). The same runs also produced BR-TMP-7: 4; PEPPOL-EN16931-R008: 4; BR-03: 2; BR-30: 1.
Synthetic design, cohorts and count definitions
Separate round-7 synthetic pair, other codes: PEPPOL-EN16931-R008
Engine diagnostic and report location
[CII-DT-097] - Date time string with format attribute 102 shall be YYYYMMDD.
/*:CrossIndustryInvoice[namespace-uri()='urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100'][1]/*:ExchangedDocument[namespace-uri()='urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100'][1]/*:IssueDateTime[namespace-uri()='urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100'][1]/*:DateTimeString[namespace-uri()='urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100'][1]