[ 
https://issues.apache.org/jira/browse/DAFFODIL-1959?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16954158#comment-16954158
 ] 

Mike Beckerle commented on DAFFODIL-1959:
-----------------------------------------

Notes:

We should always supply a schema and do schema-aware EXI processing. Schemas 
can be big though, so one would like, if possible, to be able to pre-initialize 
an Exificient instance with a schema, then use it repeatedly to avoid the 
repeated overhead of digesting the schema.

For example, if parsing messages one by one using the message-streaming API, 
but using an EXI outputter, one certainly does NOT want to create a new EXI 
outputter, nor have it reinitialize the EXI system with the DFDL schema again 
for each message. We need a way to do that once, then on each parse call it is 
just reused.

Daffodil will never output XML comments nor processing instructions nor use 
DTDs, etc. those aren't part of the DFDL Infoset. So those options can be off, 
which the Exificient doc says they are by default. We don't need any of the 
"fidelity" options. E.g., preserve namespace prefixes, nor preserve character 
entity references, etc. 

The only debate/option is probably bit-packed representation (for small XML 
infosets), vs. compression (for large XML infosets).

Since we wouldn't want the consumer to have to know what the choices are by the 
producer, Exificient has an INCLUDE_OPTIONS setting which includes the options 
into the EXI stream (hopefully portably). and INCLUDE_SCHEMA_ID so that the 
identity of the schema is also carried along.

 

 

> EXIficient Inputter and outputter for XML EXI representation
> ------------------------------------------------------------
>
>                 Key: DAFFODIL-1959
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-1959
>             Project: Daffodil
>          Issue Type: New Feature
>          Components: Back End
>    Affects Versions: 2.1.0
>            Reporter: Mike Beckerle
>            Priority: Major
>              Labels: beginner
>
> Create EXI (dense binary XML) representation using an EXI-specific 
> InfosetInputter and InfosetOutputter.
> These would be very similar to the XML InfosetInputter and Outputter - as EXI 
> libraries such as EXIfficient https://github.com/EXIficient/exificient 
> already have SAX/StAX, APIs, etc. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to