[ 
https://issues.apache.org/jira/browse/XMLBEANS-241?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wing Yew Poon reassigned XMLBEANS-241:
--------------------------------------

    Assignee: Cezar Andrei

> Nested XML - CData inconsistencies
> ----------------------------------
>
>                 Key: XMLBEANS-241
>                 URL: https://issues.apache.org/jira/browse/XMLBEANS-241
>             Project: XMLBeans
>          Issue Type: Bug
>          Components: XmlObject
>         Environment: XP Professional
>            Reporter: Keith Daurs
>            Assignee: Cezar Andrei
>            Priority: Critical
>
> Trying to insert XML data into an existing XML document. Success of this 
> operation appears to be dependant on the size of data held in the nested XML 
> child elements. Operation works fine up to a certain size with nested XML 
> correctly wrapped within CDATA. However, if child elements are over a certain 
> size then nested XML is not recognised as CDATA and the <> chars are escaped, 
> causing parsing problems further down the line. 
> For an example I have used the EasyPO xsd as provided on the XMLBeans 
> website, and adding the folowing data as my nested XML:
> SUCCESSFUL RUN
> <nestedXML>
>       <testData>
>       <textDataOne>hello world hello world hello world hello world hello 
> world hello world hello world hello world hello world hello world hello world 
> hello world hello world hello world hello world hello world hello world hello 
> world hello world hello world hello world hello world hello world hello world 
> hello world hello world hello world </textDataOne>
>       <sizeTextDataOne>324 bytes</sizeTextDataOne>
>       <textDataTwo>hello</textDataTwo>
>       <sizeTextDataTwo>5 bytes</sizeTextDataTwo>
>       </testData>
> </nestedXML>
> Output as follows:
> <?xml version="1.0" encoding="UTF-8"?>
> <purchase-order xmlns="http://openuri.org/easypo";>
>     <customer>
>         <name>Gladys Kravitz</name>
>         <address>Anytown, PA</address>
>     </customer>
>     <date>2003-01-07T14:16:00-05:00</date>
>     <line-item>
>         <description>Burnham's Celestial Handbook, Vol 1</description>
>         <per-unit-ounces>5</per-unit-ounces>
>         <price>21.79</price>
>         <quantity>2</quantity>
>     </line-item>
>     <line-item>
>         <description>Burnham's Celestial Handbook, Vol 2</description>
>         <per-unit-ounces>5</per-unit-ounces>
>         <price>19.89</price>
>         <quantity>2</quantity>
>     </line-item>
>     <line-item><description><![CDATA[<nestedXML>
>       <testData>
>       <textDataOne>hello world hello world hello world hello world hello 
> world hello world hello world hello world hello world hello world hello world 
> hello world hello world hello world hello world hello world hello world hello 
> world hello world hello world hello world hello world hello world hello world 
> hello world hello world hello world </textDataOne>
>       <sizeTextDataOne>324 bytes</sizeTextDataOne>
>       <textDataTwo>hello</textDataTwo>
>       <sizeTextDataTwo>5 bytes</sizeTextDataTwo>
>       </testData>
> </nestedXML>]]></description></line-item><shipper>
>         <name>ZipShip</name>
>         <per-ounce-rate>0.74</per-ounce-rate>
>     </shipper>
> </purchase-order>
> UNSUCCESSFUL RUN
> <nestedXML>
>       <testData>
>       <textDataOne>hello world hello world hello world hello world hello 
> world hello world hello world hello world hello world hello world hello world 
> hello world hello world hello world hello world hello world hello world hello 
> world hello world hello world hello world hello world hello world hello world 
> hello world hello world hello world </textDataOne>
>       <sizeTextDataOne>324 bytes</sizeTextDataOne>
>       <textDataTwo>hello world hello world hello world hello world hello 
> world hello world hello world hello world hello world hello world hello world 
> hello world hello world hello world hello world hello world hello world hello 
> world hello world hello world hello world hello world hello world hello world 
> hello world hello world hello world </textDataTwo>
>       <sizeTextDataTwo>324 bytes</sizeTextDataTwo>
>       </testData>
> </nestedXML>
> Output as follows:
> <?xml version="1.0" encoding="UTF-8"?>
> <purchase-order xmlns="http://openuri.org/easypo";>
>     <customer>
>         <name>Gladys Kravitz</name>
>         <address>Anytown, PA</address>
>     </customer>
>     <date>2003-01-07T14:16:00-05:00</date>
>     <line-item>
>         <description>Burnham's Celestial Handbook, Vol 1</description>
>         <per-unit-ounces>5</per-unit-ounces>
>         <price>21.79</price>
>         <quantity>2</quantity>
>     </line-item>
>     <line-item>
>         <description>Burnham's Celestial Handbook, Vol 2</description>
>         <per-unit-ounces>5</per-unit-ounces>
>         <price>19.89</price>
>         <quantity>2</quantity>
>     </line-item>
>     <line-item><description>&lt;nestedXML>
>       &lt;testData>
>       &lt;textDataOne>hello world hello world hello world hello world hello 
> world hello world hello world hello world hello world hello world hello world 
> hello world hello world hello world hello world hello world hello world hello 
> world hello world hello world hello world hello world hello world hello world 
> hello world hello world hello world &lt;/textDataOne>
>       &lt;sizeTextDataOne>324 bytes&lt;/sizeTextDataOne>
>       &lt;textDataTwo>hello world hello world hello world hello world hello 
> world hello world hello world hello world hello world hello world hello world 
> hello world hello world hello world hello world hello world hello world hello 
> world hello world hello world hello world hello world hello world hello world 
> hello world hello world hello world &lt;/textDataTwo>
>       &lt;sizeTextDataTwo>324 bytes&lt;/sizeTextDataTwo>
>       &lt;/testData>
> &lt;/nestedXML></description></line-item><shipper>
>         <name>ZipShip</name>
>         <per-ounce-rate>0.74</per-ounce-rate>
>     </shipper>
> </purchase-order>
> Example code used:
> import java.io.File;
> import java.io.IOException;
> import org.apache.xmlbeans.XmlException;
> import org.apache.xmlbeans.XmlObject;
> import org.openuri.easypo.LineItem;
> import org.openuri.easypo.PurchaseOrderDocument;
> /**
>  * @author
>  *
>  */
> public class XMLBeanTester
> {
>       /**
>        * @param args
>        */
>       public static void main(String[] args)
>       {
>               new XMLBeanTester().testXMLBeans();
>       }
>       
>       public void testXMLBeans()
>       {
>               File xmlFile = new File("myPO.xml");
>               String test_XML_data = "nested_xml.xml";
>               try
>               {
>                       PurchaseOrderDocument PODoc = 
> PurchaseOrderDocument.Factory.parse(xmlFile);
>                       XmlObject xml = XmlObject.Factory.parse(new 
> File(test_XML_data));               
>                       LineItem item = 
> PODoc.getPurchaseOrder().addNewLineItem();
>                       item.setDescription(xml.xmlText());     
>                       PODoc.save(new File("myNewPO.xml"));
>               }
>               catch (XmlException e)
>               {
>                       System.out.println("XML Problem:- ");
>                       e.printStackTrace();
>               }
>               catch (IOException e)
>               {
>                       System.out.println("IO Problem:- ");
>                       e.printStackTrace();
>               } 
>       }
> }
> Is this a known bug or I am I missing something fundamental (quite 
> possible!)? Any input will be appreciated as this is now having a serious 
> impact on our project.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@xmlbeans.apache.org
For additional commands, e-mail: dev-h...@xmlbeans.apache.org

Reply via email to