OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

election-services-comment message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Comment on EML Structure


As a new user of EML 5.0, I wanted to run the EML schema files through 
Apache Xmlbeans or JAXB to generate Java bindings for EML documents.  The 
generated Java classes would provide a higher level interface than that of 
SAX or DOM, both of which force applications to deal directly with XML. 
Unfortunately, many of the EML schema files define the same top-level 
element, <EML>, which complicates the use of code generating tools. 

For example, 440-castvote documents and 410-ballots documents are both 
required to start with an <EML> element.  Applications cannot easily 
generate language bindings for both types of documents together because 
name conflict errors will occur during generation.  The language bindings 
could be generated separately for each EML schema, but the total size of 
generated code could easily get out of hand because of the many 
definitions duplicated in each library.  In addition to the <EML> name 
conflict, there are other name conflicts that cause problems, such as the 
definition of <Result> elements in 120-interdb and 520-result.

It would be nice if EML 6.0 could better accommodate the use of automated 
tools like language binding generators, but maintaining backwards 
compatibility might be a challenge.  In the meantime, I wrote a utility 
program, EML50Combine, that allows users to select which EML 5.0 schema 
files should be merged into a single schema file.  After EML50Combine 
runs, the combined schema file contains the definitions of all the 
selected EML schemas.  The combined schema file can then be inputted into 
a language binding generator like Apache Xmlbeans to generate classes for 
all the definitions it contains. 

Documentation and code for EML50Combine can be found at 
https://sourceforge.net/projects/eml50combine. 

Rich Cardone


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]