Congrats!

> On Nov 8, 2022, at 8:35 AM, Roger L Costello <coste...@mitre.org> wrote:
> 
> Excellent! Thank you Steve.
> 
> /Roger
> 
> -----Original Message-----
> From: Steve Lawrence <slawre...@apache.org> 
> Sent: Tuesday, November 8, 2022 8:13 AM
> To: users@daffodil.apache.org
> Subject: [EXT] Re: [ANNOUNCE] Apache Daffodil 3.4.0 Released
> 
> Sure thing.
> 
> Say we have a really simple data format that is a length followed by a 
> string payload. Our DFDL schema might look like this:
> 
>   <element name="format">
>     <complexType>
>       <sequence>
>         <element name="length" type"xs:int" dfdl:length="4" ... />
>         <element name="payload" type="xs:string" dfdl:length="{ 
> ../length }" ... />
>       </sequence>
>     </complexType>
>   </element>
> 
> This would parse data like this:
> 
>   0011Hello World
> 
> To this:
> 
>   <format>
>     <length>11</length>
>     <payload>Hello World</payload>
>   </format>
> 
> But what if our payload contained XML data? Then our data would look 
> like this:
> 
>   0020<hello>world</hello>
> 
> Which would parse to this:
> 
>   <format>
>     <length>20</length>
>     <payload>&lt;hello&gt;world&lt;/hello&gt;</payload>
>   </format>
> 
> Note that the payload now contains escaped XML. This makes it difficult 
> to validated this "embedded XML" using things like XSD/schematron since 
> it's just a string.
> 
> So what you can do now is modify the payload definition to add the 
> dfdlx:runtimeProperties attribute like this:
> 
>           <element name="payload" type="xs:string" dfdl:length="{ 
> ../length }" dfdlx:runtimeProperties="stringAsXml=true" .../>
> 
> Then when we parse the same data as above, we would get an infoset that 
> looks like this:
> 
>   <format>
>     <length>20</length>
>     <payload>
>       <stringAsXml xmlns="">
>         <hello>world</hello>
>       </stringAsXml>
>     </payload>
>   </format>
> 
> So what used to be a simple "payload" element in the infoset, now 
> becomes a complex element that contains a "stringAsXml" element as its 
> child, and that contains the payload content as actual XML instead of an 
> XML-escaped string. This makes it much easier to query and validate this 
> XML payload since it's actually XML instead of an escaped string.
> 
> Note that this only currently works with the default XML text outputter.
> 
> Also note this new infoset doesn't validate against the DFDL schema, so 
> a separate schema is needed to validate this content if needed.
> 
> For some more complex examples of this, we have test files and schema 
> (including an example of a separate validation schema) in this directory:
> 
> https://github.com/apache/daffodil/tree/main/daffodil-test/src/test/resources/org/apache/daffodil/infoset/stringAsXml/namespaced
> 
> 
> 
> On 11/8/22 7:47 AM, Roger L Costello wrote:
>> Hi Steve,
>> 
>> I read the description of "embedded XML" and I don't get it. Would you 
>> provide an example of what it's used for please?
>> 
>> /Roger
>> 
>> -----Original Message-----
>> From: Steve Lawrence <slawre...@apache.org>
>> Sent: Tuesday, November 8, 2022 7:34 AM
>> To: users@daffodil.apache.org
>> Subject: [EXT] [ANNOUNCE] Apache Daffodil 3.4.0 Released
>> 
>> The Apache Daffodil community is pleased to announce the
>> release of version 3.4.0.
>> 
>> Notable changes in this release include EXI binary XML support,
>> pluggable character sets, embedded XML, and C code generator updates
>> 
>> Detailed release notes and downloads are available at:
>> 
>> https://daffodil.apache.org/releases/3.4.0/
>> 
>> Apache Daffodil is an open-source implementation of the DFDL
>> specification that uses DFDL data descriptions to parse fixed format
>> data into an infoset. This infoset is commonly converted into XML or
>> JSON to enable the use of well-established XML or JSON technologies
>> and libraries to consume, inspect, and manipulate fixed format data in
>> existing solutions. Daffodil is also capable of serializing or
>> "unparsing" data back to the original data format. The DFDL infoset
>> can also be converted directly to/from the  data structures carried by
>> data processing frameworks so as to bypass any XML/JSON overheads.
>> 
>> For more information about Daffodil visit:
>> 
>> https://daffodil.apache.org/
>> 
>> Regards,
>> The Apache Daffodil Team

Reply via email to