XML教程:通过一个例子来学习XML的语法

所属分类: 网页制作 / XML/XSLT 阅读数: 644
收藏 0 赞 0 分享

XML的语法规则既很简单,又很严格。这些规则很容易学习,也很容易使用。
正因为如此,创建可读取及操作XML的软件不是一件难事。 一个XML文档的例子
XML使用一种可自我描述的简单的语法。
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
此文档中的第一行 - XML声明 - 定义了XML的版本和文档中使用的字符编码。在这个例子中,遵守的是XML 1.0规范,并使用了ISO-8859-1字符集。
接下来的一行描述了文档的根元素(就像是在说:“本文档是一个便签”):
<note>
接下来的4行描述了根元素的4个子元素(to, from, heading, 以及 body):
<to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body>
最后的一行定义了根元素的结尾:
</note>
我们可以看到,这个XML文档包含了一个由Jani留给Tove的便签。现在,您应该会同意我们的上述观点,即XML具有完美的自我描述特性。 所有元素都须有关闭标签
当使用XML时,省略关闭标签是非法。
在HTML中,某些元素不一定要有关闭标签。在HTML中下面的代码是合法的:
<p>This is a paragraph <p>This is another paragraph
在XML中,所有的元素都要有关闭标签:
<p>This is a paragraph</p> <p>This is another paragraph</p>
注释:您也许已经从上面的例子中注意到XML声明没有关闭标签。这不是错误。声明不属于XML本身的组成部分。它不是XML元素,也不需要关闭标签。 XML标签对大小写敏感
和HTML不同,XML标签对大小写敏感。
在XML中,标签<Letter>和标签<letter>是不同的。
所以必须使用相同的大小写打开并关闭标签:
<Message>这是错误的。</message> <message>这是正确的。</message> XML必须被正确地嵌套
不正确的标签嵌套对XML是没有意义的。
在HTML中,某些元素可以不正确地彼此嵌套在一起,就像这样:
<b><i>This text is bold and italic</b></i>
在XML中,所有的元素必须正确地彼此嵌套,就像这样:
<b><i>This text is bold and italic</i></b> XML文档必须有根元素
所有的XML必须包含可定义根元素的单一标签对。
所有其他的元素都必须处于这个根元素内部。
所有的元素均可拥有子元素。子元素必须被正确地嵌套于它们的父元素内部:
<root> <child> <subchild>.....</subchild> </child> </root> XML的属性值须加引号
在XML中,省略属性值两旁的引号是非法的。
和HTML类似,XML也可拥有属性(名称/值的对)。在XML中,XML的属性值须加引号。请研究下面的两个XML文档。第一个是错误的,第二个是正确的:
<?xml version="1.0" encoding="ISO-8859-1"?> <note date=12/11/2002> <to>Tove</to> <from>Jani</from> </note>
<?xml version="1.0" encoding="ISO-8859-1"?> <note date="12/11/2002"> <to>Tove</to> <from>Jani</from> </note>
在第一个文档中,日期属性没有加引号。这是正确的:date="12/11/2002"。这是错误的:date=12/11/2002。 在XML中,空格会被保留。
在XML中,空格不会被截掉。
这与HTML不同。在HTML中,像这样的一个句子:
Hello my name is Tove,
会显示为这样:
Hello my name is Tove,
这是由于HTML会把多个连续的空格字符裁减为一个。 在XML中,CR / LF会被转换为LF
在XML中,一个新的行(即换行)被存储为LF(Line Feed,换行)。
您熟悉打字机吗?打字机是上世纪用来制造印刷文档的机械设备。:-)
当您用打字机键入了一行文字后,就需要手动将打印滑架移至左侧页边空白的位置,并手动进纸(feed)一行。
在 Windows 应用程序中,新行通常存储为一对字符:回车(CR)和换行(LF)。这个字符对与打字机的设置新行的动作有异曲同工之处。在Unix应用程序中,新行通常存储为LF字符。而Macintosh应用程序仅使用CR字符来存储新行。 XML中的注释
在XML中书写注释的语法与HTML的语法类似:
<!-- This is a comment --> XML没什么特殊之处
XML没什么特殊之处。它只是带有被括在角形括号中的标签的纯文本而已。
可处理纯文本文件的软件也可以处理XML。在一个简单的文本编辑器中,XML标签也可被显示出来,不会被特殊地对待。
在可识别XML的(XML-aware)应用程序中,XML标签会被专门处理。根据不同的应用程序种类,这些标签也许会/也许不会被看到,又或许拥有某种功能意义。
更多精彩内容其他人还在看

在XML模式中扩展枚举列表

在列表中添加新值是一种常见而且必要的需求。模式设计者通常希望在系统架构中构建一种添加附加值的方法,并且该附加值在设计阶段是未知的。模式设计者如何创建一个可扩展、易于实现的枚举值列表?本文将介绍几种实现这一目标的方法。 模式设计者和实现人员需要一种扩
收藏 0 赞 0 分享

XML入门教程:XML名称空间-XML/XSLT

XML名称空间表示XML名称的使用范围,因为XML可自定义元素标签,所以有不同XML应用间XML名称重名的机会是很大的。如果没有一种方法来区分不应用的名称,就会造成混乱。XML名称空间就是为了解决这个问题而设计的。通过XML名称空间,我们可以区分
收藏 0 赞 0 分享

XML入门教程:属性声明-XML/XSLT

一个有效的XML文档,必须对元素的属性进行声明。使用ATTLIST声明来完成,一个ATTLIST可以为一个元素类型声明多个属性。 一个有效的XML文档,必须对元素的属性进行声明。使用ATTLIST声明来完成,一个ATTLIST可以为一个元素类型
收藏 0 赞 0 分享

XML入门教程:实体-XML/XSLT

由于数据不是XML格式,所以使用NDATA声明指定数据类型。avi是在NOTATION中定义的MIME媒体类型。在XML中嵌入未析实体很复杂且不规范,尽量不要使用。 实体 用ENTITY声明定义实体。如:
收藏 0 赞 0 分享

XML入门教程:元素声明-XML/XSLT

有效文档中使用的每个元素都必须在文档的DTD中用元素声明进行声明。element_name可是任何合法的XML名称,content_model(内容模型)指定元素可以或必须包含的子元素以及子元素的顺序。下面具体介绍内容模型的内容。 上节文档类型
收藏 0 赞 0 分享

XML入门教程:文档类型声明-XML/XSLT

要使用DTD进行有效性检验,就要使用文档类型定义声明指定DTD。文档类型声明位于XML声明之后,根元素之前。如果dtd文档位于本机,可用路径名直接指出dtd文档的位置。 由于XML可自定义标签,所以每个人定义的标签集都会不同,如
收藏 0 赞 0 分享

XML入门教程:XML语法-XML/XSLT

接着在浏览器中打开index.xml文档,则可显示“Hello World”。上面两个文档都是合法的XML文件,具体的语法规则下面会详细介绍,上例可先给大家一个感性的认识。合法的XML文档可有种意思,一个是良构文档(well-format),即符合XML规则书写的文档
收藏 0 赞 0 分享

xml入门教程:XML是什么-XML/XSLT

XML(eXtensible Markup Language,可扩展标记语言)是SGML的一个子集,但比SGML简单,用以创建可相互转换的结构化文本文档和数据文档。下面说明一下与XML相关的一些概念。 XML(eXtensible Markup L
收藏 0 赞 0 分享

WAP教程(11):WAP论坛和开放移动联盟与论坛-XML/XSLT

WAP 论坛,WAP开放移动联盟,WAP论坛. WAP 论坛 (WAP Forum) 无线应用协议 (WAP) 论坛为数字移动电话和其他无线终端开发了事实上的全球标准。 WAP 论坛发布了开放的全球无线协议规范,此规范基于已有的因特网标准
收藏 0 赞 0 分享

WAP教程(10):WML参考手册、WML实例和WML DTD-XML/XSLT

WAP 协议用于在无线客户端(比如移动电话)上展示因特网内容。 WAP 协议用于在无线客户端(比如移动电话)上展示因特网内容。 Deck / Card 元素
收藏 0 赞 0 分享
查看更多