package mysample.src.generated;
import java.io.File;
import javax.xml.bind.*;
public class TestUnmarshal { public static void main(String[] args) {
try{
//解组部分
JAXBContext jc = JAXBContext.newInstance("mysample.src.generated");
Unmarshaller u = jc.createUnmarshaller();
File f = new File("Course.xml");
Clases Cla=(Clases)u.unmarshal(f);
//输出部分
System.out.println("------------------------------------------");
System.out.println("------------------------------------------");
ClasType clas1=Cla.getClas().get(0);
System.out.println("班级名:"+clas1.getClaName());
System.out.println("班级号"+clas1.getClaId());
System.out.println("班级课程:"+clas1.getCourse());
System.out.println("班级人数:"+clas1.getNumOfPeople());
ClasType clas2=Cla.getClas().get(1);
System.out.println("班级名:"+clas2.getClaName());
System.out.println("班级号"+clas2.getClaId());
System.out.println("班级课程:"+clas2.getCourse());
System.out.println("班级人数:"+clas2.getNumOfPeople());
ClasType clas3=Cla.getClas().get(2);
System.out.println("班级名:"+clas3.getClaName());
System.out.println("班级号"+clas3.getClaId());
System.out.println("班级课程:"+clas3.getCourse());
System.out.println("班级人数:"+clas3.getNumOfPeople());
}
catch(JAXBException e){e.printStackTrace();}
catch(Exception e){e.printStackTrace();}
}
}
出现的异常:javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"Classes"). Expected elements are (none)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:642)
at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:247)
at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:242)
at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:116)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1049)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:478)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:459)
at com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:148)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:533)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:330)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(XMLNSDocumentScannerImpl.java:779)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1794)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:211)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:184)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:137)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:142)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:151)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:169)
at huangbin.src.generated.TestUnmarshal.main(TestUnmarshal.java:14)
import java.io.File;
import javax.xml.bind.*;
public class TestUnmarshal { public static void main(String[] args) {
try{
//解组部分
JAXBContext jc = JAXBContext.newInstance("mysample.src.generated");
Unmarshaller u = jc.createUnmarshaller();
File f = new File("Course.xml");
Clases Cla=(Clases)u.unmarshal(f);
//输出部分
System.out.println("------------------------------------------");
System.out.println("------------------------------------------");
ClasType clas1=Cla.getClas().get(0);
System.out.println("班级名:"+clas1.getClaName());
System.out.println("班级号"+clas1.getClaId());
System.out.println("班级课程:"+clas1.getCourse());
System.out.println("班级人数:"+clas1.getNumOfPeople());
ClasType clas2=Cla.getClas().get(1);
System.out.println("班级名:"+clas2.getClaName());
System.out.println("班级号"+clas2.getClaId());
System.out.println("班级课程:"+clas2.getCourse());
System.out.println("班级人数:"+clas2.getNumOfPeople());
ClasType clas3=Cla.getClas().get(2);
System.out.println("班级名:"+clas3.getClaName());
System.out.println("班级号"+clas3.getClaId());
System.out.println("班级课程:"+clas3.getCourse());
System.out.println("班级人数:"+clas3.getNumOfPeople());
}
catch(JAXBException e){e.printStackTrace();}
catch(Exception e){e.printStackTrace();}
}
}
出现的异常:javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"Classes"). Expected elements are (none)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:642)
at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:247)
at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:242)
at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:116)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1049)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:478)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:459)
at com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:148)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:533)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:330)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(XMLNSDocumentScannerImpl.java:779)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1794)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:211)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:184)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:137)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:142)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:151)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:169)
at huangbin.src.generated.TestUnmarshal.main(TestUnmarshal.java:14)
能贴上来吗
<Class>
<!--软件测试-->
<Cla_name>Sw Testing</Cla_name >
<Cla_id>071</Cla_id >
<num_of_people>39</num_of_people >
<courses>
<course>Database Principles</course>
<course>Algorithm and Design</course>
<course>Java and xml data binding</course>
<course>The OS and network</course>
<course>TSP</course>
</courses >
</Class>
<Class>
<!--网络通信-->
<Cla_name>Network Communication</Cla_name >
<Cla_id>072</Cla_id >
<num_of_people>60</num_of_people >
<courses>
<course>Database Principles</course>
<course>Computer cryptography</course>
<course>Network Security</course >
<course>The OS and network</course >
<course>Java Programming</course>
</courses >
</Class>
<Class>
<!--软件开发与设计-->
<Cla_name>Sw Development and Design</Cla_name >
<Cla_id>073</Cla_id >
<num_of_people>60</num_of_people >
<courses>
<course>Database Principles</course>
<course>Algorithm and Design</course>
<course>Java and xml data binding</course>
<course>The OS and network</course>
<course>TSP</course>
</courses >
</Class>
</Classes>
xsd文档:<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!--课程-->
<xs:simpleType name="CourseType">
<xs:restriction base="xs:string" />
</xs:simpleType>
<!--班级-->
<xs:complexType name="ClasType">
<xs:sequence>
<xs:element name="Cla_name" type="xs:string" />
<xs:element name="Cla_id" type="xs:integer" />
<xs:element name="Course" type="CourseType" />
<xs:element name="num_of_people" type="xs:integer" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Clases">
<xs:sequence>
<xs:element name="clas" type="ClasType" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:schema>