XML简易教程之三

2016-02-19 22:28 4 1 收藏

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的XML简易教程之三,希望大家看完后能赶快学习起来。

【 tulaoshi.com - Web开发 】

  XML的未来
  现在你已经知道XML。确实,结构有点复杂,而且DTD有各种可
  以定义文档可以包含的内容的选项。但还不只这些。

  考虑一个数据交换对其很重要的产业,如银行。银行使用所有
  权系统来跟踪内部的交易,但是如果他们在Web上使用一种通用
  的XML格式,那么他们必须描述交易信息给另一个机构或应用程
  序(如Quicken或MS Money)。当然,他们也可以在Web页面上
  表示数据。FYI:这个标记不存在。它叫做OFEX,开放金融交易
  格式(Open Financial Exchange)。

  在某种情况下,如果PC上的IE 4碰到一个SOFTPKG 标记符,一
  个函数会被启动以给用户更新已安装的软件的机会。如果你用
  的是Windows 98,你可能看见过这种情况,但是不知道它是一
  个XML应用程序。

  这里我们有三个XML应用程序,看起来与Andy Grove在70年代看
  到的加法机、打字机和铅笔不同。但是与最终出现在PC上的应
  用程序相似,XML的好处可以被一般性地描述为:“当你使用人
  类和机器可读的标记符描述你的数据时,会有好事发生的。”

  这些好事是什么呢?我不知道。但是我也不知道我的PC上的下
  一代程序将会是什么样。只要数据以这种方式标记,可以产生
  不同的应用。

  你开始考虑它会扩展到什么程度了吗?

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  我们有很多XML的实际应用可以谈论,我会在不久的将来谈到它
  们的。既然我们都是网民,以后将是XSL(扩展样式语言 -
  eXtensible Style Language)了。

  顺便提一句,这个菜谱确实是我妈妈_的,而且很杰出。如果你
  用之,再加半杯碎椰子。

  
  我写这篇文章是因为我真诚地关心你对我的看法。我担心的是:如果你读过我写的XML简介然后准备开始写自己的XML文档。于是你开始寻找一个已经建立的DTD来表示你的信息。你找到一个,如下所示:

   

  !ATTLIST fn

  %attr.lang;

  value CDATA #FIXED "TEXT"

  !ENTITY % attr.img "

  img.type CDATA #REQUIRED

  img.data ENTITY #REQUIRED"

  
  马上你就会认为Jay一定是一个白痴。他没有说关于ATTLIST和ENTITY的任何事 - 不管它们是什么。

  那么让我们谈谈这件事,先有一点耐心。

  上面这些行可能不好看,但实际上没什么。它们被用在DTD中来定义XML文档中的属性和实体。了解HTML的人会对这很清楚。属性是带有HTML标记符的条目,用来更准确地描述标记符。在经常出现的img src="my.gif" height="20" width="20"中,有两个属性:height和width。你在后面会看到,在XML文档使用属性与之很相似。

  对实体也没有什么新东西。如果你用过&,你就已经掌握了最基本的东西。一个被&和分号包围起来的字符串用来表示另一个或一套字符。(这里有ISO实体的完整清单。)

  当然,XML中属性和实体还有其它功能。这就不可避免地要引入语法,虽然不太多。一旦知道了这些,就会不费劲地使用XML文档。

  简化菜谱

  如果你读过我写的XML简介,你会记得用简单的标记符表示的菜谱中的组成成分,如item2 cups flour/item。在写完那篇文章后,我在网上漫游,发现关于菜谱的另一个XML文档。其中的菜谱元素如下所示:

  
  ingredient quantity="2" units="cups"flour/ingredient

  这种方法有一个实际的好处:可以更容易控制数据。用第一种方法,item标记符用来容纳一堆不同的信息。如果我想提取组成成分的清单而不需要各成分的量,我就不会那么做。

  我可以用如下的结构取得相似的功能:

  
  itemflour

  quantity2/quantity

  unitscups/units

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  
  这可以被处理,但是有两个问题:首先,item元素包含了混合的内容:文本和其它标记符。我很快就发现应该尽量避免这种结构。其次是标记符几乎没有独立的意义。很难想象只要units而不要实际的组成成分的情况。这些条目可以被简单描述,我宁愿把它们当作属性。

  首先要注意的是属性名,quantity和units只有被能够翻译它们的应用程序处理时才有意义。

  在被包含在有效的文档中之前,应告诉DTD来允许它。对于上面的ingredient元素,我们在DTD中只包含了以下代码:

   

  !ELEMENT ingredient #PCDATA

  !ATTLIST ingredient quantity CDATA #REQUIRED

  !ATTLIST ingredient units CDATA #REQUIRED

  
  第一行看起来很熟悉 - 在任何DTD中都能看到的标准元素定义。每个ATTLIST行都依次包含以下信息:

  
  !ATTLIST ingredient quantity CDATA #REQUIRED

  这是属性依附的元素。

  !ATTLIST ingredient quantity CDATA #REQUIRED

  这里定义属性名。

  !ATTLIST ingredient quantity CDATA #REQUIRED

  这里设置属性类型。CDATA代表字符数据。意味着处理器在属性内可以得到文本。

  !ATTLIST ingredient quantity CDATA #REQUIRED

  最后的部分定义属性的缺省值。可以使用实际的数值,如3。这样,XML中空白长度的属性值将为3。输入的值将覆盖缺省值。

  在上面的例子中我没有设置特定的数量,而是使用XML的关键字#REQUIRED。它告诉处理器次属性必须包含一个值。如果空白,文档将不被处理。

  缺省值有另外两个关键字。第一个是#FIXED - 如果属性值在整个文档中保持相同的值。假设我定义一个image的标记符属性,所有图像的大小都相同,比如说100*50像素,就可以在DTD中这样定义属性:

  
  !ATTLIST picture length CDATA #FIXED "100 px"

  !ATTLIST picture width CDATA #FIXED "50 px"

   

  另一个关键字是#IMPLIED,表示属性可以包含值或是空的。

  下面让我们看看属性类型。

  如果你决定自己写DTD,可能需要一本解释ATTLIST语句中所有组合的XML的书。但是如果借用DTD,或许只知道CDATA和另外三种属性就性了。

  第一个是ID。它要求属性的值在文档中不重复。使用过数据库的人都知道唯一标志符的必要性。DTD ATTLIST语句看起来象这样:

  !ATTLIST element_name attribute_name ID #REQUIRED

  很难想象没有#REQUIRED缺省值的ID属性类型。如果那样,任何重复的或空的ID都会迫使处理器返回一个错误。ID必须以字母或下划线开始并且不能包含任何空格。

  NMTOKEN类型也使用上面的命名规则。但是允许重复。它被用做传递数据给应用程序的保障。大多数程序语言,包括Java和JavaScript,在模块名中不能有空格。大多数情况下,最好保证属性符合它们的规则。

  最后是枚举类型,不需要特定的关键字。而是用"|"符号包含在括号内的值,例如:

  !ATTLIST sibling (brother | sister) #REQUIRED

  如果有有限的可能的属性值,可以用这种方式。

  不会认为今天的课程无趣吧,那么就接着读吧!
  

来源:http://www.tulaoshi.com/n/20160219/1628390.html

延伸阅读
标签: 服务器
LLsMP系列教程之三:Litespeed开启htaccess伪静态方法 如果我们的VPS是用LLsMP架构的话,默认的htaccess伪静态是支持比如wordpress,discuz等常规的CMS。但是有些时候,有些程序我们在安装后,或者说后台启动了伪静态功能,前台点击页面文件并没有达到我们的效果,而是文件显示404错误页面。这主要的问题是我们的伪静态没有开启,我们需要...
在完成了前两步之后就要完成第三步中棱归位了,图老师给大家第三步的魔方公式,如果还看不懂,那就看看图老师给大家找的视频吧。 视频讲解很全面,希望大家能享受魔方的乐趣。
标签: 化妆
Step 1、首先用保鲜膜包裹住热毛巾,放在眼部热敷约30秒。 Step 2、将冷藏过的柔肤水浸透化妆棉,在眼下三角区域敷约3分钟。 Step 3、用一只手轻提眼梢,另一只手的指腹边由内向外轻按,边涂抹眼霜。 延伸阅读: 不同的眼睛类型与修饰方法 一、眼睛的类型 眼睛是传达。交流感情,体现...
3 定位路径与路径步 XPath的主要构件是表达式,其中,最重要的表达式是定位路径(Location Path)表达式,这也是它为什么命名为XPath的原因。定位路径表达式是这种类型的表达式:/pub/book/author粗看起来,定位路径表达式很像文件系统中的路径。定位路径的思想和文件系统中的路径却是很相似,当然,更复杂一些。定位路径有两种,分别是相对的定...
标签: Painter
1.运行 IX软件,新建一个空白文件。 2.使用Pencils/Cover Pencil的画笔,勾勒出大致的轮廓和形体分布。如同纸上铅笔素描一般,Intuos 3的舒适手感,丝毫不会影响你在数字媒体上的创作流畅性。 3.选用Airbrushes/Soft Airbrush 50,进行初步的色彩渲染。 4.使用小一号的Soft ...

经验教程

264

收藏

64
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部