XML(可扩展标记语言)是一个为描述数据而设计的符号系统。XML已经成为一个通过Internet描述与传输数据的标准。

本课中你将通过查看Popfly块怎样使用XML来描述它们的输入,输出,与操作来认识XML。接着,你将研究来自RSS源的数据,查看其背后的XML,并创建一个mashup来显示它。最后,你将初步了解web服务,并研究Popfly块调用一个web服务时生成的XML。

深入幕后:使用 Popfly学习XML的初学者指南

 

本课的Professor Popfly Mashups参考:

 

l  ProfPopflyRSSFeed (http://www.popfly.com/users/professorpopfly/ProfPopflyRSSFeed )

l  YahooTraffic XML (Block) (http://www.popfly.com/users/professorpopfly/YahooTrafficXML )

l  YahooTrafficXMLMashup (http://www.popfly.com/users/professorpopfly/YahooTrafficXMLMashup)

学习目标

 

完成本课学习后,你将可以:

l  描述XML与HTML之间的不同

l  识别XML文件的不同组成部分

l  阐述Popfly怎样使用XML来描述块

l  解释为什么XML适合数据交换

l  解释为什么CSV(逗号分隔)格式的文件在描述信息时存在缺陷

l  描述XML与RSS之间的关系

l  理解web服务向其他应用程序提供信息的方式

概览

 

XML(可扩展标记语言)是一个为描述数据而设计的符号系统。由于XML关注数据含义的本身,许多提供软件服务的Web2.0公司通过internet提供XML格式表示的数据。XML已经成为一个通过Internet描述与传输数据的标准语言。

本课中你将用3种不同的方式使用Popfly与XML交互。首先,你将通过查看Popfly块怎样使用XML来描述它们的输入,输出,与操作来学习与认识XML。接着,你将研究来自RSS源的数据,查看其背后的XML,并创建一个mashup来显示它。最后,你将初步了解web服务,并研究Popfly块调用一个web服务时生成的XML。

什么是XML

 

一种简单的表示可以让应用程序处理的信息的方式是使用CSV格式的文本文件。例如,考虑下面这个不同大学的示例数据:

Bentley College, 623, 576

Boston College, 667, 650

Northeastern University, 615, 596

Cornell University,,

虽然学院的名字是很明显的,但是如果没有标记那两个数字值的含义就不明确了。它们可以是今年入学的男学生与女学生数,或即将入学的大一新生的数学与关键阅读SAT的平均分数,或校园内学生花费在活动与技术上的费用。一种可能将这些数据的含义标识清楚的方式是将数据以XML格式表示:

<?xml version="1.0" encoding="utf-8" ?>

<collegeList>

<college name= "Bentley College ">

<satMath>623</satMath>

<satReading>576</satReading>

</college>

<college name= "Boston College ">

<name>Boston College</name>

<satMath>667</satMath>

<satReading>650</satReading>

</college>

<college name= "Northeastern University ">

<satMath>615</satMath>

<satReading>596</satReading>

</college>

<college name= "Cornell University " />

</collegeList>

列表中的每一个项目都由一个开标签与一个闭标签来指示。在一个XML文档中标签标记一个单元信息的开始与结束。整个文档被包在一个唯一的”根”元素(上面例子中为<collegeList>)内。关闭标签以/开头,后面跟着标签的名称,XML要求每个开标签都有一个对应的闭标签。每个标签被定义于一对尖括号<>中,并被称作元素(element)。

XML的规则之一是每一个起始标签都需要一个相应的结束标签。在某些情况下,起始标签与结束标签间可能没有指定任何信息,所以可以使用下列速记符号:例如:康奈尔大学没有可用的SAT成绩,这时<college name=”Cornell University”></college>这个标签可以简写为 <college name=”Cornell University” />。遵守这条以及其它规则的文档被称作格式良好(well-formed)的文档。

一些元素,如<collegeList>与<college>包含了其它元素,这使XML成为一种结构化的标记语言。<college>元素又有一个name属性来给其本身增加附加信息。

注意,以XML来表示的信息没有与网页相关的。HTML(超文本标记语言)定义了用于格式化与显示数据的标签,而不包含关于数据意义本身的信息。一种基于HTML的新标准被称作XHTML(可扩展超文本标记语言),其出于获得格式良好文档的愿望,将XML格式的规则应用到HTML上。

示例1:查看一个Popfly块的内部

 

这个例子描述了怎样查看一个Popfly块的内部基础 – XML。Popfly块使用XML来确定与一个Popfly块相关的输入,操作与对象。

打开Popfly,并创建一个新的块。有左侧区域选择任何可用的块。点击一个块将在Popfly的代码区域加载其描述与代码。PhotoStack块有一个称为addImage的操作,其接受两个输入:imageUrl与图片的标题。

如下是描述PhotoStack规格定义的XML:

如下是你在mashup编辑器中打开PhotoStack块时看到的样子:

注意块描述部分的XML代码与Popfly Mashup编辑器解释并显示的Popfly块的XML格式的定义是相一致的。块描述中给出的每个操作,输入,默认值,与描述都作为块规范的一部分出现。

示例2:查看一个RSS源的内部

RSS(简单聚合)源使用XML来发布更新频繁的web内容。通过向聚合程序提供RSS源的URL,聚合软件将会周期性的检查源中是否有更新,并显示新项目。这个过程由许多不同的网站收集数据。

网站中通常用这个图标来表示一个RSS源。你可以点击你项目页面中的Popfly Mashup编辑器中的RSS图标来查看RSS源,然后可以产看那个页面的源文件以查看源本身的XML。这个URL如下URL是Professor Popfly这个Popfly项目的源:http://www.popfly.com/users/professorpopfly/projects.rss。你的Popfly项目的源的URL类似,只需将professorpopfly替换为你的Popfly用户名即可。

每次你保存一个Popfly mashup时,Popfly将mashup及其相关的信息存储于数据库中。当你请求你的Popfly mashup的RSS源时,这个请求在Popfly服务器上运行一个程序来查询其数据库并在运行中生成一个RSS源文件。查询数据库中指定的信息并返回那个信息XML格式的数据来作为程序的输出结果这种生成XML的方式很常见。

Popfly项目的RSS的XML的一部分如下:

<?xml version="1.0" encoding="utf-8"?>

<rss version="2.0">

<channel>

<title>professorpopfly's Popfly Feed</title>

<link>http://www.popfly.com/users/professorpopfly</link>

<description>

Popfly projects shared by professorpopfly.

</description>

<lastBuildDate>Tue, 27 May 2008 03:16:26 GMT</lastBuildDate>

<item>

<title>USGSEarthquakes</title>

<link>

http://www.popfly.com/users/professorpopfly/USGSEarthquakes.details

</link>

<description>

Mashup of earthquake data from US Geological Survey. &amp;#40;earthquake.usgs.gov&amp;#41;.  This one includes little maps in the description, so it&amp;#39;s prettier than my other Earthquake mashup.

</description>

<pubDate>Tue, 27 May 2008 03:16:26 GMT</pubDate>

</item>

<item>

<title>FlickrPhotoSphere</title>

<link>                http://www.popfly.com/users/professorpopfly/FlickrPhotoSphere.details

</link>

<description>Display photos on a sphere.</description>

<pubDate>Mon, 26 May 2008 05:43:30 GMT</pubDate>

</item>

</channel>

</rss>

注意,每个RSS源,无论其实描述Popfly mashup,博客文章,或是你发布在flickr上的近期照片,都(至少)包含<rss>, <channel>, <item>, <title>, <link>,  <description>与<pubDate>这几个标签。这些是最常见的;RSS规范也允许一些其它的标签来标记内容中相应的信息。出于这点,合并并处理RSS源是非常简单的,就如我们将在RSS课中看到的那样。Popfly的RSS块由RSS源中返回这些与其它的那些值。要查看这些值,将RSS块连接到Popfly中另一个块,并指定RSS块作为后者的输入值。

在这个例子中我们创建了一个简单的mashup来显示RSS源。这个mashup使用RSS块由指定的RSS源获取项目,使用RSSList来将项目显示在一个交互的动态的界面中。使用RSS块的getItems操作,输入你的Popfly mashup的(或者另一个)RSS源的URL,并将其连接到一个RSSList块来创建一个有趣的显示RSS的列表。如果你喜欢可以自定义RSSList的颜色。

在预览这个mashup之前,通过点击其扳手图标来查看RSSList块的内部。注意下拉列表中的项目完全就是那些RSS源输出的项目。Popfly基于字段名称与数据类型将一个块的输出与另一个的输入尽可能的匹配。

示例3:深入查看Yahoo Traffic与其它Web Services

 

在被命名为Mashups, Interoperability and eInnovation的白皮书(http://cyber.law.harvard.edu/interop/pdfs/interop-mashups.pdf)中,位于马萨诸塞州剑桥的哈佛大学的伯克曼中心互联网与社会部门的John Palfrey与Urs Gasser教授描述了web服务正在怎样改变人们使用互联网的方式:

“Web越来越多不再仅作为一个信息的门户,而是同时提供应用程序到应用程序的通信。Web服务是将不同应用彼此相连的接口,或者任何一种可以通过网络实现机器到机器的交互的技术的代名词”

许多Popfly块访问web服务以便获取它们的信息。一个Web服务是一个应用程序(如你的Popfly mashup)可以调用的位于互联网上任意其它位置远程计算机上的方法或操作。Web服务向调用它的应用程序提供XML格式的输出。Web服务为应用程序或组织彼此通过互联网分享数据提供了一个框架。

在这个例子中,你将看到怎样检查一个Web服务返回的XML格式的数据。这个例子在Popfly中使用了Yahoo Traffic块。Yahoo Traffic是一个由Yahoo(http://developer.yahoo.com/traffic/)提供的Web服务。我们即将构建的Popfly mashup(运行于微软web服务器)将调用提供交通数据的Yahoo服务(运行于yahoo.com的服务器上)。

打开Popfly并新建一个块。拖动Yahoo Traffic块到设计区域,注意这个块的描述将会显示。点击Block Code标签页。

查找一行包含”environment.getXml(…)”的JavaScript代码。这条语句是Popfly用来调用Web服务获取真实XML数据的。要显示返回的XML,你需要在那行包含调用(enviroment.getXml(…))的语句的下方添加一行JavaScript代码来在弹出对话框中显示原始的XML。

alert(returnResponse.xml);

在这个块中,returnResponse是包含XML响应的变量的名称。注意其它块可能在”=”前使用不用的命名的变量。确保正确的拼写变量的名称,确保大小写与你正在拷贝的源代码中的格式完全一致。

点击保存并运行。给你的块起一个名字。(ProfessorPopfly将其命名为YahooTrafficXML)。一个新的包含你的新块的Popfly Mashup编辑器将出现在一个新的浏览器窗口中。点击预览来将这个块作为一个mashup运行。一个警告窗将弹出来,其中你可以看到来自web服务的数据的XML。如果在弹出窗中没有看到XML代码,这可能说明你没有正确的拼写alert语句。

注意:IE7在警告窗中将只显示XML的一部分。Firefox将打开一个更大的警告窗来展示所有的XML。

但你查看过XML后,点击警告窗的OK按钮。当mashup完成后,在你的浏览器中查看其输出。观察警告窗中展示的XML数据与展示在浏览器中的mashup的输出有何不同?

转载于:https://www.cnblogs.com/lsxqw2004/archive/2009/11/30/1664918.html

[翻译]Popfly系列课程7 –深入幕后:使用 Popfly学习XML的初学者指南相关推荐

  1. [翻译]Popfly系列课程2 - 起程–Popfly Mashup创作工具:即将成为你身边的影院

    起程 – Popfly Mashup创作工具:即将成为你身边的影院 在地图上实时显示社区的属性,合并RSS源,将Flicker上的照片嵌入其它网站都是一种被称为Mashup的新型Web应用程序.在上面 ...

  2. Android官方开发文档Training系列课程中文版:构建第一款安卓应用之入门指南

    入门指南 欢迎来到安卓开发训练课,在这里你可以找到一系列课程来描述如何使用现有的代码示例来重新适用到你的APP上,你可以在左侧的导航栏顶部看到在若干个大项里有若干个有组织的子项课程.(导航栏请参见官方 ...

  3. arcgis 快速制图插件_51GIS学院|ArcGIS空间数据分析系列课程的27个视频

    51GIS学院 课程背景 迎接科学分析与国土空间规划,迅速掌握ArcGIS基础操作并进阶实战,推出本次ArcGIS空间数据分析系列课程.系列课程一,为ArcGIS基础与制图,课程目标为掌握ArcGIS ...

  4. 视频教程-Linux系列课程(基础篇)-Linux

    Linux系列课程(基础篇) 2年JavaEE开发 ,5年资深大数据开发大牛,曾就职于蓝点科技,擅长精准广告系统开发,精通Linux操作系统! 具备丰富的大数据研发和培训经验,熟练运用Hadoop和S ...

  5. 视频教程-php进阶课程之swoole系列课程精讲(第一季)-PHP

    php进阶课程之swoole系列课程精讲(第一季) 多年一线互联网开发实战以及培训经验,对php开发,linux运维架构有丰富的经验,善于分析问题,解决问题. lampol ¥199.00 立即订阅 ...

  6. Android官方开发文档Training系列课程中文版:目录

    原文地址 : http://android.xsoftlab.net/training/index.html 引言 在翻译了一篇安卓的官方文档之后,我觉得应该做一件事情,就是把安卓的整篇训练课程全部翻 ...

  7. 不缺流量却变现乏力?穿山甲重磅打造《App 如何变现创收》系列课程帮你找症结...

     0 1   用专业打磨一门人人都听得懂的商业课 通过数月的打磨与复盘,穿山甲将助力10W+App增长与变现的幕后实战经验整理总结成方法论,为大家深入浅出分享<App如何变现创收?>. 无 ...

  8. 吴恩达deeplearning.ai系列课程笔记+编程作业(15)序列模型(Sequence Models)-第三周 序列模型和注意力机制

    第五门课 序列模型(Sequence Models) 第三周 序列模型和注意力机制(Sequence models & Attention mechanism) 文章目录 第五门课 序列模型( ...

  9. 吴恩达deeplearning.ai系列课程笔记+编程作业(13)序列模型(Sequence Models)-第一周 循环序列模型(Recurrent Neural Networks)

    第五门课 序列模型(Sequence Models) 第一周 循环序列模型(Recurrent Neural Networks) 文章目录 第五门课 序列模型(Sequence Models) 第一周 ...

  10. 视频+课件| 视觉引导系列课程

    写在前面 感谢「3D视觉从入门到精通」知识星球嘉宾冠宇为我们带来的主题为<视觉引导系列课程>视频讲解,星球成员可免费观看学习.备注:冠宇,工业机器人视觉方向,知名企业算法工程师. 附课件: ...

最新文章

  1. 吴恩达老师深度学习视频课笔记:循环神经网络
  2. Python 之 Pandas (四)处理丢失数据
  3. iOS开发 之 可穿戴设备 蓝牙4.0 BLE 开发
  4. STM32单片机低功耗配置
  5. Oracle函数的信息,Oracle中获取会话信息的两个函数分享
  6. 关于socket的一些总结
  7. Microsoft Windows XP SP3安装测试手记
  8. 大一c语言图书管理系统查询,大一C语言课程设计图书信息管理系统.doc
  9. Struts2的学习-属性驱动和模型驱动
  10. RabbitMQ文档翻译——Hello World!(下)
  11. crontab任务误删恢复及备份步骤
  12. numpy 数组的旋转、上下翻转、镜像
  13. Autocad2017破解版下载|Autodesk Autocad 2017中文破解版下载 64位(附注册机/序列号)
  14. 使用博图V15和KEPServerEX6软件进行OPC Server读取PLC数据仿真(对PLC数据采集和边缘计算程序测试的准备)
  15. python放大代码放大_Python中的放大缩小功能
  16. ScriptManager.RegisterStartupScript()方法
  17. 数据分析的一些方法(一)
  18. 工作经验分享-vivo链路监控
  19. 社交舞 - 简介,释名,风格,舞步 - 金山词霸汉语 - HAPPY Life
  20. 全网最全!中国计算机学会推荐国际学术会议和期刊汇总

热门文章

  1. Unity3D shader简介
  2. L01-03:python学习之控制语句
  3. Ubuntu java 环境变量
  4. NetTiers学习笔记12---deepload的递归
  5. Android proguard 详解
  6. 爱尔兰圣三一大学计算机专业硕士,爱尔兰圣三一学院研究生申请要求
  7. Android全局变量使用
  8. 融云server sdk java_开源项目索引
  9. mysql事务的两点特性_MySQL基础篇(06):事务管理,锁机制案例详解
  10. sqlalchemy mysql配置中怎么设置utf8_python – 使用SQLAlchemy和pymysql,如何设置连接以使用utf8mb4?...