[ 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><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></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