void showPublicTimeline(){ try { JAXBContext con = JAXBContext.newInstance(Statuses.class); URL u = new URL("http://twitter.com/statuses/public_timeline.xml"); Statuses sts = (Statuses) con.createUnmarshaller().unmarshal(url); for(Status s : sts.statusList){ System.out.println(s.user.screenName + ":" + s.text); } } catch (MalformedURLException ex) { ex.printStackTrace(); } catch (JAXBException ex) { ex.printStackTrace(); } } @XmlRootElement(name="statuses") @XmlAccessorType(XmlAccessType.NONE) public static class Statuses{ @XmlElement(name="status") List<Status> statusList = new ArrayList(); } @XmlAccessorType(XmlAccessType.NONE) public static class Status{ @XmlElement(name="created_at") String created; @XmlElement long id; @XmlElement String text; @XmlElement User user; } @XmlAccessorType(XmlAccessType.NONE) public static class User{ @XmlElement long id; @XmlElement String name; @XmlElement(name="screen_name") String screenName; @XmlElement String location; @XmlElement String description; @XmlElement(name="profile_image_uri") String profileImageUrl; @XmlElement String uri; @XmlElement(name="protected") String protect; }