DFDL WG Stephen M Hanson, IBM [email protected] September 2014

Total Page:16

File Type:pdf, Size:1020Kb

DFDL WG Stephen M Hanson, IBM Dfdl-Wg@Ogf.Org September 2014 GFD-P-R.207 (OBSOLETED by GFD-P-R.240) Michael J Beckerle, Tresys Technology OGF DFDL WG Stephen M Hanson, IBM [email protected] September 2014 Data Format Description Language (DFDL) v1.0 Specification Status of This Document Grid Final Draft (GFD) Obsoletes This document obsoletes GFD-P-R.174 dated January 2011 [OBSOLETE_DFDL]. Copyright Notice Copyright © Global Grid Forum (2004-2006). Some Rights Reserved. Distribution is unlimited. Copyright © Open Grid Forum (2006-2014). Some Rights Reserved. Distribution is unlimited Abstract This document is OBSOLETE. It is superceded by GFD-P-R.240. This document provides a definition of a standard Data Format Description Language (DFDL). This language allows description of text, dense binary, and legacy data formats in a vendor- neutral declarative manner. DFDL is an extension to the XML Schema Description Language (XSDL). GFD-P-R.207 (OBSOLETED by GFD-P-R.240) September 2014 Contents Data Format Description Language (DFDL) v1.0 Specification ...................................................... 1 1. Introduction ............................................................................................................................... 9 1.1 Why is DFDL Needed? ................................................................................................... 10 1.2 What is DFDL? ................................................................................................................ 10 Simple Example ....................................................................................................... 10 1.3 What DFDL is not ............................................................................................................ 13 1.4 Scope of version 1.0 ....................................................................................................... 13 1.5 Related standards ........................................................................................................... 14 2. Notational and Definitional Conventions ................................................................................ 15 2.1 Failure Types .................................................................................................................. 15 2.2 Schema Definition Error .................................................................................................. 15 2.3 Processing Errors ............................................................................................................ 16 Ambiguity of Data Formats ...................................................................................... 16 2.4 Validation Errors .............................................................................................................. 17 2.5 Recoverable Error ........................................................................................................... 17 2.6 Specific Errors Classified ................................................................................................ 17 2.7 Optional Checks and Warnings....................................................................................... 19 3. Glossary ................................................................................................................................. 21 4. The DFDL Information Set (Infoset) ....................................................................................... 28 4.1 Information Items ............................................................................................................ 28 Document Information Item ..................................................................................... 28 Element Information Items ....................................................................................... 29 4.2 "No Value'' ....................................................................................................................... 30 4.3 DFDL Information Item Order.......................................................................................... 30 4.4 DFDL Infoset Object model ............................................................................................. 30 4.5 DFDL Augmented Infoset ................................................................................................ 31 5. DFDL Schema Component Model ......................................................................................... 33 5.1 DFDL Subset of XML Schema ........................................................................................ 34 5.2 XSD Facets, min/maxOccurs, default, and fixed ............................................................ 36 MinOccurs, MaxOccurs............................................................................................ 37 MinLength, MaxLength ............................................................................................ 37 MaxInclusive, MaxExclusive, MinExclusive, MinInclusive, TotalDigits, FractionDigits 37 Pattern ..................................................................................................................... 38 Enumeration ............................................................................................................. 38 [email protected] Page 2 of 244 GFD-P-R.207 (OBSOLETED by GFD-P-R.240) September 2014 Default ...................................................................................................................... 38 Fixed ........................................................................................................................ 38 6. DFDL Syntax Basics .............................................................................................................. 39 6.1 Namespaces ................................................................................................................... 39 6.2 The DFDL Annotation Elements ..................................................................................... 39 6.3 DFDL Properties ............................................................................................................. 41 DFDL String Literals ................................................................................................. 41 DFDL Expressions ................................................................................................... 46 DFDL Regular Expressions ..................................................................................... 46 Enumerations in DFDL............................................................................................. 46 7. Syntax of DFDL Annotation Elements .................................................................................... 47 7.1 Component Format Annotations ..................................................................................... 47 The dfdl:ref Property ................................................................................................ 47 Property Binding Syntax .......................................................................................... 48 Empty String as a Representation Property Value .................................................. 49 7.2 dfdl:defineFormat - Reusable Data Format Definitions ................................................... 50 Inheritance for dfdl:defineFormat ............................................................................. 50 Using/Referencing a Named Format Definition ....................................................... 50 7.3 The dfdl:assert Statement Annotation Element .............................................................. 50 Properties for dfdl:assert .......................................................................................... 51 Controlling the Timing of Statement Evaluation ...................................................... 53 7.4 The dfdl:discriminator Statement Annotation Element .................................................... 54 Properties for dfdl:discriminator ............................................................................... 54 7.5 The dfdl:defineEscapeScheme Defining Annotation Element ........................................ 57 Using/Referencing a Named escapeScheme Definition.......................................... 58 7.6 The dfdl:escapeScheme Annotation Element ................................................................. 58 7.7 The dfdl:defineVariable Annotation Element ................................................................... 58 Examples ................................................................................................................. 59 Predefined Variables................................................................................................ 59 7.8 The dfdl:newVariableInstance Statement Annotation Element....................................... 60 Examples ................................................................................................................. 60 7.9 The dfdl:setVariable Statement Annotation Element ...................................................... 61 Examples ................................................................................................................. 61 8. Property Scoping Rules .......................................................................................................... 62 8.1 Providing Defaults for DFDL properties .......................................................................... 62 8.2 Combining DFDL Representation Properties from a dfdl:defineFormat ......................... 63 8.3 Combining DFDL Properties
Recommended publications
  • Bbedit 13.5 User Manual
    User Manual BBEdit™ Professional Code and Text Editor for the Macintosh Bare Bones Software, Inc. ™ BBEdit 13.5 Product Design Jim Correia, Rich Siegel, Steve Kalkwarf, Patrick Woolsey Product Engineering Jim Correia, Seth Dillingham, Matt Henderson, Jon Hueras, Steve Kalkwarf, Rich Siegel, Steve Sisak Engineers Emeritus Chris Borton, Tom Emerson, Pete Gontier, Jamie McCarthy, John Norstad, Jon Pugh, Mark Romano, Eric Slosser, Rob Vaterlaus Documentation Fritz Anderson, Philip Borenstein, Stephen Chernicoff, John Gruber, Jeff Mattson, Jerry Kindall, Caroline Rose, Allan Rouselle, Rich Siegel, Vicky Wong, Patrick Woolsey Additional Engineering Polaschek Computing Icon Design Bryan Bell Factory Color Schemes Luke Andrews Additional Color Schemes Toothpaste by Cat Noon, and Xcode Dark by Andrew Carter. Used by permission. Additional Icons By icons8. Used under license Additional Artwork By Jonathan Hunt PHP keyword lists Contributed by Ted Stresen-Reuter. Previous versions by Carsten Blüm Published by: Bare Bones Software, Inc. 73 Princeton Street, Suite 206 North Chelmsford, MA 01863 USA (978) 251-0500 main (978) 251-0525 fax https://www.barebones.com/ Sales & customer service: [email protected] Technical support: [email protected] BBEdit and the BBEdit User Manual are copyright ©1992-2020 Bare Bones Software, Inc. All rights reserved. Produced/published in USA. Copyrights, Licenses & Trademarks cmark ©2014 by John MacFarlane. Used under license; part of the CommonMark project LibNcFTP Used under license from and copyright © 1996-2010 Mike Gleason & NcFTP Software Exuberant ctags ©1996-2004 Darren Hiebert (source code here) PCRE2 Library Written by Philip Hazel and Zoltán Herczeg ©1997-2018 University of Cambridge, England Info-ZIP Library ©1990-2009 Info-ZIP.
    [Show full text]
  • THIRTEEN MOONS in MOTION: a Dreamspell Primer
    © Galactic Research Institute of the Foundation for the Law of Time - www.lawoftime.org THIRTEEN MOONS IN MOTION: A Dreamspell Primer “Just as air is the atmosphere of the body, so time is the atmosphere of the mind; if the time in which we live consists of uneven months and days regulated by mechanized minutes and hours, that is what becomes of our mind: a mechanized irregularity. Since everything follows from mind, it is no wonder that The atmosphere in which we live daily becomes more polluted, And the greatest complaint is: ‘I just don’t have enough time!’ Who owns your time, owns your mind. Own your own time and you will know your own mind.” Foundation for the Law of Time www.lawoftime.org © Galactic Research Institute of the Foundation for the Law of Time - www.lawoftime.org 13-Moon Planetary Kin Starter Calendar 3 A Season Of Apocalypses: The Gregorian Calendar Unmasked A 13-Moon Postscript to the Mayan Factor 1. Thinking about the Unthinkable Of all the unexamined assumptions and criteria upon which we base and gauge our daily lives as human beings on planet Earth, by far the greatest and most profoundly unquestioned is the instrument and institution known as the Gregorian Calendar. A calendar, any calendar, is commonly understood as a system for dividing time over extended periods. A day is the base unit of a calendar, and the solar year is the base extended period. The length of the solar year is currently reckoned at 365.242199 days. The Gregorian calendar divides this duration into twelve uneven months – four months of 30 days, seven of 31 days, and one of 28 days.
    [Show full text]
  • Notetab User Manual
    NoteTab User Manual Copyright © 1995-2016, FOOKES Holding Ltd, Switzerland NoteTab® Tame Your Text with NoteTab by FOOKES Holding Ltd A leading-edge text and HTML editor. Handle a stack of huge files with ease, format text, use a spell-checker, and perform system-wide searches and multi-line global replacements. Build document templates, convert text to HTML on the fly, and take charge of your code with a bunch of handy HTML tools. Use a power-packed scripting language to create anything from a text macro to a mini-application. Winner of top industry awards since 1998. “NoteTab” and “Fookes” are registered trademarks of Fookes Holding Ltd. All other trademarks and service marks, both marked and not marked, are the property of their respective ow ners. NoteTab® Copyright © 1995-2016, FOOKES Holding Ltd, Switzerland All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or mechanical, including photocopying, recording, taping, or information storage and retrieval systems - without the written permission of the publisher. “NoteTab” and “Fookes” are registered trademarks of Fookes Holding Ltd. All other trademarks and service marks, both marked and not marked, are the property of their respective owners. While every precaution has been taken in the preparation of this document, the publisher and the author assume no responsibility for errors or omissions, or for damages resulting from the use of information contained in this document or from the use of programs and source code that may accompany it. In no event shall the publisher and the author be liable for any loss of profit or any other commercial damage caused or alleged to have been caused directly or indirectly by this document.
    [Show full text]
  • Sample Chapter 3
    108_GILLAM.ch03.fm Page 61 Monday, August 19, 2002 1:58 PM 3 Architecture: Not Just a Pile of Code Charts f you’re used to working with ASCII or other similar encodings designed I for European languages, you’ll find Unicode noticeably different from those other standards. You’ll also find that when you’re dealing with Unicode text, various assumptions you may have made in the past about how you deal with text don’t hold. If you’ve worked with encodings for other languages, at least some characteristics of Unicode will be familiar to you, but even then, some pieces of Unicode will be unfamiliar. Unicode is more than just a big pile of code charts. To be sure, it includes a big pile of code charts, but Unicode goes much further. It doesn’t just take a bunch of character forms and assign numbers to them; it adds a wealth of infor- mation on what those characters mean and how they are used. Unlike virtually all other character encoding standards, Unicode isn’t de- signed for the encoding of a single language or a family of closely related lan- guages. Rather, Unicode is designed for the encoding of all written languages. The current version doesn’t give you a way to encode all written languages (and in fact, this concept is such a slippery thing to define that it probably never will), but it does provide a way to encode an extremely wide variety of lan- guages. The languages vary tremendously in how they are written, so Unicode must be flexible enough to accommodate all of them.
    [Show full text]
  • Stuart Brisley Exhibition Notes
    OXFORD MODERN ART MODERN STUART BRISLEY STATE OF DENMARK EXHIBITION GUIDE EXHIBITION EXHIBITION GUIDE RACHAEL MINOTT RACHAEL PLATFORM MODERN ART OXFORD Glave, Akashic Books, 2013 Books, Akashic Glave, Tomas Tomas Flesh, & Politics Bloodpeople: the Among STUART BRISLEY s STATE OF DENMARK 2001 Studies, Caribbean Societyfor Ruth Minott Egglestone, Egglestone, Minott Ruth CURATED BY DAVID THORP WITH THE MUSEUM OF ORDURE Pantomime, Jamaican A Philosophy of Survival: Anancyism in in Anancyism Survival: of Philosophy A Upper Galleries s 20 September - 16 November 1977 API, Edward Kamau Brathwaite, Brathwaite, Kamau Edward This exhibition presents a selected survey of where Brisley worked gathering information on the Liberation, People’s Nanny, Sam Sharpe, and the Struggle for for Struggle the and Sharpe, Sam Nanny, historical and recent work by seminal British history and customs of the area in an attempt to s artist Stuart Brisley (b. Surrey, 1933). Celebrated create an active social tool which would develop 2005 Routledge, Donnell, Alison Alison as a performance artist, the great breadth and the town’s sense of community, rather than simply History, Literary Anglophone in Moments Critical Critical Literature: Caribbean Twentieth-Century diversity of Brisley’s practice will be explored in produce a mere archive. This presentation is s State of Denmark through a range of sculpture, complemented by a study room where key texts Reading Further photography, film and painting. and resources which relate to the history and p.74 culture of mining in the UK is available for you to Britain Great Review, Headline (2008) Thompson Throughout his career, now spanning six decades, explore.
    [Show full text]
  • Pdflib API Reference 9.0.1
    ABC PDFlib, PDFlib+PDI, PPS A library for generating PDF on the fly PDFlib 9.0.1 API Reference For use with C, C++, Cobol, COM, Java, .NET, Objective-C, Perl, PHP, Python, REALbasic/Xojo, RPG, Ruby Copyright © 1997–2013 PDFlib GmbH and Thomas Merz. All rights reserved. PDFlib users are granted permission to reproduce printed or digital copies of this manual for internal use. PDFlib GmbH Franziska-Bilek-Weg 9, 80339 München, Germany www.pdflib.com phone +49 • 89 • 452 33 84-0 fax +49 • 89 • 452 33 84-99 If you have questions check the PDFlib mailing list and archive at tech.groups.yahoo.com/group/pdflib Licensing contact: [email protected] Support for commercial PDFlib licensees: [email protected] (please include your license number) This publication and the information herein is furnished as is, is subject to change without notice, and should not be construed as a commitment by PDFlib GmbH. PDFlib GmbH assumes no responsibility or lia- bility for any errors or inaccuracies, makes no warranty of any kind (express, implied or statutory) with re- spect to this publication, and expressly disclaims any and all warranties of merchantability, fitness for par- ticular purposes and noninfringement of third party rights. PDFlib and the PDFlib logo are registered trademarks of PDFlib GmbH. PDFlib licensees are granted the right to use the PDFlib name and logo in their product documentation. However, this is not required. Adobe, Acrobat, PostScript, and XMP are trademarks of Adobe Systems Inc. AIX, IBM, OS/390, WebSphere, iSeries, and zSeries are trademarks of International Business Machines Corporation.
    [Show full text]
  • Locale Database
    International Language Environments Guide Part No: 817–2521–11 November 2010 Copyright © 2005, 2010, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related software documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are “commercial computer software” or “commercial technical data” pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms setforth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.
    [Show full text]
  • C++ Reading a Line of Text
    C++ Reading a Line of Text Because there are times when you do not want to skip whitespace before inputting a character, there is a function to input the next character in the stream regardless of what it is. The function is named get and is applied as shown. cin.get(character); The next character in the input stream is returned in char variable character. If the previous input was a numeric value, character contains whatever character ended the inputting of the value. There are also times when you want to skip the rest of the values on a line and go to the beginning of the next line. A function named ignore defined in file <iostream> allows you to do this. It has two parameters. The first is an int expression and the second is a character. This function skips the number of characters specified in the first parameter or all the characters up to and including the character specified in the second parameter, whichever comes first. For example, cin.ignore(80, '\n'); skips 80 characters or skips to the beginning of the next line depending on whether a newline character is encountered before 80 characters are skipped (read and discarded). As another example, consider: cin.ignore(4,’g’); cin.get(c); cout << c << endl; If the input to this program is “agdfg” then the input is ignored up to and including the ‘g’ so the next character read is ‘d’. The letter “d” is then output. If the input to this program is “abcdef” then the input is ignored for the first four characters, so the next character read is ‘e’.
    [Show full text]
  • Dave Consiglio, April 18, 2016 How Can Our Calendar Be Re-Designed to Be More Convenient and Scientific?
    Dave Consiglio, April 18, 2016 How can our calendar be re-designed to be more convenient and scientific? Ah, decimal time. In the time system proposed (primarily) by the French, we would have had 1000 seconds in an hour, 100 minutes in an hour, and 10 hours in a day, 10 days in a week, and 10 months in a year. But it could have done nothing to change the number of days in a year. That's because the rotational period of the Earth and the revolutionary period of the Earth are completely unrelated. In other words, the length of a day and the length of a year aren't on speaking terms. Each year really does last 365.24 (roughly) days, regardless of how you divide those days into hours and minutes. So, at the end of a year, you have about 1/4th of a day to add to catch up. This is awkward, so the current calendar does the only logical thing: add a day every 4th year, and then make corrections every century or so. We can divide the day however we want, but we would have ended up with the same problem of leap day. So, our perfect decimal calendar would still need 365 days each year for 3 years, and then 366 for the fourth. These aren't very "decimally" numbers! Now, you could go about adding seconds, or even minutes, instead, but this just gets more and more confusing. Once every 4 years is simple enough, and it solves the problem with enough accuracy that adjustments are only required every century or so.
    [Show full text]
  • Red Overtone Moon Year
    Resonant Truth presents NATURAL TIME A 13 Moon Calendar inspired by Mayan cycles Red Overtone Moon Year July 26, 2010 - July 24, 2011 July 26, 2010 - July 24, 2011 HowRED Can OVERTONE I Best Empower MOON Myself Red Overtone Moon is the fifth year in a cycle of 13. Four years ago, we began a new 13-year ‘wavespell’ that celebrates the energy of Red Moon. A wavespell is any cycle of 13, be it days, moons or years. As its name indicates, a wavespell is a spell of time that builds and breaks in a wave formation. There are 13 stages in the growth of the wave and its dissolution, each offering a specific teaching for us as guidance in our own transformation. In the Overtone time the wave begins its ascent in earnest. For the past four years we have been making preparations, in a sense, laying a foundation for the accomplishment to come. We have been held in check, a little, from taking off with our dreams, but only in order to be truly ready when they come closer to reality. The Overtone energy is described as an act of empowerment; we are given the life force to rise. Think again of the ocean and the moment when the swell that began in the depths pushes above the surface, starting a visible arc towards the sky. We are in that magic transit, when we not only feel ourselves uplifted but see the reflection in our lives. The journey to the wave’s peak is very much a movement towards the sun itself and the enlightenment it holds, so we will feel some pleasure and ease this year, that we are steadily climbing closer to the heavens, and towards the divinity that lives there.
    [Show full text]
  • Discovery of the Law of Time by Jose and Lloydine Arguelles
    THE DISCOVERY OF THE LAW OF TIME T(E)=ART José and Lloydine Argüelles 1997 - Planet Art Network Testament of the Investigators: Dr. José Argüelles (Blue Spectral Monkey) and Lloydine Argüelles (White Solar Wind). The World Thirteen Moon Calendar Change Peace Movement. Reconstructed, Produced and Distributed by Tortuga 13:20 Crystal Seed Year, December 2017 https://Tortuga1320.com Tortuga1320.com The Discovery of the Law of Time Page !1 Argüelles, José and Lloydine. The Discovery of the Law of Time. T(E)=Art. Planet Art Network, 1997. (Out of Print). Official Sources: Original 1997 PAN Booklet. Free Online Publications at www.tortuga.com and www.earthascending.com Tortuga.com was the official website of PAN, the Foundation for the Law of Time and the World Thirteen Moon Calendar Change Peace Movement. EarthAscending.com was the official website of the Invisible College, created “to host the visionary work of José and Lloydine Argüelles.” Tortuga1320.com The Discovery of the Law of Time Page !2 The Discovery of the Law of Time 1989-1996 “Following a meticulous seven year comprehensive field study and research into every aspect of the discovery of the natural, 13:20, and artificial, 12:60, timing frequencies, the Law of Time is the masterful result. T(E)=ART, Energy factored by Time equals Art, supersedes in every way the Theory of Relativity as the benchmark of human knowledge.” José and Lloydine Argüelles Agents 11 and 22 Valum Votan and Bolon Ik Discoverers of the Law of Time Tortuga1320.com The Discovery of the Law of Time Page !3 THE DISCOVERY OF THE LAW OF TIME T(E)=ART TABLE OF CONTENTS CHAPTER 1.
    [Show full text]
  • The XSB System Version 2.4 Volume 1: Programmer's Manual
    The XSB System Version 2.4 Volume 1: Programmer’s Manual Konstantinos Sagonas Terrance Swift David S. Warren Juliana Freire Prasad Rao Baoqiu Cui Ernie Johnson with contributions from Steve Dawson Michael Kifer July 13, 2001 Credits Day-to-day care and feeding of XSB including bug fixes, ports, and configuration man- agement has been done by Kostis Sagonas, David Warren, Terrance Swift, Prasad Rao, Steve Dawson, Juliana Freire, Ernie Johnson, Baoqiu Cui, Michael Kifer, and Bart Demoen. In Version 2.4, the core engine development of the SLG-WAM has been mainly imple- mented by Terrance Swift, Kostis Sagonas, Prasad Rao, and Juliana Freire. The break- down, roughly, was that Terrance Swift wrote the initial tabling engine and builtins. Prasad Rao reimplemented the engine’s tabling subsystem to use tries for variant-based table access while Kostis Sagonas implemented most of tabled negation. Juliana Freire revised the table scheduling mechanism starting from Version 1.5.0 to create a more efficient engine, and implemented the engine for local evaluation. Starting from XSB Version 2.0, XSB includes another tabling engine, CHAT, which was designed and developed by Kostis Sagonas and Bart Demoen. CHAT supports heap garbage collection (both based on a mark&slide and on a mark&copy algorithm) which was developed and implemented by Bart Demoen and Kostis Sagonas. Memory expansion code for WAM stacks was written by Ernie Johnson and Bart De- moen, while memory management code for CHAT areas was written by Bart Demoen and Kostis Sagonas. Rui Marques improved the trailing of the SLG-WAM and rewrote much of the engine to make it compliant with 64-bit architectures.
    [Show full text]