在Google RESTFul API中,Google Blogger API(Google博客API)应该和我们的生活离得近期;由于差点儿非常多人每天都在看博客,都在写博客,都听说过博客。在前面的Google的应用系统进行集成(5)和Google的应用系统进行集成(6)的系列文章中。我们提到了怎样把Google
Calendar和Google Tasks的JSON Schema转换成XML的XSD的Schema。从博客的訪问量来看,还是有非常多志同道合的朋友们对这个比較感兴趣,因此,这个章节。我继续给大家奉献和分享一下怎样把Google Blogger的JSON Schema转换成XML的Schema(XSD)。首先我们先列出Google Blogger的JSON的Schema(https://www.googleapis.com/discovery/v1/apis/blogger/v3/rest)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hhbmNlaW4wMDc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">

那么。怎样把Google Blogger的JSON Schema转换成XML的XSD Schema?XML的Schema将会是什么样子的呢?请參考以下转换实现。

<?xml version="1.0" encoding="UTF-8"?

>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:complexType name="Blog">
<xs:sequence>
<xs:element name="customMetaData" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="description" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="id" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="kind" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="locale" type="locale" form="unqualified" minOccurs="0"/>
<xs:element name="name" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="pages" type="pages" form="unqualified" minOccurs="0"/>
<xs:element name="posts" type="posts" form="unqualified" minOccurs="0"/>
<xs:element name="published" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="selfLink" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="updated" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="url" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="BlogList">
<xs:sequence>
<xs:element name="blogUserInfos" type="BlogUserInfo" form="unqualified" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="items" type="Blog" form="unqualified" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="kind" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="BlogPerUserInfo">
<xs:sequence>
<xs:element name="blogId" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="hasAdminAccess" type="xs:boolean" form="unqualified" minOccurs="0"/>
<xs:element name="kind" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="photosAlbumKey" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="role" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="userId" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="BlogUserInfo">
<xs:sequence>
<xs:element name="blog" type="Blog" form="unqualified" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="blog_user_info" type="BlogPerUserInfo" form="unqualified" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="kind" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Blogimages">
<xs:sequence>
<xs:element name="items" type="Blogitems" form="unqualified" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Blogitems">
<xs:sequence>
<xs:element name="url" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Comment">
<xs:sequence>
<xs:element name="author" type="author" form="unqualified" minOccurs="0"/>
<xs:element name="blog" type="blog" form="unqualified" minOccurs="0"/>
<xs:element name="content" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="id" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="inReplyTo" type="inReplyTo" form="unqualified" minOccurs="0"/>
<xs:element name="kind" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="post" type="post" form="unqualified" minOccurs="0"/>
<xs:element name="published" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="selfLink" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="status" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="updated" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CommentList">
<xs:sequence>
<xs:element name="items" type="Comment" form="unqualified" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="kind" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="nextPageToken" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="prevPageToken" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Page">
<xs:sequence>
<xs:element name="author" type="author" form="unqualified" minOccurs="0"/>
<xs:element name="blog" type="blog" form="unqualified" minOccurs="0"/>
<xs:element name="content" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="id" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="kind" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="published" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="selfLink" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="status" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="title" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="updated" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="url" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PageList">
<xs:sequence>
<xs:element name="items" type="Page" form="unqualified" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="kind" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Pageviews">
<xs:sequence>
<xs:element name="blogId" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="counts" type="Pageviewsitems" form="unqualified" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="kind" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Pageviewscounts">
<xs:sequence>
<xs:element name="items" type="Pageviewsitems" form="unqualified" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Pageviewsitems">
<xs:sequence>
<xs:element name="count" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="timeRange" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Post">
<xs:sequence>
<xs:element name="author" type="author" form="unqualified" minOccurs="0"/>
<xs:element name="blog" type="blog" form="unqualified" minOccurs="0"/>
<xs:element name="content" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="customMetaData" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="id" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="images" type="Blogimages" form="unqualified" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="kind" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="labels" form="unqualified" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="location" type="location" form="unqualified" minOccurs="0"/>
<xs:element name="published" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="replies" type="replies" form="unqualified" minOccurs="0"/>
<xs:element name="selfLink" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="status" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="title" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="titleLink" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="updated" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="url" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PostList">
<xs:sequence>
<xs:element name="items" type="Post" form="unqualified" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="kind" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="nextPageToken" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PostPerUserInfo">
<xs:sequence>
<xs:element name="blogId" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="hasEditAccess" type="xs:boolean" form="unqualified" minOccurs="0"/>
<xs:element name="kind" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="postId" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="userId" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PostUserInfo">
<xs:sequence>
<xs:element name="kind" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="post" type="Post" form="unqualified" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="post_user_info" type="PostPerUserInfo" form="unqualified" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PostUserInfosList">
<xs:sequence>
<xs:element name="items" type="PostUserInfo" form="unqualified" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="kind" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="nextPageToken" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="User">
<xs:sequence>
<xs:element name="about" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="blogs" type="blogs" form="unqualified" minOccurs="0"/>
<xs:element name="created" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="displayName" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="id" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="kind" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="locale" type="locale" form="unqualified" minOccurs="0"/>
<xs:element name="selfLink" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="url" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="author">
<xs:sequence>
<xs:element name="displayName" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="id" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="image" type="image" form="unqualified" minOccurs="0"/>
<xs:element name="url" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="blog">
<xs:sequence>
<xs:element name="id" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="blogs">
<xs:sequence>
<xs:element name="selfLink" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="image">
<xs:sequence>
<xs:element name="url" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="inReplyTo">
<xs:sequence>
<xs:element name="id" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="locale">
<xs:sequence>
<xs:element name="country" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="language" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="variant" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="location">
<xs:sequence>
<xs:element name="lat" type="xs:double" form="unqualified" minOccurs="0"/>
<xs:element name="lng" type="xs:double" form="unqualified" minOccurs="0"/>
<xs:element name="name" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="span" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="pages">
<xs:sequence>
<xs:element name="selfLink" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="totalItems" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="post">
<xs:sequence>
<xs:element name="id" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="posts">
<xs:sequence>
<xs:element name="items" type="Post" form="unqualified" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="selfLink" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="totalItems" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="replies">
<xs:sequence>
<xs:element name="items" type="Comment" form="unqualified" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="selfLink" type="xs:string" form="unqualified" minOccurs="0"/>
<xs:element name="totalItems" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:element name="Blog" type="Blog"/>
<xs:element name="BlogList" type="BlogList"/>
<xs:element name="BlogPerUserInfo" type="BlogPerUserInfo"/>
<xs:element name="BlogUserInfo" type="BlogUserInfo"/>
<xs:element name="Comment" type="Comment"/>
<xs:element name="CommentList" type="CommentList"/>
<xs:element name="Page" type="Page"/>
<xs:element name="PageList" type="PageList"/>
<xs:element name="Pageviews" type="Pageviews"/>
<xs:element name="Post" type="Post"/>
<xs:element name="PostList" type="PostList"/>
<xs:element name="PostPerUserInfo" type="PostPerUserInfo"/>
<xs:element name="PostUserInfo" type="PostUserInfo"/>
<xs:element name="PostUserInfosList" type="PostUserInfosList"/>
<xs:element name="User" type="User"/>
</xs:schema>

怎样用Google APIs和Google的应用系统进行集成(8)----怎样把Google Blogger(博客)的JSON Schema转换成XML的Schema(XSD)?的更多相关文章

  1. 怎样用Google APIs和Google的应用系统进行集成(5)----怎样把Google Tasks的JSON Schema转换成XML的Schema(XSD)?

    前面说了一些Google API的介绍,可是在实际的开发其中,我们可能须要把Google RESTful API返回的JSON数据转换成XML数据输入到第三方系统,这在企业应用集成里面很的常见. 那么 ...

  2. 邮件发布google blogger 博客

    <?php $to = "@gmail.com";$subject = "Test mail";$message = "Hello! This ...

  3. 怎样用Google APIs和Google的应用系统进行集成(4)----获得Access Token以通过一些Google APIs的OAuth2认证

    在上篇文章中: "怎样用Google APIs和Google的应用系统进行集成(3)----调用发现Google APIs的RESTful的服务"一文中,我们直接用jdk的java ...

  4. 【转载】国内网站博客数据统计选免费Google Analytics还是百度统计

    [转载]国内网站博客数据统计选免费Google Analytics还是百度统计 Google Analytics谷歌统计是我用的第一个网站统计工具,当然现在也一直在用.Google Analytics ...

  5. 让搭建在 Github Pages 上的 Hexo 博客可以被 Google 搜索到

    title: 让搭建在Github Pages上的Hexo博客可以被Google搜索到 date: 2019-05-30 23:35:44 tags: 配置 --- 准备工作 搭建好的博客 npm & ...

  6. Hexo博客maupassant主题添加Google Adsense广告

    自从在 Github Page 落户以后,很长一段时间使用的是极简且有点艺术范儿的 fexo 主题,而不是大名鼎鼎的 next 主题.后来偶然发现了符合我审美的Hexo博客 maupassant 主题 ...

  7. 谷歌正式发布Google APIs Client Library for .NET

    好消息,特大好消息! 英文原文:Google API library for .NET paves the way for Google services on Windows phone 本月 17 ...

  8. Android SDK Manager Google Apis 下载

    本意是想利用google的gcm来实装android推送功能的,很遗憾, google貌似已经停止提供啥服务给国内了,或者说国内想继续使用google 服务暂时变得几乎不可能了.找了个代理来进行goo ...

  9. 怎样用Google APIs和Google的应用系统进行集成(3)----调用Google 发现(Discovery)API的RESTful服务

    说了这么多,那么首先同意我以Google Discovery RESTful服务为例,给大家演示怎样用最普通的Java代码调用Google Discovery RESTful服务. 引言: 在&quo ...

随机推荐

  1. The MySQL server is running with the –secure-file-priv

    show variables like '%secure%'; 将文件导出路径更改为查询到的secure-file-priv路径下 select * from table where column = ...

  2. docker 离线安装

    适用于: 1.内网安装docker 2.内网升级docker debian 8 sudo apt-get updatesudo apt-get install -d apt-transport-htt ...

  3. vue获取v-model数据类型boolean改变成string

    问题描述 今天产品问我一线上bug,怎么radio类型改不了 问题分析 看代码,之前的哥们儿是怎么写的 //页面 <div class="ui-form-box"> & ...

  4. bzoj4951 [Wf2017]Money for Nothing

    题目描述 题解: 答案显然是$max((q-p)*(e-d))$ 依然先贪心. 对于工厂,我们倾向于$pi<pj,di<dj$的; 对于买家,我们倾向于$qi>qj,ei>ej ...

  5. API对接中经常会出现的签名获取,这只是某一种,仅供给有需要的人参考

    要求: 1.对所有传入参数(含系统参数和接口参数)按照字段名的 ASCII 码从小到大排序(字典序)后,使用 URL 键值对的格式.(即 key1=value1&key2=value2…)拼接 ...

  6. docker守护式容器运行管理

    docker守护式容器适合运行应用程序和服务 以交互方式进入容器  docker run -it centos /bin/bash 以交互方式进入 并设置镜像名称和运行后的主机名称 退出交互式容器并让 ...

  7. 关于nagios系统下使用shell脚本自定义监控插件的编写以及没有实时监控图的问题

    关于nagios系统下shell自定义监控插件的编写.脚本规范以及没有实时监控图的问题的解决办法 在自已编写监控插件之前我们首先需要对nagios监控原理有一定的了解 Nagios的功能是监控服务和主 ...

  8. MyISAM和InnoDB索引实现对比

    MyISAM索引实现 MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址.如图:  这里设表一共有三列,假设我们以Col1为主键,则上图是一个MyISAM表的主索引 ...

  9. 大数据学习——hive安装部署

    1上传压缩包 2 解压 tar -zxvf apache-hive-1.2.1-bin.tar.gz -C apps 3 重命名 mv apache-hive-1.2.1-bin hive 4 设置环 ...

  10. Leetcode 241.为运算表达式设计优先级

    为运算表达式设计优先级 给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果.你需要给出所有可能的组合的结果.有效的运算符号包含 +, - 以及 * . 示例 1: 输 ...