Hi Folks, My (binary) input file consists of:
* Two bytes (little endian) indicating the length of the following person data * Person info, consisting of: * Person name, null terminated * Person digital identifier, 20 hex digits At the end of this message is my DFDL schema. It parses the input fine. Parsing generates this XML: <SimpleDataFormat> <length>29</length> <personInfo> <name>John Doe</name> <digital-id>AE6E4D1209F17B460503904FAD297B31E9CF6362</digital-id> </personInfo> </SimpleDataFormat> It also unparses fine. There was no need to use contentLength. How can I modify/add-to the example so that contentLength must be used to properly unparse? I want the example to require this: <xs:element name="length" type="xs:nonNegativeInteger" dfdl:lengthKind="explicit" dfdl:length="2" dfdl:lengthUnits="bytes" dfdl:outputValueCalc='{ dfdl:contentLength(../personInfo) }' /> <xs:element name="personInfo" dfdl:lengthKind="explicit" dfdl:length="{../length}" > ... </xs:element> Here is my current DFDL schema: <xs:element name="SimpleDataFormat" dfdl:lengthKind="implicit" > <xs:complexType> <xs:sequence> <xs:element name="length" type="xs:nonNegativeInteger" dfdl:lengthKind="explicit" dfdl:length="2" dfdl:lengthUnits="bytes" /> <xs:element name="personInfo" dfdl:lengthKind="explicit" dfdl:length="{../length}" > <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string" dfdl:encoding="ASCII" dfdl:terminator="%NUL;" dfdl:emptyValueDelimiterPolicy="terminator" dfdl:lengthKind="delimited" /> <xs:element name="digital-id" type="xs:hexBinary" dfdl:lengthKind="explicit" dfdl:length="20" dfdl:lengthUnits="bytes" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element>