什么是GDATA扩展简介?

时间:2009-11-25 17:11:40

标签: gdata-api gdata google-data-api

我想使用SpreadsheetEntry继承的类BaseEntry的[generateAtom(..,..)] [1]方法获取GoogleDocs电子表格的原子格式的XML。但我不明白方法中的第二个参数,ExtensionProfile。它是什么,如果我只想获取原子格式的XML,这个方法是否足够?

XmlWriter x = new XmlWriter();
spreadSheetEntry.generateAtom(x,new ExtensionProfile());

[1]:http://code.google.com/apis/gdata/javadoc/com/google/gdata/data/BaseEntry.html#generateAtom(com.google.gdata.util.common.xml.XmlWriter,com.google.gdata.data.ExtensionProfile)

2 个答案:

答案 0 :(得分:3)

来自JavaDoc for ExtensionProfile

  

个人资料是一组允许的   每种类型的扩展名   其他属性。

通常,如果您有服务,可以使用Service.getExtensionProfile()询问其扩展档案。

答案 1 :(得分:0)

阐述Jon Skeet's answer,你需要实现这样的服务:

String developer_key = "mySecretDeveloperKey";
String client_id = "myApplicationsClientId";
YouTubeService service = new YouTubeService(client_id, developer_key);

然后,您可以使用服务的扩展配置文件写入文件:

static void write_video_entry(VideoEntry video_entry) {
    try {
        String cache_file_path = Layout.get_cache_file_path(video_entry);
        File cache_file = new File(cache_file_path);
        Writer writer = new FileWriter(cache_file);
        XmlWriter xml_writer = new XmlWriter(writer);
        ExtensionProfile extension_profile = service.getExtensionProfile();
        video_entry.generateAtom(xml_writer, extension_profile);
        xml_writer.close();
        writer.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

类似地,您可以使用服务的扩展配置文件阅读文件:

static VideoFeed read_video_feed(File cache_file_file) {
    VideoFeed video_feed = new VideoFeed();
    try {
        InputStream input_stream = new FileInputStream(cache_file_file);
        ExtensionProfile extension_profile = service.getExtensionProfile();
        try {
            video_feed.parseAtom(extension_profile, input_stream);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        input_stream.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return video_feed;
}