com.sun.syndication.feed.synd.SyndFeed クラスの setFeedType メソッドで指定する feedType 文字列がどういうのかよくわからなかったので調べてみた。
com.sun.syndication.feed.WireFeed クラスのドキュメントに書いてあった。
The format of the 'type' property must be [FEEDNAME]_[FEEDVERSION] with the FEEDNAME in lower case, for example: rss_0.9, rss_0.93, atom_0.3
rome: WireFeed (ROME, RSS and atOM utilitiEs for Java 1.0 API)
つまり、
{フィードフォーマットの名称}_{フィードフォーマットのバージョン}
という感じの文字列。
以下、RSS2.0を指定する例。
String feedType = "rss_2.0";
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType(feedType);
feed.setTitle("たいとる");
feed.setDescription("せつめい");
feed.setLink("http://www.nilab.info/");
feed.setAuthor("NI-Lab.");
feed.setLanguage("ja");
feed.setEncoding("UTF-8");
feed.setPublishedDate(new Date());
ROMEでサポートされてるフォーマットは src/java/com/sun/syndication/rome.properties に書いてある。
こんな感じ。
CVS タグ ROME_PROPONO_0_5_RELEASE, PROPONO_0_6, v1_0RC2-CORE, RC1-core, v-0-9, rome-1_0_0, HEAD
(中略)
# Feed Parser implementation classes
#
WireFeedParser.classes=com.sun.syndication.io.impl.RSS090Parser \
com.sun.syndication.io.impl.RSS091NetscapeParser \
com.sun.syndication.io.impl.RSS091UserlandParser \
com.sun.syndication.io.impl.RSS092Parser \
com.sun.syndication.io.impl.RSS093Parser \
com.sun.syndication.io.impl.RSS094Parser \
com.sun.syndication.io.impl.RSS10Parser \
com.sun.syndication.io.impl.RSS20wNSParser \
com.sun.syndication.io.impl.RSS20Parser \
com.sun.syndication.io.impl.Atom10Parser \
com.sun.syndication.io.impl.Atom03Parser
(中略)
# Feed Generator implementation classes
#
WireFeedGenerator.classes=com.sun.syndication.io.impl.RSS090Generator \
com.sun.syndication.io.impl.RSS091NetscapeGenerator \
com.sun.syndication.io.impl.RSS091UserlandGenerator \
com.sun.syndication.io.impl.RSS092Generator \
com.sun.syndication.io.impl.RSS093Generator \
com.sun.syndication.io.impl.RSS094Generator \
com.sun.syndication.io.impl.RSS10Generator \
com.sun.syndication.io.impl.RSS20Generator \
com.sun.syndication.io.impl.Atom10Generator \
com.sun.syndication.io.impl.Atom03Generator
(中略)
# Feed Conversor implementation classes
#
Converter.classes=com.sun.syndication.feed.synd.impl.ConverterForAtom10 \
com.sun.syndication.feed.synd.impl.ConverterForAtom03 \
com.sun.syndication.feed.synd.impl.ConverterForRSS090 \
com.sun.syndication.feed.synd.impl.ConverterForRSS091Netscape \
com.sun.syndication.feed.synd.impl.ConverterForRSS091Userland \
com.sun.syndication.feed.synd.impl.ConverterForRSS092 \
com.sun.syndication.feed.synd.impl.ConverterForRSS093 \
com.sun.syndication.feed.synd.impl.ConverterForRSS094 \
com.sun.syndication.feed.synd.impl.ConverterForRSS10 \
com.sun.syndication.feed.synd.impl.ConverterForRSS20
具体的なfeedType文字列はそれぞれの実装クラスの中に書かれている。
実装クラスはこのへんにある → src/java/com/sun/syndication/io/impl
rome: ドキュメント & ファイル: 20090303 から rome-1.0RC3-sources-unofficial.jar をダウンロードして、 rome-1.0RC3-sources-unofficial\com\sun\syndication\io\impl 以下を「this(」でgrepしてみたらこんな結果。
Atom03Generator.java(46): this("atom_0.3","0.3");
Atom03Parser.java(36): this("atom_0.3", ATOM_03_NS);
Atom10Generator.java(60): this("atom_1.0","1.0");
Atom10Parser.java(67): this("atom_1.0");
PluginManager.java(46): this(propertyKey, null, null);
RSS090Generator.java(46): this("rss_0.9");
RSS090Parser.java(48): this("rss_0.9", RSS_NS);
RSS091NetscapeGenerator.java(34): this("rss_0.91N","0.91");
RSS091NetscapeParser.java(26): this("rss_0.91N");
RSS091UserlandGenerator.java(43): this("rss_0.91U","0.91");
RSS091UserlandParser.java(37): this("rss_0.91U");
RSS092Generator.java(38): this("rss_0.92","0.92");
RSS092Parser.java(37): this("rss_0.92");
RSS093Generator.java(36): this("rss_0.93","0.93");
RSS093Parser.java(27): this("rss_0.93");
RSS094Generator.java(35): this("rss_0.94","0.94");
RSS094Parser.java(33): this("rss_0.94");
RSS10Parser.java(38): this("rss_1.0", RSS_NS);
RSS20Generator.java(39): this("rss_2.0","2.0");
RSS20Parser.java(29): this("rss_2.0");
RSS20wNSParser.java(41): this("rss_2.0wNS");
せっかくなのでROME関連のページを参考までに。
-概要 (ROME, RSS and atOM utilitiEs for Java 1.0RC1 API)
-ヅラずれなるままに(2009-01-03) - ROME経由でJDOMにRSS1.0文書を渡すとIllegalAddExceptionが発生する
-[ヅラド] ROME と GeoRSS module を使って GeoRSS を出力する
tags: Java Feed zurazure
Posted by NI-Lab. (@nilab)