2014-10-13 5 views
0

Я создал очень простой XML для понимания концепции JAXB. Это XML-файлОшибка в JAXB unmarshalling

<?xml version='1.0' encoding='UTF-8' standalone='yes'?> 

    <Abc> 

     <Module> India </Module> 

    </Abc> 

Java-класс, созданный в том,

package oracle.ERP.Cloud.Client2; 

import java.util.ArrayList; 
import javax.xml.bind.annotation.XmlElement; 
import javax.xml.bind.annotation.XmlElementWrapper; 
import javax.xml.bind.annotation.XmlRootElement; 
import javax.xml.bind.annotation.XmlType; 

//Below annotation defines root element of XML file 
@XmlRootElement 
public class Abc{ 

private String Module; 

public String getModule() { 
    System.out.println("Hi"); 
    return Module; 
} 

@XmlElement 
public void setModule(String Module) { 
    this.Module = Module; 
} 

} 

Java файл для немаршалинга является

package oracle.ERP.Cloud.client2; 

import java.io.File; 

import java.io.PrintStream; 

import javax.xml.bind.JAXBContext; 
import javax.xml.bind.JAXBException; 
import javax.xml.bind.Unmarshaller; 

import oracle.ERP.Cloud.Client2.Abc; 
import oracle.ERP.Cloud.client.Country; 

public class JAXBXMLToJava { 

    public static void main(String Args[]) { 
     try { 
     JAXBContext jaxbContext = JAXBContext.newInstance(new Class[]{oracle.ERP.Cloud.Client2.Abc.class}); 
     Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); 
     File XMLFile = new File("C:\\Users\\NRENTALA\\Desktop\\Analysis\\AbcXML.xml"); 
     oracle.ERP.Cloud.Client2.Abc summary = oracle.ERP.Cloud.Client2.Abc)unmarshaller.unmarshal(XMLFile); 
     System.out.println("Country Name is : "+ summary.getModule()); 
     } 

     catch(JAXBException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

Когда я пытаюсь скомпилировать это я получаю эту ошибку

javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"Abc"). Expected elements are <{}abc> 

Просьба помочь меня в выяснении, в чем проблема? Попытка этого в первый раз.

+1

Почему ваш код в пакете oracle? Как вы создали свой класс? – bmargulies

+0

Не могли бы вы опубликовать резюме oracle.ERP.Cloud.Client2.Abc? – ToYonos

ответ

2

XML чувствителен к регистру, поэтому если ваша схема указывает корневой элемент, который будет называться «abc» (как подсказывает сообщение об ошибке), он не сможет проанализировать «Abc». Посмотрите на this question.

Чтобы добиться безупречного анализа без учета регистра, взгляните на this blog от Блейза Доукана, одного из тех, кто стоит за спецификацией и внедрением JAXB.

+0

Thankyou очень много. Он решил проблему. Но что, если элементы XML содержат все буквы верхнего регистра? Как мы анализируем такой XML. Мне действительно нужно разобрать XML, который имеет все прописные буквы. – Nelson

+0

Я добавил ссылку. – ftr

+0

Получил. Еще раз спасибо :) – Nelson

Смежные вопросы