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

原创 2014年06月09日 22:52:26

前面说了一些Google API的介绍,但是在实际的开发当中,我们可能需要把Google RESTful API返回的JSON数据转换成XML数据输入到第三方系统,这在企业应用集成里面非常的常见。那么里面就有一个问题,如何确保转换后的XML数据格式是规范的,这就需要XML Schema(XML)来进行校验。现在关键是,我们只知道Google API的JSON的schema,但是Google RESTful并没有提供返回数据的XML的schema,那么XML的Schema将会是什么样子的呢?让我以Google Tasks API为例子。从下面的URL我们可以看到Google Tasks RESTFul的API JSON Schema的信息:https://www.googleapis.com/discovery/v1/apis/tasks/v1/rest

 

 

 

那么,如何把Google Tasks的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="Task">
        <xs:sequence>
            <xs:element name="completed" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="deleted" form="unqualified" type="xs:boolean" minOccurs="0"/>
            <xs:element name="due" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="etag" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="hidden" form="unqualified" type="xs:boolean" minOccurs="0"/>
            <xs:element name="id" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="kind" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="links" form="unqualified" type="Tasklinks" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="notes" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="parent" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="position" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="selfLink" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="status" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="title" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="updated" form="unqualified" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TaskList">
        <xs:sequence>
            <xs:element name="etag" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="id" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="kind" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="selfLink" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="title" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="updated" form="unqualified" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="TaskLists">
        <xs:sequence>
            <xs:element name="etag" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="items" form="unqualified" type="TaskList" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="kind" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="nextPageToken" form="unqualified" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="Taskitems">
        <xs:sequence>
            <xs:element name="description" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="link" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="type" form="unqualified" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="Tasklinks">
        <xs:sequence>
            <xs:element name="items" form="unqualified" type="Taskitems" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="Tasks">
        <xs:sequence>
            <xs:element name="etag" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="items" form="unqualified" type="Task" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="kind" form="unqualified" type="xs:string" minOccurs="0"/>
            <xs:element name="nextPageToken" form="unqualified" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="Task" type="Task"/>
    <xs:element name="TaskList" type="TaskList"/>
    <xs:element name="TaskLists" type="TaskLists"/>
    <xs:element name="Tasks" type="Tasks"/>
</xs:schema>


 

 

 

 

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

如何用Google APIs和Google的应用系统进行集成(8)----如何把Google Blogger(博客)的JSON Schema转换成XML的Schema(XSD)?

在Google RESTFul API中,Google Blogger API应该和我们的生活离得最近;因为几乎很多人每天都在看博客,都在写博客,都听说过博客。在前面的Google的应用系统进行集成(...

如何用Google APIs和Google的应用系统进行集成(6)----如何把Google Calendar的JSON Schema转换成XML的Schema(XSD)?

有Google Task的地方,一般都会有Google Calendar,我在上个章节给大家分享了,如何用Google APIs和Google的应用系统进行集成(5)----如何把Google Tas...

如何用Google APIs和Google的应用系统进行集成(7)----在把JSON转换成XML数据过程中,JSON数据中包含违背XML数据规范:XML节点名不支持数字的Java解决方案

笔者在调用Google Calendar APIs的GetColors过程当中(具体关于Google Calendar API已经Google API的介绍请见我其他的博文,当前我们只是拿Google...

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

说了这么多,那么首先允许我以Google Discovery RESTful服务为例,给大家演示如何用最普通的Java代码调用Google Discovery RESTful服务。...

【Android应用开发】-(17)获取Google天气预报通过Xml和JSON解析数据

最近在做一个天气预报的Widget,通过google提供的api可以查询全世界的天气情况,这篇文章主要讲述如何通过Android的JSON获取城市的经纬度,程序很简单。稍后我将demo供来此博客的朋友...

XSD根据xml生成schema文件

  • 2017年07月18日 15:08
  • 20KB
  • 下载

xsd.exe xml schema文件生成程序

  • 2017年10月27日 13:08
  • 85KB
  • 下载

iOS基于百度地图的开发(6)——google坐标转换成百度坐标

在中国,是不允许使用真实的坐标的,所以每个地图服务商都会对真实的经纬度进行编码(也可以称之为加密吧)。举个例子,比如人民广场的真实的经纬度室(LON, LAT),那么百度提供的经纬度为(LON_B, ...
  • donhao
  • donhao
  • 2012年08月23日 11:33
  • 3379

Google图层转换成mapinfo软件

  • 2017年06月29日 17:01
  • 37.88MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何用Google APIs和Google的应用系统进行集成(5)----如何把Google Tasks的JSON Schema转换成XML的Schema(XSD)?
举报原因:
原因补充:

(最多只允许输入30个字)