BS ISO/IEC 23415:2024
$215.11
Information technology. Data Format Description Language (DFDL) v1.0 Specification
Published By | Publication Date | Number of Pages |
BSI | 2024 | 218 |
PDF Catalog
PDF Pages | PDF Title |
---|---|
2 | undefined |
11 | 1 Introduction |
12 | 1.1 Why is DFDL Needed? 1.2 What is DFDL? 1.2.1 Simple Example |
15 | 1.3 What DFDL is not 1.4 Scope of version 1.0 |
17 | 2 Overview of the Specification |
18 | 3 Notational and Definitional Conventions 3.1 Glossary and Terminology 3.2 Failure Types |
19 | 4 The DFDL Information Set (Infoset) |
20 | 4.1 “No Value” 4.2 Information Items 4.2.1 Document Information Item 4.2.2 Element Information Items |
21 | 4.3 DFDL Information Item Order 4.4 DFDL Augmented Infoset |
22 | 5 DFDL Schema Component Model 5.1 DFDL Simple Types |
23 | 5.2 DFDL Subset of XML Schema |
24 | 5.3 XSD Facets, min/maxOccurs, default, and fixed |
25 | 5.3.1 MinOccurs, MaxOccurs 5.3.2 MinLength, MaxLength 5.3.3 MaxInclusive, MaxExclusive, MinExclusive, MinInclusive, TotalDigits, FractionDigits 5.3.4 Pattern 5.3.5 Enumeration Values 5.3.6 Default |
26 | 5.3.7 Fixed 5.4 Compatibility with Other Annotation Language Schemas |
27 | 6 DFDL Syntax Basics 6.1 Namespaces 6.2 The DFDL Annotation Elements |
28 | 6.3 DFDL Properties |
30 | 6.3.1 DFDL String Literals 6.3.1.1 Character strings in DFDL String Literals 6.3.1.2 DFDL Character Entities, Character Class Entities, and Byte Values in String Literals |
33 | 6.3.1.3 DFDL Character Class Entities in DFDL String Literals 6.3.1.4 DFDL Byte Value Entities in DFDL String Literals |
34 | 6.3.2 DFDL Expressions 6.3.3 DFDL Regular Expressions 6.3.4 Enumerations in DFDL |
35 | 7 Syntax of DFDL Annotation Elements 7.1 Component Format Annotations |
36 | 7.1.1 Property Binding Syntax 7.1.1.1 Property Binding Syntax: Attribute Form 7.1.1.2 Property Binding Syntax: Element Form |
37 | 7.1.1.3 Property Binding Syntax: Short Form 7.1.2 Empty String as a Representation Property Value |
38 | 7.2 dfdl:defineFormat – Reusable Data Format Definitions 7.2.1 Using/Referencing a Named Format Definition: The dfdl:ref Property 7.2.2 Inheritance for dfdl:defineFormat |
39 | 7.3 The dfdl:defineEscapeScheme Defining Annotation Element 7.3.1 Using/Referencing a Named escapeScheme Definition 7.4 The dfdl:escapeScheme Annotation Element |
40 | 7.5 The dfdl:assert Statement Annotation Element 7.5.1 Properties for dfdl:assert |
42 | 7.6 The dfdl:discriminator Statement Annotation Element 7.6.1 Properties for dfdl:discriminator |
45 | 7.7 DFDL Variable Annotations 7.7.1 dfdl:defineVariable Annotation Element |
46 | 7.7.1.1 Examples 7.7.1.2 Predefined Variables 7.7.2 The dfdl:newVariableInstance Statement Annotation Element |
47 | 7.7.2.1 Examples 7.7.3 The dfdl:setVariable Statement Annotation Element |
48 | 7.7.3.1 Examples |
49 | 8 Property Scoping and DFDL Schema Checking 8.1 Property Scoping 8.1.1 Property Scoping Rules 8.1.2 Providing Defaults for DFDL properties |
50 | 8.1.3 Combining DFDL Representation Properties from a dfdl:defineFormat 8.1.4 Combining DFDL Properties from References |
53 | 8.2 DFDL Schema Checking 8.2.1 Schema Component Constraint: Unique Particle Attribution 8.2.2 Optional Checks and Warnings |
55 | 9 DFDL Processing Introduction 9.1 Parser Overview 9.1.1 Points of Uncertainty |
56 | 9.1.2 Processing Error 9.1.3 Recoverable Error 9.2 DFDL Data Syntax Grammar |
58 | 9.2.1 Nil Representation 9.2.2 Empty Representation |
59 | 9.2.3 Normal Representation 9.2.4 Absent Representation 9.2.5 Zero-length Representation 9.2.6 Missing |
60 | 9.2.7 Examples of Missing and Empty Representation 9.2.8 Round Trip Ambiguities 9.3 Parsing Algorithm |
61 | 9.3.1 Known-to-exist and Known-not-to-exist 9.3.1.1 Known-to-exist 9.3.1.2 Processing Error After Determining Known-to-exist 9.3.1.3 Known-not-to-exist |
62 | 9.3.2 Establishing Representation 9.3.2.1 Simple element 9.3.2.2 Complex element |
63 | 9.3.3 Resolving Points of Uncertainty 9.3.3.1 Nested Points of Uncertainty |
64 | 9.4 Element Defaults 9.4.1 Definitions 9.4.1.1 Default Value 9.4.1.2 Required/Optional Occurrence 9.4.2 Element Defaults When Parsing |
65 | 9.4.2.1 Simple element (not xs:string and not xs:hexBinary) 9.4.2.2 Simple element (xs:string or xs:hexBinary) 9.4.2.3 Complex element 9.4.2.4 Example: Complex Optional Empty Element Not Added to Infoset |
66 | 9.4.2.5 Example: Complex Optional Empty Element with Delimiters 9.4.3 Element Defaults When Unparsing |
67 | 9.4.3.1 Simple element 9.4.3.2 Complex element 9.5 Evaluation Order for Statement Annotations |
68 | 9.5.1 Asserts and Discriminators with testKind ‘expression’ 9.5.2 Discriminators with testKind ‘expression’ 9.5.3 Elements and setVariable 9.5.4 Controlling the Order of Statement Evaluation 9.6 Validation |
69 | 9.7 Unparser Infoset Augmentation Algorithm |
70 | 10 Overview: Representation Properties and their Format Semantics |
71 | 11 Properties Common to both Content and Framing |
73 | 11.1 Unicode Byte Order Mark (BOM) 11.2 Character Encoding and Decoding Errors |
74 | 11.2.1 Property dfdl:encodingErrorPolicy 11.2.1.1 dfdl:encodingErrorPolicy ‘error’ 11.2.1.2 dfdl:encodingErrorPolicy ‘replace’ for parsing |
75 | 11.2.1.3 dfdl:encodingErrorPolicy ‘replace’ for unparsing 11.2.2 Unicode UTF-16 Decoding/Encoding Non-Errors 11.2.3 Preserving Data Containing Decoding Errors 11.3 Byte Order and Bit Order 11.4 dfdl:bitOrder Example |
76 | 11.4.1 Example Using Right-to-Left Display for ‘leastSignificantBitFirst’ 11.4.2 dfdl:bitOrder and Grammar Regions |
77 | 12 Framing 12.1 Aligned Data |
78 | 12.1.1 Implicit Alignment 12.1.2 Mandatory Alignment for Textual Data |
79 | 12.1.3 Mandatory Alignment for Packed Decimal Data 12.1.4 Example: AlignmentFill |
80 | 12.2 Properties for Specifying Delimiters |
83 | 12.3 Properties for Specifying Lengths |
84 | 12.3.1 dfdl:lengthKind ‘explicit’ 12.3.2 dfdl:lengthKind ‘delimited’ |
85 | 12.3.2.1 Non-Delimited Elements within Delimited Constructs 12.3.2.2 Delimited Binary Data 12.3.3 dfdl:lengthKind ‘implicit’ |
86 | 12.3.4 dfdl:lengthKind ‘prefixed’ |
89 | 12.3.4.1 Nested Prefix Lengths37F 12.3.5 dfdl:lengthKind ‘pattern’ 12.3.6 dfdl:lengthKind ‘endOfParent’ |
91 | 12.3.7 Elements of Specified Length 12.3.7.1 Length of Simple Elements with Textual Representation 12.3.7.1.1 Text Length Specified in Bytes |
92 | 12.3.7.2 Length of Simple Elements with Binary Representation 12.3.7.2.1 Length of Base-2 Binary Number Elements 12.3.7.2.2 Length of Floating Point Binary Number Elements 12.3.7.2.3 Length of Packed Decimal Number Elements |
93 | 12.3.7.2.4 Length of Binary Boolean Elements 12.3.7.2.5 Length of Base-2 Binary Calendar Elements 12.3.7.2.6 Length of Packed Decimal Calendar Elements 12.3.7.2.7 Length of Binary Opaque Elements 12.3.7.3 Length of Complex Elements |
94 | 13 Simple Types 13.1 Properties Common to All Simple Types |
95 | 13.2 Properties Common to All Simple Types with Text representation |
96 | 13.2.1 The dfdl:escapeScheme Properties |
99 | 13.2.1.1 Escape Scheme Example 13.3 Properties for Bidirectional support for All Simple Types with Text representation 13.4 Properties Specific to String |
101 | 13.5 Properties Specific to Number with Text or Binary Representation 13.6 Properties Specific to Number with Text Representation |
108 | 13.6.1 The dfdl:textNumberPattern Property 13.6.1.1 dfdl:textNumberPattern for dfdl:textNumberRep ‘standard’ |
112 | 13.6.1.2 dfdl:textNumberPattern for dfdl:textNumberRep ‘zoned’ 13.6.2 Converting logical numbers to/from text representation |
114 | 13.7 Properties Specific to Number with Binary Representation |
115 | 13.7.1 Converting Logical Numbers to/from Binary Representation 13.7.1.1 Converting Base-2 Binary Numbers 13.7.1.2 Bit strings, Alignment, and dfdl:fillByte |
116 | 13.7.1.3 Bits within Bit Strings of Length <= 8 13.7.1.4 Bits within Bit Strings of Length > 8 13.7.1.4.1 Examples of Unsigned Integer Conversion |
118 | 13.7.1.5 Converting Packed Decimal Numbers |
120 | 13.8 Properties Specific to Float/Double with Binary Representation 13.9 Properties Specific to Boolean with Text Representation |
121 | 13.10 Properties Specific to Boolean with Binary Representation |
122 | 13.11 Properties Specific to Calendar with Text or Binary Representation |
124 | 13.11.1 The dfdl:calendarPattern property |
127 | 13.11.2 The dfdl:calendarCheckPolicy Property 13.12 Properties Specific to Calendar with Text Representation |
128 | 13.13 Properties Specific to Calendar with Binary Representation |
129 | 13.14 Properties Specific to Opaque Types (xs:hexBinary) 13.15 Nil Value Processing 13.16 Properties for Nillable Elements |
133 | 14 Sequence Groups 14.1 Empty Sequences |
134 | 14.2 Sequence Groups with Separators |
135 | 14.2.1 Separators and Suppression |
136 | 14.2.2 Parsing Sequence Groups with Separators |
137 | 14.2.2.1 Errors When the Sequence is Positional 14.2.2.2 Example Parsing Scenarios |
138 | 14.2.2.3 Parsing Child Groups within Separated Sequences 14.2.3 Unparsing Sequence Groups with Separators |
139 | 14.2.3.1 Example Unparsing Scenarios |
140 | 14.2.3.2 Unparsing Child Groups within Separated Sequences 14.3 Unordered Sequence Groups 14.3.1 Restrictions for Unordered Sequences 14.3.2 Parsing an Unordered Sequence 14.3.2.1 Source-to-source Transformation |
141 | 14.3.2.2 Post-processing Transformation |
142 | 14.3.3 Unparsing an Unordered Sequence 14.4 Floating Elements |
143 | 14.5 Hidden Groups |
145 | 15 Choice Groups |
146 | 15.1 Resolving Choices 15.1.1 Resolving Choices via Speculation |
147 | 15.1.2 Resolving Choices via Direct Dispatch 15.1.3 Unparsing Choices 15.1.3.1 Unparsing Choices in Hidden Groups |
148 | 16 Properties for Array Elements and Optional Elements 16.1 The dfdl:occursCountKind property 16.1.1 dfdl:occursCountKind ‘fixed’ |
149 | 16.1.2 dfdl:occursCountKind ‘implicit’ 16.1.3 dfdl:occursCountKind ‘parsed’ 16.1.4 dfdl:occursCountKind ‘expression’ 16.1.5 dfdl:occursCountKind ‘stopValue’ |
150 | 16.2 Default Values for Arrays 16.3 Arrays with DFDL Expressions 16.4 Points of Uncertainty 16.5 Arrays and Sequences 16.6 Forward Progress Requirement |
151 | 16.7 Parsing Occurrences with Non-Normal Representation 16.8 Sparse Arrays |
152 | 17 Calculated Value Properties |
153 | 17.1 Example: 2d Nested Array 17.2 Example: Three-Byte Date |
156 | 18 DFDL Expression Language 18.1 Expression Language Data Model |
157 | 18.2 Variables 18.2.1 Rewinding of Variable Memory State 18.2.2 Variable Memory State Transitions |
158 | 18.3 General Syntax |
159 | 18.4 DFDL Expression Syntax |
160 | 18.5 Constructors, Functions and Operators 18.5.1 Constructor Functions for XML Schema Built-in Types |
161 | 18.5.2 Standard XPath Functions 18.5.2.1 Boolean functions |
162 | 18.5.2.2 Numeric Functions 18.5.2.3 String Functions |
163 | 18.5.2.4 Date and Time Functions 18.5.2.5 Node Sequence Test Functions |
164 | 18.5.2.6 Node functions 18.5.2.7 Nillable Element Functions 18.5.3 DFDL Functions |
166 | 18.5.4 DFDL Constructor Functions |
167 | 18.5.5 Miscellaneous Functions |
168 | 18.6 Unparsing and Circular Expression Deadlock Errors |
169 | 19 DFDL Regular Expressions |
170 | 20 External Control of the DFDL Processor |
171 | 21 Built-in Specifications |
172 | 22 Conformance |
173 | 23 Optional DFDL Features |
175 | 24 Security Considerations |
176 | 25 Authors and Contributors |
177 | 26 Intellectual Property Statement |
178 | 27 Disclaimer |
179 | 28 Full Copyright Notice |
180 | 29 References |
183 | 30 Appendix A: Escape Scheme Use Cases 30.1 Escape Character Same as dfdl:escapeEscapeCharacter 30.2 Escape Character Different from dfdl:escapeEscapeCharacter 30.2.1 Example 1 – Separator ‘;’ |
184 | 30.2.2 Example 2 – Separator ‘sep’ 30.3 Escape Block with Different Start and End Characters |
185 | 30.4 Escape Block with Same Start and End Characters |
187 | 31 Appendix B: Rationale for Single-Assignment Variables |
188 | 32 Appendix C: Processing of DFDL String literals 32.1 Interpreting a DFDL String Literal 32.2 Recognizing a DFDL String Literal 32.3 Recognizing DFDL String Literal Part |
190 | 33 Appendix D: DFDL Standard Encodings50F 33.1 Purpose 33.2 Conventions 33.3 Specification Template 33.4 Encoding X-DFDL-US-ASCII-7-BIT-PACKED 33.4.1 Name 33.4.2 Translation table 33.4.3 Width |
191 | 33.4.4 Alignment 33.4.5 Byte Order 33.4.6 Example 1 33.4.7 Example 2 |
193 | 33.5 Encoding X-DFDL-US-ASCII-6-BIT-PACKED 33.5.1 Name 33.5.2 Translation Table |
194 | 33.5.3 Width 33.5.4 Alignment 33.5.5 ByteOrder 33.5.6 Example 1 |
195 | 33.6 References for Appendix D52F |
196 | 34 Appendix E: Glossary of Terms |
202 | 35 Appendix F: Specific Errors Classified |
204 | 36 Appendix G: Property Precedence 36.1 Parsing 36.1.1 dfdl:element (simple) and dfdl:simpleType |
207 | 36.1.2 dfdl:element (complex) |
208 | 36.1.3 dfdl:sequence and dfdl:group (when reference is to a sequence) |
209 | 36.1.4 dfdl:choice and dfdl:group (when reference is to a choice) |
210 | 36.2 Unparsing 36.2.1 dfdl:element (simple) and dfdl:simpleType |
214 | 36.2.2 dfdl:element (complex) |
215 | 36.2.3 dfdl:sequence and dfdl:group (when reference is a sequence) 36.2.4 dfdl:choice and dfdl:group (when reference is a choice) |