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

Michael Beckerle commented on DAFFODIL-2141:
--------------------------------------------

This problem is responsible for the TDML cross test runner bug:

https://github.com/OpenDFDL/ibmDFDLCrossTester/issues/8

because the infoset being output from the parse has the wrong namespaces, the 
IBM DFDL cross-tester feeds the wrong element to IBM DFDL which is unable to 
unparse it.

The rather gross workaround is to use elementFormDefault="qualified".

> namespace prefix definitions wrong in parse result infoset
> ----------------------------------------------------------
>
>                 Key: DAFFODIL-2141
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2141
>             Project: Daffodil
>          Issue Type: Bug
>          Components: Back End
>    Affects Versions: 2.4.0
>            Reporter: Michael Beckerle
>            Priority: Major
>             Fix For: 2.4.0
>
>
> If you run the CSV example, the Infoset XML from parse looks like:
>  
> {code:java}
> <file xmlns="http://example.com";>
>     <header xmlns="">
>         <title>last</title>
>         <title>first</title>
>         <title>middle</title>
>         <title>DOB</title>
>     </header>
>     <record>
>         <item>smith</item>
>         <item>robert</item>
>         <item>brandon</item>
>         <item>1988-03-24</item>
>     </record>
>     <record>
>         <item>johnson</item>
>         <item>john</item>
>         <item>henry</item>
>         <item>1986-01-23</item>
>     </record>
>     <record>
>         <item>jones</item>
>         <item>arya</item>
>         <item>cat</item>
>         <item>1986-02-19</item>
>     </record>
> </file>
> {code}
> The above is simply wrong, because the elementFormDefault is 'unqualified', 
> so the record element is a local element declaration in no namespace. The 
> above sets the default no-prefix namespace to the example namespace, and that 
> definition applies not to the header element, which overrides it, but to all 
> the record elements and their children.
>  
> This is simply incorrect. Every record element needs the same xmlns="" on it 
> as well as the header element.
> A better output infoset would reuse the "ex" prefix definition from the 
> CSV.dfdl.xsd schema and output this:
>  
> {code:java}
> <ex:file xmlns:ex="http://example.com";>
>   <header>
>     <title>last</title>
>     <title>first</title>
>     <title>middle</title>
>     <title>DOB</title>
>   </header>
>   <record>
>     <item>smith</item>
>     <item>robert</item>
>     <item>brandon</item>
>     <item>1988-03-24</item>
>   </record>
>   <record>
>     <item>johnson</item>
>     <item>john</item>
>     <item>henry</item>
>     <item>1986-01-23</item>
>   </record>
>   <record>
>     <item>jones</item>
>     <item>arya</item>
>     <item>cat</item>
>     <item>1986-02-19</item>
>   </record>
> </ex:file>
> {code}
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to