DFDL 1.0 â Specification and Implementation ... - Open Grid Forum
DFDL 1.0 â Specification and Implementation ... - Open Grid Forum
DFDL 1.0 â Specification and Implementation ... - Open Grid Forum
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>DFDL</strong> <strong>1.0</strong> – <strong>Specification</strong> <strong>and</strong><br />
<strong>Implementation</strong> Update<br />
Steve Hanson, smh@uk.ibm.com 12 March, 2012<br />
© 2006 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong>
OGF IPR Policies Apply<br />
“I acknowledge that participation in this meeting is subject to the OGF Intellectual Property<br />
Policy.”<br />
Intellectual Property Notices Note Well: All statements related to the activities of the OGF<br />
<strong>and</strong> addressed to the OGF are subject to all provisions of Appendix B of GFD-C.1, which<br />
grants to the OGF <strong>and</strong> its participants certain licenses <strong>and</strong> rights in such statements. Such<br />
statements include verbal statements in OGF meetings, as well as written <strong>and</strong> electronic<br />
communications made at any time or place, which are addressed to:<br />
• the OGF plenary session,<br />
• any OGF working group or portion thereof,<br />
• the OGF Board of Directors, the GFSG, or any member thereof on behalf of the OGF,<br />
• the ADCOM, or any member thereof on behalf of the ADCOM,<br />
• any OGF mailing list, including any group list, or any other list functioning under<br />
OGF auspices,<br />
• the OGF Editor or the document authoring <strong>and</strong> review process<br />
Statements made outside of a OGF meeting, mailing list or other function, that are clearly<br />
not intended to be input to an OGF activity, group or function, are not subject to these<br />
provisions.<br />
Excerpt from Appendix B of GFD-C.1: ”Where the OGF knows of rights, or claimed rights, the<br />
OGF secretariat shall attempt to obtain from the claimant of such rights, a written assurance<br />
that upon approval by the GFSG of the relevant OGF document(s), any party will be able to<br />
obtain the right to implement, use <strong>and</strong> distribute the technology or works when<br />
implementing, using or distributing technology based upon the specific specification(s) under<br />
openly specified, reasonable, non-discriminatory terms. The working group or research group<br />
proposing the use of the technology with respect to which the proprietary rights are claimed<br />
may assist the OGF secretariat in this effort. The results of this procedure shall not affect<br />
advancement of document, except that the GFSG may defer approval where a delay may<br />
facilitate the obtaining of such assurances. The results will, however, be recorded by the OGF<br />
Secretariat, <strong>and</strong> made available. The GFSG may also direct that a summary of the results be<br />
included in any GFD published containing the specification.”<br />
OGF Intellectual Property Policies are adapted from the IETF Intellectual Property Policies<br />
that support the Internet St<strong>and</strong>ards Process.<br />
2 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
2<br />
www.ogf.org
Full Copyright Notice<br />
Copyright (C) <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong> (2004, 2012). All Rights Reserved.<br />
This document <strong>and</strong> translations of it may be copied <strong>and</strong> furnished to<br />
others, <strong>and</strong> derivative works that comment on or otherwise explain it or<br />
assist in its implementation may be prepared, copied, published <strong>and</strong><br />
distributed, in whole or in part, without restriction of any kind, provided<br />
that the above copyright notice <strong>and</strong> this paragraph are included on all<br />
such copies <strong>and</strong> derivative works.<br />
The limited permissions granted above are perpetual <strong>and</strong> will not be<br />
revoked by the OGF or its successors or assignees.<br />
3 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
3<br />
www.ogf.org
Admin<br />
<br />
<br />
<strong>DFDL</strong> WG co-chairs:<br />
– Steve Hanson, IBM UK<br />
– Mike Beckerle<br />
Two note takers please<br />
<br />
Sign the attendance sheet<br />
<br />
Note: OGF Intellectual Property Rules apply<br />
4 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
4<br />
www.ogf.org
Agenda<br />
<strong>DFDL</strong> Language Overview<br />
<strong>Specification</strong> Update<br />
IBM <strong>DFDL</strong> <strong>1.0</strong><br />
<strong>Open</strong> source Daffodil<br />
Demo of IBM <strong>DFDL</strong><br />
Next steps<br />
5 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
Why <strong>DFDL</strong>?<br />
<br />
<br />
<br />
<strong>Grid</strong>s <strong>and</strong> clouds are about universal data interchange<br />
But there is no universal st<strong>and</strong>ard for modeling general text <strong>and</strong> binary data<br />
– XML -> use XML Schema<br />
– RDBMS -> use database schema<br />
– Other text/binary -> ??<br />
Existing st<strong>and</strong>ards are not flexible enough<br />
– Prescriptive: “Put your data in this format!”<br />
– Examples: ASN.1, XDR, GPB, Thrift, Avro, …<br />
– You must use one of the defined encodings & syntax<br />
<strong>DFDL</strong>: a universal, shareable, non-prescriptive, description for general<br />
text & binary data formats<br />
6 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
Data Format Description Language (<strong>DFDL</strong>)<br />
Version <strong>1.0</strong><br />
– Proposed Recommendation status<br />
A way of describing data…<br />
– It is NOT a data format itself!<br />
That can describe any data format …<br />
– Textual <strong>and</strong> binary<br />
– Commercial record-oriented<br />
– Scientific <strong>and</strong> numeric<br />
– Modern <strong>and</strong> legacy<br />
– Industry st<strong>and</strong>ards<br />
While allowing high performance …<br />
– Choose the right data format for the<br />
job<br />
Leverage XML technology <strong>and</strong> concepts<br />
– Use W3C XML Schema subset & type<br />
system to describe the logical format of<br />
the data<br />
– Use annotations within the XSD to<br />
describe the physical representation of<br />
the data<br />
– Use XPath when referencing fields within<br />
the data<br />
Support round-tripping<br />
– Read <strong>and</strong> write data in described format<br />
from same description<br />
Keep simple cases simple<br />
– Simple descriptions should be human<br />
readable<br />
7 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
Example – Delimited text data<br />
Initiator<br />
Separator<br />
Initiator<br />
intval=5;fltval=-7.1E8<br />
ASCII text<br />
integer<br />
ASCII text floating<br />
point<br />
Separators, initiators (aka tags), & terminators are all examples in <strong>DFDL</strong> of delimiters<br />
8 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
Example – <strong>DFDL</strong> schema<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<strong>DFDL</strong><br />
<strong>DFDL</strong><br />
properties<br />
<br />
annotation<br />
;<br />
int=5<br />
float=-7.1E8<br />
9 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
Example – <strong>DFDL</strong> schema (short form)<br />
<strong>DFDL</strong> features<br />
Language structures such as COBOL, C <strong>and</strong> PL/1<br />
Industry st<strong>and</strong>ards such as SWIFT, HL7, FIX, HIPAA, X12, EDIFACT, ISO8583<br />
Fixed data <strong>and</strong> data delimited by text or binary markup<br />
Text data types such as strings, numbers, zoned decimals, calendars, booleans<br />
Binary data types such as integers, floats, BCD, packed decimal, calendars, booleans<br />
Bi-directional text<br />
Bit data of arbitrary length<br />
Pattern languages for text numbers <strong>and</strong> calendars<br />
Ordered, unordered <strong>and</strong> floating content<br />
Default values on parsing <strong>and</strong> serializing<br />
Nil values for h<strong>and</strong>ling out-of-b<strong>and</strong> data<br />
XPath 2.0 expression language including variables to model dynamic data<br />
Speculative parsing to resolve choices <strong>and</strong> optional content<br />
Fixed <strong>and</strong> variable arrays<br />
Hide elements in the data<br />
Calculate element values<br />
Validation to XML Schema <strong>1.0</strong> rules<br />
Scoping mechanism to allow common property values to be applied at multiple points<br />
11 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
XML Schema subset<br />
element<br />
type<br />
*<br />
*<br />
group<br />
complexType<br />
simpleType<br />
sequence<br />
choice<br />
<strong>DFDL</strong> properties are placed on yellow objects only<br />
12 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
Supported Simple Types<br />
anySimpleType<br />
string QName NOTATION float double decimal boolean base64Binary hexBinary anyURI<br />
normalizedString<br />
integer<br />
token<br />
long nonPositiveInteger nonNegativeInteger<br />
language Name NMTOKEN<br />
int<br />
negativeInteger positiveInteger unsignedLong<br />
NCName<br />
NMTOKENS<br />
short<br />
unsignedInt<br />
ID IDREF ENTITY<br />
byte<br />
unsignedShort<br />
IDREFS<br />
ENTITIES<br />
unsignedByte<br />
date time dateTime gYear gYearMonth gMonth gMonthDay gDay duration<br />
13 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
13<br />
www.ogf.org
<strong>DFDL</strong> language – basic annotations<br />
Annotation<br />
Used on Component<br />
Purpose<br />
dfdl:element<br />
dfdl:choice<br />
xs:element<br />
xs:element reference<br />
xs:choice<br />
Contains the <strong>DFDL</strong> properties of an xs:element <strong>and</strong> xs:element<br />
reference<br />
Contains the <strong>DFDL</strong> properties of an xs:choice.<br />
dfdl:sequence<br />
xs:sequence<br />
Contains the <strong>DFDL</strong> properties of an xs:sequence.<br />
dfdl:group<br />
dfdl:simpleType<br />
xs:group reference<br />
xs:simpleType<br />
Contains the <strong>DFDL</strong> properties of an xs:group reference to a group<br />
definition containing an xs:sequence or xs:choice.<br />
Contains the <strong>DFDL</strong> properties of an xs:simpleType<br />
dfdl:format<br />
dfdl:defineFormat<br />
xs:schema<br />
dfdl:defineFormat<br />
xs:schema<br />
Contains a set of <strong>DFDL</strong> properties that can be used by multiple<br />
<strong>DFDL</strong> schema components. When used directly on xs:schema,<br />
the property values act as defaults for all components in the<br />
<strong>DFDL</strong> schema.<br />
Defines a reusable data format by associating a name with a set<br />
of <strong>DFDL</strong> properties contained within a child dfdl:format<br />
annotation. The name can be referenced from <strong>DFDL</strong> annotations<br />
on multiple <strong>DFDL</strong> schema components, using dfdl:ref.<br />
14 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
<strong>DFDL</strong> language – advanced annotations<br />
Annotation<br />
Used on Component<br />
Purpose<br />
dfdl:assert<br />
dfdl:discriminator<br />
dfdl:escapeScheme<br />
dfdl:defineEscapeScheme<br />
dfdl:hidden<br />
xs:element, xs:choice<br />
xs:sequence, xs:group<br />
xs:element, xs:choice<br />
xs:sequence, xs:group<br />
dfdl:defineEscapeScheme<br />
xs:schema<br />
xs:sequence<br />
Defines a test to be used to ensure the data are well formed.<br />
Used only when parsing data.<br />
Defines a test to be used when resolving a point of<br />
uncertainty such as choice branches or optional elements.<br />
Used only when parsing.<br />
Defines a scheme by which quotation marks <strong>and</strong> escape<br />
characters can be specified. This is for use with delimited<br />
text formats.<br />
Defines a named, reusable escape scheme. The name can<br />
be referenced from <strong>DFDL</strong> annotations on multiple <strong>DFDL</strong><br />
schema components.<br />
Defines a hidden element that appears in the schema for use<br />
by the <strong>DFDL</strong> processor, but is not part of the infoset.<br />
dfdl:defineVariable<br />
dfdl:newVariableInstance<br />
dfdl:setVariable<br />
xs:schema<br />
xs:element, xs:choice<br />
xs:sequence, xs:group<br />
xs:element, xs:choice<br />
xs:sequence, xs:group<br />
Defines a variable that can be referenced elsewhere. This<br />
can be used to communicate a parameter from one part of<br />
processing to another part.<br />
Creates a new instance of a variable<br />
Sets the value of a variable whose declaration is in scope<br />
15 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
<strong>DFDL</strong> Information Set<br />
An abstract data set defining the content that must be provided<br />
- To an application by a <strong>DFDL</strong> Parser<br />
- To a <strong>DFDL</strong> Unparser by an application<br />
Same concept as XML Data Model (XDM)<br />
16 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
16<br />
www.ogf.org
Speculative parsing<br />
<br />
<br />
<br />
<br />
<br />
<br />
The <strong>DFDL</strong> parser is a recursive-descent parser with look-ahead used to<br />
resolve points of uncertainty:<br />
– A choice<br />
– An optional element<br />
– A variable array of elements<br />
Put another way, the <strong>DFDL</strong> parser speculatively attempts to parse data<br />
until an object is either ‘known to exist’ or ‘known not to exist’<br />
Until that applies, the occurrence of a processing error causes the parser<br />
to suppress the error, back track <strong>and</strong> make another attempt<br />
Example: The parser tries the 1st branch of a choice, but gets a<br />
processing error. It back tracks <strong>and</strong> tries the 2 nd branch, which succeeds<br />
The dfdl:discriminator annotation can be used to assert that an object is<br />
‘known to exist’, which prevents incorrect back tracking<br />
The presence of an initiator (tag) is also able to assert ‘known to exist’<br />
17 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
Setting defaults for <strong>DFDL</strong> properties<br />
In the <strong>DFDL</strong> language, <strong>DFDL</strong> properties do not have built-in defaults<br />
This is a deliberate design decision to avoid behavioural differences when<br />
switching platforms <strong>and</strong> locales<br />
If an object needs a property, a value must be explicitly supplied for the property<br />
1.You can set the property locally on the object itself<br />
2.You can set the property in the schema’s special dfdl:format annotation, where it<br />
acts as a default for all objects in the schema<br />
3.You can set the property on a dfdl:format annotation within a named, shareable<br />
dfdl:defineFormat annotation, <strong>and</strong> reference the dfdl:defineFormat using the<br />
special dfdl:ref property<br />
The dfdl:ref property can also be used on dfdl:format, enabling inheritance chaining<br />
In <strong>DFDL</strong>, using dfdl:format to set property defaults in this way is called scoping<br />
18 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
An example of <strong>DFDL</strong> scoping<br />
a:xxx,b:yyy,c:zzz<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Property<br />
set locally<br />
<br />
<br />
<br />
<br />
19 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
<br />
<br />
<br />
<br />
Property from<br />
schema’s<br />
dfdl:format<br />
Property via<br />
dfdl:ref<br />
www.ogf.org
Agenda<br />
<strong>DFDL</strong> Language Overview<br />
<strong>Specification</strong> Update<br />
IBM <strong>DFDL</strong> <strong>1.0</strong><br />
<strong>Open</strong> source Daffodil<br />
Demo of IBM <strong>DFDL</strong><br />
Next steps<br />
20 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
Status<br />
<br />
<br />
<br />
<strong>DFDL</strong> <strong>1.0</strong> spec is currently a Proposed Recommendation<br />
– GFD-P-R.174<br />
– Since Feb 2011<br />
Progress towards Recommendation<br />
– Two implementations underway<br />
– Several errata found<br />
– Likely to require another Public Comment phase<br />
Supplementary publications<br />
– HTML version of spec<br />
– Multi-part tutorial (in progress)<br />
– GFD-I.190 Mapping between <strong>DFDL</strong> Infoset <strong>and</strong> XDM<br />
– GWD-I Example set of <strong>DFDL</strong> properties (in Public Comment)<br />
21 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
21<br />
www.ogf.org
Errata<br />
<br />
<br />
<br />
<br />
<br />
Errata are being tracked in a separate <strong>DFDL</strong>-WG document on <strong>Grid</strong>Forge<br />
Divided into Editorial, Minor <strong>and</strong> Major<br />
Minor errata are typically clarifications to behaviour<br />
Major errata imply additional or corrected behaviour<br />
Examples of Major errata:<br />
– New failure type ‘recoverable error’ for use by dfdl:assert<br />
– Enhance Infoset to enable W3C PSVI to be built<br />
– Revise h<strong>and</strong>ling of Unicode BOMs<br />
– Limit dfdl:lengthKind ‘pattern’ to text data<br />
– Allow complex elements to be ‘nillable’<br />
– Semantic of validation when unparsing<br />
– Control of encoding/decoding errors<br />
– Renaming dfdl:separatorPolicy<br />
– Additional dfdl:occursCountKind ‘implicit’<br />
– Clarification of ‘empty’ <strong>and</strong> ‘missing’ <strong>and</strong> when to apply default values<br />
22 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
22<br />
www.ogf.org
Conformance<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<strong>DFDL</strong> <strong>1.0</strong> specification is not small! (170 pages)<br />
<strong>DFDL</strong>-WG want to make it easier to create conforming processors<br />
Conformance can be claimed separately for <strong>DFDL</strong> Parser & Unparser<br />
The features of <strong>DFDL</strong> are divided into Core <strong>and</strong> Optional<br />
A <strong>DFDL</strong> Parser, Unparser or Processor can claim to be:<br />
– Minimal<br />
– Extended<br />
– Full<br />
Example: A Minimal <strong>DFDL</strong> Parser implements just the parser <strong>and</strong> all<br />
Core features<br />
Example: An Extended <strong>DFDL</strong> Processor implements both parser <strong>and</strong><br />
unparser, all Core features plus some Optional features<br />
Conformance test suite desirable (major undertaking)<br />
23 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
23<br />
www.ogf.org
Tutorial<br />
<br />
<br />
Easier, non-normative way to learn <strong>DFDL</strong><br />
– Same idea as XML Schema <strong>1.0</strong> Primer<br />
Divided into example-based Lessons so you can learn at your own pace<br />
1. Introduction<br />
2. Language Basics<br />
3. <strong>DFDL</strong> Properties<br />
4. Modeling Basic Structures<br />
5. Modeling Alternative Structures<br />
6. Modeling Optional <strong>and</strong> Repeating Data<br />
7. Modeling Text Values<br />
8. Modeling Binary Values<br />
9. …<br />
Drafts available for Lessons 1 to 6<br />
24 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
24<br />
www.ogf.org
Agenda<br />
<strong>DFDL</strong> Language Overview<br />
<strong>Specification</strong> Update<br />
IBM <strong>DFDL</strong> <strong>1.0</strong><br />
<strong>Open</strong> source Daffodil<br />
Demo of IBM <strong>DFDL</strong><br />
Next steps<br />
25 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
IBM <strong>DFDL</strong> <strong>1.0</strong><br />
Designed as an embeddable component<br />
– Shipped with IBM WebSphere Message Broker V8 in 4Q 2011<br />
– Other IBM products will adopt<br />
<strong>DFDL</strong> processor<br />
– Parser <strong>and</strong> Unparser (Java <strong>and</strong> C versions)<br />
– Uses compiled schema (grammar)<br />
– SAX-like events<br />
– Streaming, on-dem<strong>and</strong><br />
Tooling for creating <strong>DFDL</strong> models<br />
– Eclipse plugins<br />
– Guided authoring wizards<br />
– COBOL importer wizard<br />
– <strong>DFDL</strong> schema editor<br />
– Debug model using real data from within tooling<br />
<strong>DFDL</strong> infocenter<br />
– Includes HTML version of spec<br />
26 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
IBM <strong>DFDL</strong> <strong>1.0</strong> - Status<br />
IBM <strong>DFDL</strong> <strong>1.0</strong> implements about 85% of the OGF <strong>DFDL</strong> <strong>1.0</strong> specification<br />
– Support for rest will be added in future IBM <strong>DFDL</strong> releases<br />
Currently unsupported:<br />
– Bi-directional text<br />
– Unordered groups & floating elements<br />
– Regular expressions<br />
– Hidden groups & calculated values<br />
– Certain XPath functions<br />
– Delimited binary data<br />
– Arrays with stop values<br />
– Default values (parser) & complex default values (serializer)<br />
– Prefixed length (serializer)<br />
IBM <strong>DFDL</strong> <strong>1.0</strong> already implements majority of the identified spec errata<br />
Can I use it?<br />
– Yes, if you buy WebSphere Message Broker<br />
– Can download free trial edition<br />
27 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
Agenda<br />
<strong>DFDL</strong> Language Overview<br />
<strong>Specification</strong> Update<br />
IBM <strong>DFDL</strong> <strong>1.0</strong><br />
<strong>Open</strong> source Daffodil<br />
Demo of IBM <strong>DFDL</strong><br />
Next steps<br />
28 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
<strong>Open</strong> Source Daffodil<br />
Hosted at University of Illinois<br />
– Uses Scala programming language<br />
– Also Git, Eclipse, Jira, Fisheye, ...<br />
– Univ of Illinois license (very BSD-like)<br />
Goal is to implement the entire <strong>DFDL</strong> specification<br />
– Parser <strong>and</strong> Unparser<br />
– DOM-tree-style implementation<br />
– Not streaming/event (yet)<br />
Active contributors from both corporations <strong>and</strong> US government labs<br />
– Details are available on the project Wiki<br />
– Big interest in <strong>DFDL</strong> from a US government department<br />
– Contributors are welcome!<br />
29 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
<strong>Open</strong> Source Daffodil - Status<br />
History<br />
– Started at the Univ of Illinois' National Center for Supercomputing Applications<br />
• With funding from US National Archives <strong>and</strong> Records Administration<br />
– Designed for an earlier working-copy of the <strong>DFDL</strong> specification<br />
Activity<br />
– Code-base is being refactored <strong>and</strong>/or rewritten to provide conformance to<br />
current <strong>DFDL</strong> <strong>1.0</strong> specification<br />
– New compiler-style front-end that parses <strong>DFDL</strong> schemas <strong>and</strong> constructs a<br />
robust abstract syntax tree of the schema<br />
Themes<br />
– Design-for-Test (DFT) - conformance tests means lots of tests<br />
• Re-using the .tdml test format from IBM <strong>DFDL</strong><br />
– Convert to a more declarative <strong>and</strong> functional coding style<br />
Can I use it?<br />
– Not just yet (ongoing changes means it is very unstable right now)<br />
– Milestone #1: 3Q 2012 to have something usable, stable, interesting<br />
– Milestone #2: 2013 to have conforming implementation<br />
30 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
Agenda<br />
<strong>DFDL</strong> Language Overview<br />
<strong>Specification</strong> Update<br />
IBM <strong>DFDL</strong> <strong>1.0</strong><br />
<strong>Open</strong> source Daffodil<br />
Demo of IBM <strong>DFDL</strong><br />
Next steps<br />
31 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
IBM <strong>DFDL</strong> <strong>1.0</strong> – Schema editor<br />
Logical<br />
structure<br />
view<br />
<strong>DFDL</strong><br />
properties<br />
view<br />
32 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
IBM <strong>DFDL</strong> <strong>1.0</strong> – Schema debugger<br />
Parsed<br />
‘infoset’<br />
Run<br />
parser<br />
Sample<br />
Parsed<br />
data<br />
data<br />
33 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
Delimiters<br />
highlighted<br />
Hex view<br />
www.ogf.org
IBM <strong>DFDL</strong> <strong>1.0</strong> – Schema debugger<br />
Object in<br />
error<br />
Parsed<br />
‘infoset’ up<br />
to error<br />
Error<br />
message<br />
Model<br />
<strong>and</strong> data<br />
linked<br />
Parsed<br />
data up to<br />
error<br />
Trace<br />
console<br />
34 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
Agenda<br />
<strong>DFDL</strong> Language Overview<br />
<strong>Specification</strong> Update<br />
IBM <strong>DFDL</strong> <strong>1.0</strong><br />
<strong>Open</strong> source Daffodil<br />
Demo of IBM <strong>DFDL</strong><br />
Next steps<br />
35 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
Next Steps<br />
<br />
<br />
<br />
<br />
<br />
<strong>DFDL</strong>-WG conference calls held every Tuesday<br />
Current focus is on identifying <strong>and</strong> resolving any errata<br />
Need to complete Tutorial<br />
Contributors welcome to open source ‘Daffodil’ project<br />
Join the mailing list http://www.ogf.org/mailman/listinfo/dfdl-wg<br />
36 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
36<br />
www.ogf.org
Links<br />
OGF <strong>DFDL</strong> home page: http://www.ogf.org/dfdl/<br />
<strong>DFDL</strong> <strong>1.0</strong> specification (pdf): http://www.ogf.org/documents/GFD.174.pdf<br />
<strong>DFDL</strong> <strong>1.0</strong> specification (html): http://www.ogf.org/dfdl/spec.php<br />
<strong>DFDL</strong> tutorial: http://forge.gridforum.org/sf/docman/do/listDocuments/projects.dfdlwg/docman.root.current_0.documents<br />
<strong>DFDL</strong>-WG <strong>Grid</strong>Forge project: https://forge.ogf.org/sf/projects/dfdl-wg<br />
<strong>DFDL</strong> Wikipedia page: http://en.wikipedia.org/wiki/<strong>DFDL</strong><br />
IBM WebSphere Message Broker trial edition:<br />
http://www.ibm.com/developerworks/downloads/ws/wmb/<br />
<strong>Open</strong> Source Daffodil:<br />
https://opensource.ncsa.illinois.edu/confluence/display/<strong>DFDL</strong>/Home<br />
37 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org
Grazie<br />
Italian<br />
Thai<br />
Traditional Chinese<br />
Russian<br />
Gracias<br />
Spanish<br />
Obrigado<br />
Brazilian Portuguese<br />
Danke<br />
German<br />
Merci<br />
French<br />
Arabic<br />
Simplified Chinese<br />
Japanese<br />
38 © 2012 <strong>Open</strong> <strong>Grid</strong> <strong>Forum</strong><br />
www.ogf.org