0

这是一个解组 xml 文件的 java 方法。

我寻找了这个错误的几个问题,但我找不到答案。

    @WebMethod(operationName = "List_Flights")
    public List<FlightAvailableOffers> List_Flights() {//ArrayList<String[]>

       FlightAvailableOffers flighte = new FlightAvailableOffers();
        Flights flight = new Flights();
        List<FlightAvailableOffers> bookingAvailFlights = flight.getOffersBooking();
        try {

        File file = new File("Flight_Bookings.xml");

        JAXBContext jaxbContext = JAXBContext.newInstance(FlightAvailableOffers.class);
        Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
        flight = (Flights)jaxbUnmarshaller.unmarshal(file);
                //List<FlightAvailableOffers> bookingAvailFlights = flight.getOffersBooking();

            FlightAvailableOffers booking = new FlightAvailableOffers();

            Iterator itr = bookingAvailFlights.iterator();    
            while (itr.hasNext()) {
                booking = (FlightAvailableOffers) itr.next();
                bookingAvailFlights.add(booking);
            }

      } catch (JAXBException e) {
              System.out.println(e.getCause());
      }


        return bookingAvailFlights;

    }   
}

但是当我运行它时,它会显示此消息

“org.xml.sax.SAXParseException:带有 jaxbUnmarshaller 的文件过早结束”

谁能帮我摆脱这个?

4

1 回答 1

0

flightinfo.xsd 中有错误。tns:命名空间在文档中声明..

记录的原因:UndeclaredPrefix:无法将“tns:FlightAvailableOffers”解析为 QName:未声明前缀“tns”

暗示:

您可以通过在线工具针对 xsd 验证您的 xml。

我会推荐以下一个..针对 XML Schema 文档的 XML 验证

于 2013-01-23T13:43:03.233 回答