I have an XML file that contains this :
<ranges name="content" count="1" truncated="1">
<range start="2824" end="7473" count="2219"/>
</ranges>
<ranges name="comments" count="0" truncated="0">
</ranges>
<ranges name="headlines" count="17" truncated="0">
<range start="1016" end="1021" count="2"/>
<range start="1098" end="1105" count="3"/>
<range start="1365" end="1372" count="3"/>
<range start="1441" end="1448" count="3"/>
<range start="1616" end="1625" count="4"/>
<range start="1878" end="1914" count="9"/>
<range start="2139" end="2175" count="12"/>
<range start="2234" end="2239" count="2"/>
<range start="2620" end="2627" count="3"/>
<range start="2696" end="2703" count="3"/>
<range start="2829" end="2836" count="3"/>
<range start="3482" end="3493" count="5"/>
<range start="5365" end="5376" count="5"/>
<range start="6846" end="6857" count="5"/>
<range start="7454" end="7473" count="9"/>
<range start="7532" end="7537" count="2"/>
<range start="8031" end="8040" count="4"/>
</ranges>
<ranges name="indexable" count="1" truncated="0">
<range start="6" end="9627" count="3493"/>
</ranges>
I'm trying to unmarshal it using the following XML (this is only part of the
XML) :
<field name="sections" collection="map">
<bind-xml name="ranges">
<class name="org.exolab.castor.mapping.MapItem">
<field name="key" type="string">
<bind-xml name="name" node="attribute"/>
</field>
<field name="value" collection="collection"
type="types.PagePart">
<bind-xml name="range"/>
</field>
</class>
</bind-xml>
</field>
With the following XML for the PagePart class :
<class name="types.PagePart">
<field name="startOffset" type="integer">
<bind-xml name="start" node="attribute"/>
</field>
<field name="endOffset" type="integer">
<bind-xml name="end" node="attribute"/>
</field>
</class>
The PagePart class is just a simple class with two fields, startOffset and
endOffset, amd two getters/setters.
When some of the <ranges> tags don't contain any <range> tag, I get :
org.exolab.castor.xml.MarshalException: unable to resolve reference:
[EMAIL PROTECTED]: [not available]; line: 161;
column: 12}
at
org.exolab.castor.xml.Unmarshaller.convertSAXExceptionToMarshalException(Unmarshaller.java:761)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:727)
...
Caused by: ValidationException: unable to resolve reference:
[EMAIL PROTECTED]
at
org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHandler.java:899)
at
org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHandler.java:1159)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1772)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2923)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:508)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:715)
... 10 more
Is here a workaround for this?
Any help or ideas would be greatly appreciated.