怎样用Google APIs和Google的应用系统进行集成(8)----怎样把Google Blogger(博客)的JSON Schema转换成XML的Schema(XSD)?
在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)?的更多相关文章
- 怎样用Google APIs和Google的应用系统进行集成(5)----怎样把Google Tasks的JSON Schema转换成XML的Schema(XSD)?
前面说了一些Google API的介绍,可是在实际的开发其中,我们可能须要把Google RESTful API返回的JSON数据转换成XML数据输入到第三方系统,这在企业应用集成里面很的常见. 那么 ...
- 邮件发布google blogger 博客
<?php $to = "@gmail.com";$subject = "Test mail";$message = "Hello! This ...
- 怎样用Google APIs和Google的应用系统进行集成(4)----获得Access Token以通过一些Google APIs的OAuth2认证
在上篇文章中: "怎样用Google APIs和Google的应用系统进行集成(3)----调用发现Google APIs的RESTful的服务"一文中,我们直接用jdk的java ...
- 【转载】国内网站博客数据统计选免费Google Analytics还是百度统计
[转载]国内网站博客数据统计选免费Google Analytics还是百度统计 Google Analytics谷歌统计是我用的第一个网站统计工具,当然现在也一直在用.Google Analytics ...
- 让搭建在 Github Pages 上的 Hexo 博客可以被 Google 搜索到
title: 让搭建在Github Pages上的Hexo博客可以被Google搜索到 date: 2019-05-30 23:35:44 tags: 配置 --- 准备工作 搭建好的博客 npm & ...
- Hexo博客maupassant主题添加Google Adsense广告
自从在 Github Page 落户以后,很长一段时间使用的是极简且有点艺术范儿的 fexo 主题,而不是大名鼎鼎的 next 主题.后来偶然发现了符合我审美的Hexo博客 maupassant 主题 ...
- 谷歌正式发布Google APIs Client Library for .NET
好消息,特大好消息! 英文原文:Google API library for .NET paves the way for Google services on Windows phone 本月 17 ...
- Android SDK Manager Google Apis 下载
本意是想利用google的gcm来实装android推送功能的,很遗憾, google貌似已经停止提供啥服务给国内了,或者说国内想继续使用google 服务暂时变得几乎不可能了.找了个代理来进行goo ...
- 怎样用Google APIs和Google的应用系统进行集成(3)----调用Google 发现(Discovery)API的RESTful服务
说了这么多,那么首先同意我以Google Discovery RESTful服务为例,给大家演示怎样用最普通的Java代码调用Google Discovery RESTful服务. 引言: 在&quo ...
随机推荐
- sftp ftp文件同步方案
sftp ftp文件同步方案 1. 需求 1.1实现网关服务器的ftp服务器的/batchFileRequest目录下文件向徽商所使用的sftp服务器的/batchFileRequest目录同步文件 ...
- MySQL(C#的链接姿势)
介绍 这篇随笔主要介绍MySQL的基础API的使用姿势 基本使用姿势: 第一步:登陆数据库 string connStr = "Database=start;datasource=127.0 ...
- consul无client模式
1.推consul的镜像到生产应用全部服务器. 每个consul的server模式的容器,都需要单独的物理服务器. 主节点:docker run -d --net=host --name=consul ...
- 给Django中的url起名字
url反转 =>reverse 1.from django.shortcuts import reverse 2. 利用reverse函数对URL名称进行反转 reverse(url名称 ...
- POJ 2553 The Bottom of a Graph(强连通分量的出度)
题意: 求出图中所有汇点 定义:点v是汇点须满足 --- 对图中任意点u,若v可以到达u则必有u到v的路径:若v不可以到达u,则u到v的路径可有可无. 模板:http://www.cnblogs.co ...
- Java 新手学习日记一
Java 基础知识点掌握: 数据类型 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间.内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据. 因此 ...
- 大数据学习——hadoop2.x集群搭建
1.准备Linux环境 1.0先将虚拟机的网络模式选为NAT 1.1修改主机名 vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=itcast ### ...
- 七、整合SQL基础和PL-SQL基础
--Oracle数据库重要知识点整理 2017-01-24 soulsjie 目录 --一.创建及维护表... 2 --1.1 创建... 2 --1.2 维护表... 2 --二.临时表的分类.创建 ...
- 【BZOJ1834】network 网络扩容(最大流,费用流)
题意:给定一张有向图,每条边都有一个容量C和一个扩容费用W.这里扩容费用是指将容量扩大1所需的费用. 求: 1. 在不扩容的情况下,1到N的最大流: 2. 将1到N的最大流增加K所需的最小扩容费用. ...
- hdu4115:Eliminate the Conflict
n<=10000局剪刀石头布,对面第i局出Ai,m<=10000种对你出什么提出的要求:Xi Yi Wi 表示第Xi局和第Yi局,Wi=1:必须不同:Wi=0:必须相同,问是否存在你一局都 ...