Hi Daniel, Can you please open a bugzilla for this problem and attach a diff of the java files of your patch against the ent code base?
TIA, Arnaud > -----Original Message----- > From: Armbrust, Daniel C. [mailto:[EMAIL PROTECTED] > Sent: Monday, June 23, 2003 10:08 PM > To: [EMAIL PROTECTED] > Subject: [castor-dev] Mixed types and Castor > > > We have been using Castor for a while now, and just ran into > the bug (or possibly feature request) that Castor cannot > handle mixed types. > > Given this schema: > > > > <?xml version="1.0" encoding="UTF-8"?> > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" > elementFormDefault="qualified"> > <xs:element name="base"> > <xs:complexType> > <xs:sequence> > <xs:element ref="i1" > maxOccurs="unbounded"/> > </xs:sequence> > </xs:complexType> > </xs:element> > > <xs:element name="i1"> > <xs:complexType mixed="true"> > <xs:choice minOccurs="0" maxOccurs="unbounded"> > <xs:element ref="i2"/> > </xs:choice> > </xs:complexType> > </xs:element> > > <xs:element name="i2"> > <xs:complexType mixed="true"> > <xs:choice minOccurs="0" maxOccurs="unbounded"> > <xs:element ref="i"/> > </xs:choice> > </xs:complexType> > </xs:element> > > <xs:element name="i" type="xs:string"/> > </xs:schema> > > > > Doing a build and a compile, trying to do an unmarshal > results in this exception: > > > > org.xml.sax.SAXException: Illegal Text data found as child of: _items > value: " embedded" > at > org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHan > dler.java:690) > at > org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHan > dler.java:556) > at > org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) > at > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndE > lement(Unknown Source) > at > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$Fragment > ContentDispatcher.dispatch(Unknown Source) > at > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocu > ment(Unknown Source) > at > org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) > at > org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) > at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) > at > org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) > at > org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:555) > at > org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:487) > at mixed.Untitled1.main(Untitled1.java:23) > > > We really needed this to work, so we dug in, so to speak, and > modified Castor so that it handles mixed types properly - > including returning the elements in the correct order. > > It can now handle an unmarshal/marshal of the following bit of XML: > > > <?xml version="1.0" encoding="UTF-8"?> > <base xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:noNamespaceSchemaLocation="C:\work\development\MixedTest\m.xsd"> > <i1>Leading<i2>more > <i>17</i> embedded</i2> > <i2>hereto<i>43</i> > </i2> trailing</i1> > </base> > > > I would be more than happy to commit back the changes (4 > classes in castor.builder [3 modified, 1 new], and 3 classes > in castor.xml [all modified]) so that they could be included > in the main source tree. > > We tried to maintain full backwards compatibility, but these > changes have definitely not been tested thoroughly. How > should I proceed? I can send back a .jar file of my modified > version of castor, so you could run whatever regression tests > you have on it... Or I can send you the modified files, or I > can send you some CVS diffs (or all of the above) They may > also be a bit more hackish in places than the maintainers > would like... You will have to let me know. > > Please advise, > > Thanks, > > Dan > > ----------------------------------------------------------- > If you wish to unsubscribe from this mailing, send mail to > [EMAIL PROTECTED] with a subject of: > unsubscribe castor-dev > ----------------------------------------------------------- If you wish to unsubscribe from this mailing, send mail to [EMAIL PROTECTED] with a subject of: unsubscribe castor-dev
