은 내가XSD를 건너 뛰는 방법 : 언 마샬링 중 입력 하시겠습니까?
내가 그것을 비 정렬 화하려는<?xml version="1.0" encoding="UTF-8"?>
<ns1:paymentResponse xmlns:ns1="urn:Brifastservice">
<return xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="tns:paymentAccount_CT_Result">
<message xsi:type="xsd:string">[ERROR] Reference Number Same </message>
<status xsi:type="xsd:string">2007</status>
</return>
</ns1:paymentResponse>
, 난 코드
JAXBContext jaxbContext = JAXBContext.newInstance(PaymentResponse.class);
Unmarshaller um = jaxbContext.createUnmarshaller();
StringReader resRreader = new StringReader(res);
final SAXParserFactory sax = SAXParserFactory.newInstance();
sax.setNamespaceAware(true);
final XMLReader reader = sax.newSAXParser().getXMLReader();
final Source er = new SAXSource(reader, new InputSource(resRreader));
PaymentResponse response = (PaymentResponse)um.unmarshal(er);
return response.getReturnResponse().getMessage();
이하로 사용하고 XML을 받았지만 나는
접두사 XSD가 네임 스페이스에 바인드되지 않은 예외를 얻었다
sax.setNamespaceAware(false);
는 내가
javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"ns1:paymentResponse"). Expected elements are <{urn:someService}paymentResponse>
을 얻을 방법을 비 정렬 화하는 것이 좋습니다하세요? 나는
@javax.xml.bind.annotation.XmlSchema(
namespace = "urn:someService",
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)