|
Hello!
I'm changing from JAXB to Castor so I'm
quite new to this. I got an Exception during unmarshalling an XML
inputstream.
I generated the Java object from the primer.xsd
by:
javac -cp $CLASSPATH
org.exolab.castor.builder.SourceGenerator -i primer.xsd -package
primer
And if I use -nodesc (in the path) I will get an
org.xml.sax.SAXException: Illegal Text data found as child of: words value:
"1"
The thing is that I had used this primer.xsd with JAXB and the xjc generator command and I could unmarshall the stream without problem. By the way... When compiling the generated Java
sourcefiles I will get:
Note: Some input files use or override a deprecated
API.
Note: Recompile with -deprecation for
details.
This is because the org.xml.sax.DocumentHandler is
deprecated. Is this correct?
Could someone tell me what I am doing
wrong?
Best Regards/
Stefan H Westlund
--------------------------------------------------------------------------------------------------------------------
The Stack Trace:
org.xml.sax.SAXException: unable to create
XMLClassDescriptor for class: primer.Root
at
org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:980)
at
org.apache.xerces.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:411)
at
org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:778)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:823)
at
org.apache.xerces.impl.XMLDocumentScannerImpl$ContentDispatcher.scanRootElementHook(XMLDocumentScannerImpl.java:1028)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1610)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:348)
at
org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:539)
at
org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:595)
at
org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
at
org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1125)
at
org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:555)
at
granska.MyFrame.getRoot(MyFrame.java:268)
at
granska.MyFrame.access$2(MyFrame.java:131)
at
granska.MyFrame$AnalyzeThread.run(MyFrame.java:333)
----------------------------------------------------------------------------------------------------
The Java Sourcecode:
try
{
char[] chars = _text.toCharArray(); HttpURLConnection servletConnection = (HttpURLConnection)MyStatic.getServletURL( "analyze").openConnection(); servletConnection.setDoOutput( true); servletConnection.setDoInput( true); servletConnection.setUseCaches( false); servletConnection.setRequestMethod( "POST"); servletConnection.setRequestProperty( "Content-length", String.valueOf( chars.length)); servletConnection.connect(); OutputStreamWriter toServlet = new OutputStreamWriter( servletConnection.getOutputStream()); toServlet.write("text="); toServlet.write( chars); toServlet.flush(); toServlet.close(); InputSource source = new InputSource( servletConnection.getInputStream()); source.setEncoding( "UTF-8"); Unmarshaller unmarshaller = new Unmarshaller( Root.class); unmarshaller.setIgnoreExtraElements( true); unmarshaller.setValidation( false); Root root = (Root)unmarshaller.unmarshal( source); return root; } catch( Exception e) { e.printStackTrace(); } ----------------------------------------------------------------------------------------------------------
The XML Sample:
<?xml version="1.0" encoding="ISO-8859-1"
standalone="yes"?>
<Root><s ref="0"><words>1</words> <text>test</text> <contents><w no="0" tag="nn.neu.sin.ind.nom" lemma="test">test</w> </contents> <matchings><match begin="0" end="0">[EMAIL PROTECTED]</match> <match begin="0" end="0" features="nn.neu.sin.def.nom">[EMAIL PROTECTED]</match> </matchings> <analysis><clause><ph type="NPmin" pos="0">test</ph> </clause> </analysis> <bio><row>test nn.neu.sin.ind.nom NPB CLB</row> <row/> </bio> <models><model name="unit"><probcheck begin="1" end="-1" clause_from="0" clause_to="0"><note>slutord -1 �r mindre �n startord 1</note> </probcheck> <errors_found><row_err>test nn.neu.sin.ind.nom ok</row_err> <row_err/> </errors_found> <result>-11</result> </model> </models> <final_result>-11</final_result> </s> <scrutinizer></scrutinizer> <results><summary><method>unit</method> <error_thresh>0.5</error_thresh> <errors_known>0</errors_known> <detected_errors>0</detected_errors> <style_errors>0</style_errors> <false_alarms>0</false_alarms> <total_alarms>0</total_alarms> <coverage>NaN</coverage> <precision>NaN</precision> </summary> <alarm_details><spelling_errors><total cov="NaN">0</total> <sem_gram_err cov="NaN">0</sem_gram_err> <verb_err cov="NaN">0</verb_err> <compound_err cov="NaN">0</compound_err> <other cov="NaN">0</other> </spelling_errors> <word_err><total cov="NaN">0</total> <missing cov="NaN">0</missing> <order cov="NaN">0</order> </word_err> <misc><total cov="NaN">0</total> <style cov="NaN">0</style> <foreign cov="NaN">0</foreign> <tok_sent cov="NaN">0</tok_sent> <bad_tag cov="NaN">0</bad_tag> <other cov="0">0</other> </misc> </alarm_details> <rules><scrut_rules></scrut_rules> <rules_used_per_category></rules_used_per_category> <rules_not_used><rule>[EMAIL PROTECTED]</rule> <rule>[EMAIL PROTECTED]</rule> </rules_not_used> </rules> </results> <tags><tag no="0" name="nn.neu.sin.def.nom"/> <tag no="1" name="nn.utr"/> <tag no="2" name="hd.utr/neu.plu.ind"/> <tag no="3" name="jj.pos.sms"/> <tag no="4" name="dt.utr/neu.plu.def"/> <tag no="5" name="hs.def"/> <tag no="6" name="jj.kom.utr/neu.sin/plu.ind/def.nom"/> <tag no="7" name="jj.pos.utr/neu.plu.ind/def.nom"/> <tag no="8" name="dt.utr.sin.ind/def"/> <tag no="9" name="dt.utr/neu.sin.def"/> <tag no="10" name="nn.neu.plu.ind.gen"/> <tag no="11" name="nn"/> <tag no="12" name="nn.utr.plu.def.nom"/> <tag no="13" name="jj.pos.neu.sin.ind/def.nom"/> <tag no="14" name="nn.utr.sin.def.nom.dat"/> <tag no="15" name="vb.imp.akt.aux"/> <tag no="16" name="ps.utr.sin.def"/> <tag no="17" name="jj.pos.utr/neu.plu.ind.nom"/> <tag no="18" name="dt.utr/neu.plu.ind/def"/> <tag no="19" name="nn.utr.sin.ind.nom.dat"/> <tag no="20" name="hd.neu.sin.ind"/> <tag no="21" name="vb.prt.sfo.kop"/> <tag no="22" name="sen.que"/> <tag no="23" name="dt.utr/neu.plu.ind"/> <tag no="24" name="nn.neu"/> <tag no="25" name="pn.neu.sin.ind.sub/obj"/> <tag no="26" name="pn.utr/neu.plu.def.sub/obj"/> <tag no="27" name="hp"/> <tag no="28" name="ps.utr/neu.sin/plu.def"/> <tag no="29" name="pn.utr/neu.plu.def.obj"/> <tag no="30" name="vb.prt.akt.aux"/> <tag no="31" name="nn.utr.sin.ind.nom"/> <tag no="32" name="ro"/> <tag no="33" name="nn.utr.plu.def.gen"/> <tag no="34" name="nn.neu.plu.ind.nom"/> <tag no="35" name="nn.neu.sin.def.gen"/> <tag no="36" name="nn.sms"/> <tag no="37" name="jj.suv.mas.sin.def.nom"/> <tag no="38" name="jj.suv.utr/neu.sin/plu.def.nom"/> <tag no="39" name="vb.prs.sfo"/> <tag no="40" name="pm.nom"/> <tag no="41" name="sen.hea"/> <tag no="42" name="nn.utr.sin.def.nom.set"/> <tag no="43" name="sn"/> <tag no="44" name="ab.kom"/> <tag no="45" name="pad"/> <tag no="46" name="dt.utr/neu.sin.ind"/> <tag no="47" name="vb.imp"/> <tag no="48" name="pn.utr.sin.def.sub/obj"/> <tag no="49" name="pn.utr.sin.def.obj"/> <tag no="50" name="rg.utr/neu.plu.ind/def.nom"/> <tag no="51" name="jj.pos.utr/neu.sin.def.nom"/> <tag no="52" name="sen.exc"/> <tag no="53" name="rg.utr.sin.ind.nom"/> <tag no="54" name="vb.prs.akt"/> <tag no="55" name="pm.gen"/> <tag no="56" name="dt.utr.sin.ind"/> <tag no="57" name="dt.utr/neu.sin/plu.ind"/> <tag no="58" name="nn.utr.sms"/> <tag no="59" name="vb.inf.akt.aux"/> <tag no="60" name="pn.utr.sin.def.sub"/> <tag no="61" name="kn"/> <tag no="62" name="vb.prs.sfo.kop"/> <tag no="63" name="vb.prs.akt.mod"/> <tag no="64" name="vb.inf.akt.mod"/> <tag no="65" name="pc.gen"/> <tag no="66" name="ro.nom"/> <tag no="67" name="jj.pos.neu.sin.ind.nom"/> <tag no="68" name="nn.utr.plu.ind.nom"/> <tag no="69" name="pn.utr.sin.ind.sub"/> <tag no="70" name="jj.suv.utr/neu.plu.def.nom"/> <tag no="71" name="dt.neu.sin.def"/> <tag no="72" name="rg.sin"/> <tag no="73" name="ro.sin"/> <tag no="74" name="vb.imp.akt.kop"/> <tag no="75" name="hd.utr.sin.ind"/> <tag no="76" name="nn.neu.sin.def.nom.set"/> <tag no="77" name="vb.kon.prs.akt"/> <tag no="78" name="ab.suv"/> <tag no="79" name="vb.inf.akt"/> <tag no="80" name="jj.pos.utr.sin.ind.nom"/> <tag no="81" name="nn.neu.plu.def.gen"/> <tag no="82" name="vb.imp.akt.mod"/> <tag no="83" name="vb.prt.akt.mod"/> <tag no="84" name="dt.neu.sin.ind"/> <tag no="85" name="pn.utr/neu.plu.ind.sub/obj"/> <tag no="86" name="pn.neu.sin.def.sub/obj"/> <tag no="87" name="vb.inf.akt.kop"/> <tag no="88" name="rg.neu.sin.ind.nom"/> <tag no="89" name="pn.mas.sin.def.sub/obj"/> <tag no="90" name="ro.gen"/> <tag no="91" name="nn.neu.plu.def.nom"/> <tag no="92" name="dt.mas.sin.ind/def"/> <tag no="93" name="dt.neu.sin.ind/def"/> <tag no="94" name="vb.inf.sfo"/> <tag no="95" name="jj.suv.utr/neu.sin/plu.ind.nom"/> <tag no="96" name="rg.gen"/> <tag no="97" name="hp.neu.sin.ind"/> <tag no="98" name="vb.kon.prt"/> <tag no="99" name="sen.per"/> <tag no="100" name="ps.utr/neu.plu.def"/> <tag no="101" name="nn.utr.sin.ind.nom.set"/> <tag no="102" name="nn.utr.sin.def.nom"/> <tag no="103" name="pn.utr.plu.def.sub"/> <tag no="104" name="nn.neu.sin.ind.gen"/> <tag no="105" name="ps.neu.sin.def"/> <tag no="106" name="pn.utr.plu.def.obj"/> <tag no="107" name="jj.pos.utr.sin.ind/def.nom"/> <tag no="108" name="vb.prt.sfo"/> <tag no="109" name="mad"/> <tag no="110" name="ab"/> <tag no="111" name="pn.utr/neu.sin/plu.def.obj"/> <tag no="112" name="vb.sup.akt"/> <tag no="113" name="mid"/> <tag no="114" name="vb.sup.akt.kop"/> <tag no="115" name="jj.pos.mas.sin.def.nom"/> <tag no="116" name="hp.utr/neu.plu.ind"/> <tag no="117" name="vb.sup.akt.mod"/> <tag no="118" name="jj.kom.sms"/> <tag no="119" name="nn.utr.sin.def.gen"/> <tag no="120" name="rg.nom"/> <tag no="121" name="nn.neu.sin.ind.nom"/> <tag no="122" name="rg.yea"/> <tag no="123" name="pl"/> <tag no="124" name="in"/> <tag no="125" name="vb.prt.akt"/> <tag no="126" name="nn.neu.sms"/> <tag no="127" name="vb.sup.sfo"/> <tag no="128" name="nn.utr.plu.ind.gen"/> <tag no="129" name="pn.utr.sin.ind.sub/obj"/> <tag no="130" name="dt.utr.sin.def"/> <tag no="131" name="nn.neu.sin.ind.nom.set"/> <tag no="132" name="vb"/> <tag no="133" name="pp"/> <tag no="134" name="vb.prs.akt.kop"/> <tag no="135" name="nn.utr.sin.ind.gen"/> <tag no="136" name="jj.gen"/> <tag no="137" name="vb.prt.akt.kop"/> <tag no="138" name="ie"/> <tag no="139" name="ro.mas.sin.ind/def.nom"/> <tag no="140" name="jj.pos.utr/neu.sin/plu.ind/def.nom"/> <tag no="141" name="hp.utr.sin.ind"/> <tag no="142" name="pc.prs.utr/neu.sin/plu.ind/def.nom"/> <tag no="143" name="sen.non"/> <tag no="144" name="pn.utr/neu.plu.def.sub"/> <tag no="145" name="ha"/> <tag no="146" name="vb.prs.akt.aux"/> <tag no="147" name="ab.pos"/> <tag no="148" name="pm.sms"/> </tags> <rules><categories><category><name>nprecog</name> <count>0</count> </category> <category><name>abrecog</name> <count>0</count> </category> <category><name>qnrecog</name> <count>0</count> </category> <category><name>acc</name> <count>0</count> </category> <category><name>jjrecog</name> <count>0</count> </category> <category><name>vbrecog</name> <count>0</count> </category> <category><name>clrecog</name> <info>CL</info> <count>0</count> </category> <category><name>pprecog</name> <count>0</count> </category> <category><name>prob</name> <info>PROB</info> <count>0</count> </category> </categories> <rules_used></rules_used> </rules> </Root> --------------------------------------------------------------------------------------------------
The primer.xsd file:
<?xml version="1.0" encoding="ISO-8859-1"
standalone="yes" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Root"> <xs:complexType> <xs:sequence> <xs:element name="s" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="words" > <xs:complexType> <xs:sequence> <xs:any /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="text" > <xs:complexType> <xs:sequence> <xs:any /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="paragraph" minOccurs="0" > <xs:complexType> <xs:sequence> <xs:any /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="contents" > <xs:complexType> <xs:sequence> <xs:any /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="matchings" > <xs:complexType minOccurs="0"> <xs:sequence> <xs:any /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="analysis" > <xs:complexType minOccurs="0"> <xs:sequence> <xs:any /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="bio" minOccurs="0" > <xs:complexType> <xs:sequence> <xs:element name="row" type="xs:string" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="models" > <xs:complexType minOccurs="0"> <xs:sequence> <xs:any /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="final_result" > <xs:complexType minOccurs="0"> <xs:sequence> <xs:any /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="sent_comm" minOccurs="0" > <xs:complexType minOccurs="0"> <xs:sequence> <xs:any /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="ref" type="xs:integer" use="optional" /> </xs:complexType> </xs:element> <xs:element name="scrutinizer" minOccurs="0" > <xs:complexType minOccurs="0"> <xs:sequence> <xs:any /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="results" minOccurs="0" > <xs:complexType minOccurs="0" > <xs:sequence> <xs:any /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="tags" minOccurs="0" > <xs:complexType minOccurs="0" > <xs:sequence> <xs:any /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="rules" minOccurs="0" > <xs:complexType minOccurs="0" > <xs:sequence> <xs:any /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> |
- Re: [castor-dev] org.xml.sax.SAXException: unable to cre... Stefan H Westlund
