Я новичок в преобразовании JAXB.Мой тег начинается с <DataSet>
, но мне нужно получить доступ к данным из <TABLE>
в теге <NewDataSet>
.Любое точное предложение или Помогите мне, если что-то не так.
Также я пробовал конвертацию лотов, но не могу найти точное решение.
<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://www.test.com">
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Table">
<xs:complexType>
<xs:sequence>
<xs:element name="ID" type="xs:decimal" minOccurs="0" />
<xs:element name="NAME" type="xs:string" minOccurs="0" />
<xs:element name="ADDRESS" type="xs:string" minOccurs="0" />
<xs:element name="PIN" type="xs:decimal" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<NewDataSet xmlns="">
<Table diffgr:id="Table1" msdata:rowOrder="0">
<ID>1</ID>
<NAME>Rajesh</NAME>
<ADDRESS>Pune</ADDRESS>
<PIN>412411</PIN>
</Table>
<Table diffgr:id="Table2" msdata:rowOrder="1">
<ID>2</ID>
<NAME>Ajinkya</NAME>
<ADDRESS>Mumbai</ADDRESS>
<PIN>412504</PIN>
</Table>
</NewDataSet>
</diffgr:diffgram>
</DataSet>
Мой код Java -
File file = new File("/home/raj/Desktop/info.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(NewDataSet.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
NewDataSet dType = (NewDataSet) unmarshaller.unmarshal(file);
Получение следующего исключения:
javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"DataSet"). Expected elements are <{}NewDataSet>