Hi Folks, Daffodil is unable to parse DFDL schemas containing two consecutive element declarations, each with a simpleType which has a facet.
With this input: John Doe/2006/Sally Smith The part of interest is the middle part - 2006 - which consists of two subparts: 20 (LatitudeDegrees) and 06 (LatitudeMinutes). Each subpart is constrained via XSD facets. I get this error message when I parse using Daffodil version 3.2.1 (using the -V limited option): [error] Validation Error: LatitudeMinutes failed facet checks due to: facet enumeration(s): 06 Below is my DFDL schema. I believe this is a bug, yes? Is there a workaround? <xs:schema xmlns:dfdl="http://www.ogf.org/dfdl/dfdl-1.0/" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:annotation xmlns:f="function" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:regex="regex-functions"> <xs:appinfo source="http://www.ogf.org/dfdl/"> <dfdl:format alignment="1" alignmentUnits="bytes" emptyValueDelimiterPolicy="none" encoding="ASCII" encodingErrorPolicy="replace" escapeSchemeRef="" fillByte="%SP;" floating="no" ignoreCase="yes" initiatedContent="no" initiator="" leadingSkip="0" lengthKind="delimited" lengthUnits="characters" nilValueDelimiterPolicy="none" occursCountKind="implicit" outputNewLine="%CR;%LF;" representation="text" separator="" separatorSuppressionPolicy="anyEmpty" sequenceKind="ordered" textBidi="no" textPadKind="none" textTrimKind="none" trailingSkip="0" truncateSpecifiedLengthString="no" terminator="" textNumberRep="standard" textStandardBase="10" textStandardZeroRep="0" textNumberRounding="pattern" textStandardExponentRep="E" textNumberCheckPolicy="strict"/> </xs:appinfo> </xs:annotation> <xs:element name="Test"> <xs:complexType> <xs:sequence dfdl:separator="/" dfdl:separatorPosition="infix"> <xs:element name="A" type="xs:string" /> <xs:element name="Origin"> <xs:complexType> <xs:sequence dfdl:separator=""> <xs:element name="LatitudeDegrees"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{2}"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="LatitudeMinutes"> <xs:simpleType> <xs:restriction base="xs:string"> <!--<xs:pattern value="[0-9]{2}"/>--> <!-- This also fails --> <xs:enumeration value="06" /> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="B" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>