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

前面说了一些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的应用系统进行集成(5)----如何把Google Tasks的JSON Schema转换成XML的Schema(XSD)?

时间: 2024-10-12 22:37:18

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

如何用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 APIs和Google的应用系统进行集成(6)----如何把Google Calendar的JSON Schema转换成XML的Schema(XSD)?

有Google Task的地方,一般都会有Google Calendar,我在上个章节给大家分享了,如何用Google APIs和Google的应用系统进行集成(5)----如何把Google Tasks的JSON Schema转换成XML的Schema(XSD)?(http://blog.csdn.net/chancein007/article/details/29645055),那么Google Calendar的JSON Schema转换成XML的Schema将会是什么样子的呢?首先我们先

怎样用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 APIs和Google的应用系统进行集成(7)----在把JSON转换成XML数据过程中,JSON数据中包含违背XML数据规范:XML节点名不能只是数字的解决方案

http://passport.baidu.com/?business&un=%E6%8C%89%E6%91%A9%E7%BE%8E%E5%A5%B3%E6%89%BE%E5%89%91%E6%B2%B3#0 http://passport.baidu.com/?business&un=%E5%8C%85%E5%A4%9C%E9%95%87%E8%BF%9C%E7%BE%8E%E5%A5%B3%E6%89%BE#0 http://passport.baidu.com/?business&a

Unable to resolve target &#39;Google Inc.:Google APIs:8&#39;

当从网上下载一个Android项目打开的时候,有可能就会报错:Unable to resolve target 'Google Inc.:Google APIs:8' 这是由于项目的target使用的是Google的API,但我们的Eclipse中并没有装相应的SDK包,系统查找不到自然就报错了,自己也遇到过这个问题,现在把解决方法写出来给一些遇到同样问题的朋友一点帮助吧! 首先我要讲的第一个方法是网上大部分人说的解决办法 (一)在项目里面找到project.properties打开,将里面的t

GPS模块输出的NMEA数据ddmm.mmmm转换成dd.ddddd并在google Earth Pro中描点

GPS模块输出的数据是NMEA格式,其中GPGGA字段包含我们需要的经纬度信息. 例:$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,12.2,M,19.7,M,,0000*1F 其中 4250.5589,S,14718.5084,E 就是经度和纬度数据,其格式是 纬度:ddmm.mmmmm(度分) 经度:dddmm.mmmmm(度分) google Earth Pro是免费.强大的地图工具,它支持导入包含经纬度的csv文件,用来描点,使

如何用Google APIs和Google的应用系统进行集成(2)----发现Google APIs的RESTFul服务

上篇文章,我提到了,Google APIs暴露了86种不同种类和版本的API.我们可以通过在浏览器里面输入https://www.googleapis.com/discovery/v1/apis这个URL地址,其将会把所有Google API支持的不同种类和版本的API全部列出来.其具体信息如下: 序号 API 标题 名字 版本 RestFul请求的URL RestFul请求的URL 1 Ad Exchange Buyer API adexchangebuyer v1 https://www.g

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

说了这么多,那么首先允许我以Google Discovery RESTful服务为例,给大家演示如何用最普通的Java代码调用Google Discovery RESTful服务. 引言: 在"如何用Google APIs和Google的应用系统进行集成(2)"的下面,我列出了当前Google APIs支持的所有的Google APIs.其实这个表格是我用代码调用Google Discovery RESTFul服务自动生成的.具体的步骤和代码如下: (1) 访问Google Disco

如何用Google APIs和Google的应用系统进行集成(1)----Google APIs简单介绍

Google的应用系统提供了很多的应用,比如 Google广告,Google 任务,Google 日历,Google blogger,Google Plus,Google 地图等等非常的多的应用,请见下图, 下图中列出的只是Google APIs中的冰山一角(Google API总共支持大约80几种不同种类和版本的Google API,我将在后面的章节中详细列出).有的时候,我们需要把这些系统的数据集成到我们自己的系统当中(自己开发的Web系统,或者其他的系统当中).这个时候,我们就不得不了解如