Source: https://xsdhub.com/factur-x-rules/cii-dt-097

English · FrançaisCII-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

20261340

20261103

Failing fragment · Passing fragment



Co-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]



Factur-X 1.09.2 sources · NOTICES


