1) 下载JAXB,并解压
2) 进入bin目录:cd bin
3) 生成Rss model:xjc –p model rss.xsd
二、利用生成的model利用JAXB动态产生符合Rss XSD的XML,即RSS源
try {
JAXBContext jaxbContext = JAXBContext.newInstance("model");
Marshaller marshaller = jaxbContext.createMarshaller();
ObjectFactory factory = new ObjectFactory();
TRss rss = factory.createTRss();
Map<QName, String> rssMap = rss.getOtherAttributes();
rssMap.put(new QName("version"), "2.0");
rssMap.put(new QName("xmlns:content"), "http://purl.org/rss/1.0/modules/content/");
rssMap.put(new QName("xmlns:dc"),
"http://purl.org/dc/elements/1.1/");
TRssChannel channel = factory.createTRssChannel();
List<Object> anyList = channel.getAny();
JAXBElement<String> tRssChannelTitle =
factory.createTRssChannelTitle("兵马俑BBS - 今日10大");
JAXBElement<String> tRssChannelDescription =
factory.createTRssChannelDescription("兵马俑BBS -今日10大");
JAXBElement<String> tRssChannelLink =
factory.createTRssChannelLink("http://bbs.xjtu.edu.cn/BMY/bbstop10");
JAXBElement<String> tRssChannelLanguage =
factory.createTRssChannelLanguage("zh-ch");
JAXBElement<String> tRssChannelGenerator =
factory.createTRssChannelGenerator("http://bbs.xjtu.edu.cn 兵马俑BBS");
JAXBElement<String> tRssChannelWebMaster =
factory.createTRssChannelWebMaster("interma@stu.xjtu.edu.cn");
JAXBElement<String> tRssChannelPubDate =
factory.createTRssChannelPubDate("Thu Mar 6 14:49:55 2008");
anyList.add(tRssChannelTitle);
anyList.add(tRssChannelLink);
anyList.add(tRssChannelDescription);
anyList.add(tRssChannelLanguage);
anyList.add(tRssChannelGenerator);
anyList.add(tRssChannelWebMaster);
anyList.add(tRssChannelPubDate);
List<TRssItem> tRssItemList = channel.getItem();
TRssItem tRssItem = factory.createTRssItem();
List<Object> rssLink = tRssItem.getTitleOrDescriptionOrLink();
JAXBElement<String> tRssItemTitle =
factory.createTRssItemTitle("周总理110周年诞辰");
JAXBElement<String> tRssItemLink =
factory.createTRssItemLink("http://bbs.xjtu.edu.cn/BMY/con?B=history&F=M.1204638204.A");
JAXBElement<String> tRssItemPubDate =
factory.createTRssItemPubDate("Tue Mar 4 21:43:24 2008");
JAXBElement<String> tRssItemDescription =
factory.createTRssItemDescription("发信人: magicZ (magicZ), 信区: history<br>标 题: 周总理110周年诞辰<br>发信站: 兵马俑BBS (Tue Mar 4 21:43:24 2008), 本站(bbs.xjtu.edu.cn)<br><br>我一直在想,<br><br>怎样的思想,<br><br>怎样的力量,<br><br>怎样的一生,<br><br>才能造就如此的崇高令人敬仰和爱戴的魅力?<br><br>一代名臣,永垂青史,值得我们一生来学习<br><br><br><br>--<br>----<br><br>吾尝终日所思,不如须臾之所学<br>※ 来源:.兵马俑BBS <a target=_blank href='http://bbs.xjtu.edu.cn'>http://bbs.xjtu.edu.cn</a> [FROM: 202.117.32.53]<br>...");
JAXBElement<String> tRSSItemCreator =
new JAXBElement<String>(new QName("dc:creator"), String.class, "magicz");
rssLink.add(tRssItemTitle);
rssLink.add(tRssItemLink);
rssLink.add(tRssItemPubDate);
rssLink.add(tRssItemDescription);
rssLink.add(tRSSItemCreator);
tRssItemList.add(tRssItem);
rss.setChannel(channel);
JAXBElement<TRss> rssElement = factory.createRss(rss);
marshaller.setProperty(Marshaller.JAXB_ENCODING, "gb2312");
marshaller.marshal(rssElement,
new FileOutputStream("abc.xml"));
} catch (Exception e) {
e.printStackTrace();
}
拷贝 abc.xml 到 $ Catalina_HOME/webapps/hello1 即可