扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
超文本标记语言HTML
HTML使得web发布变得非常得简单。每个人无需了解HTML语法就可以使用WYSIWYG编辑器进web创作。
HTML的不足
今天看来,HTML 存在很大的局限性。由于标准的标记已经由W3C预先确定,所以当描述复杂文档时HTML就显得力不从心。HTML是面向描述的,而非面向对象的,因此,HTML标记不会给出内容的含义。你也许要问:为什么W3C不再引进些标记来描述内容呢?因为这么做将导致另一个难题:浏览器生产公司会引进新的但却是私有的标记来吸引用户使用他们的产品。
使用当前的HTML,开发者必须要对文档进行许多的调整才能兼容流行的浏览器。由于浏览器不会去检查错误的HTML代码,因此导致Internet上大量的文档包含了错误的HTML语法。这个问题越来越严重,W3C开始寻找解决办法。会是什么呢?这就是XML!
可扩展标记语言XML
XML可以看做是SGML的简版。XML是大小写敏感的,比如<p>与<P>是不同的,而这在HTML中是等同对待的。
XML是可扩展的,我们可以创建自定义元素以满足创作需要。有了这个强大特征,我们不用等待W3C 委员会发布包含你需要的标记的下一个HTML版本了。
XML是结构化的,XML文档应该粘附一个特殊的结构。如果一个文档没有适当的结构,那么就不能认为它是XML。
XML比SGML更容易存取。因为它具有良好的结构,因此程序员可以容易地编写软件来描述XML文档。XML具有简单的原则来区分文档内容和XML标记元素。
什么是DTD(文档类型定义)?
一个DTD可以看做是标记语言的语法文件,它是一套定义XML标记如何使用的规则。DTD定义了元素、元素的属性和取值,以及哪个元素可以被包含在另一个元素中的说明。DTD还可以用于定义实体。
请看一看下面的例子,它是一个关于email的DTD:
<!ELEMENT Mail (From, To, Cc?, Date?, Subject, Body)>
<!ELEMENT From (#PCDATA) >
<!ELEMENT To (#PCDATA) >
<!ELEMENT Cc (#PCDATA) >
<!ELEMENT Date (#PCDATA) >
<!ELEMENT Subject (#PCDATA) >
<!ELEMENT Body (#PCDATA | P | Br)* >
<!ELEMENT P (#PCDATA | Br)* >
<!ATTLIST P align (left | right | justify) "left" >
<!ELEMENT Br EMPTY >
根据上面这个DTD的内容,与之符合的XML文档具备如下特征:
l 有一个From、一个To、一个可选择的Cc、一个可选择的Date、一个Subject和一个body。
l From 、To、Cc、Date、Subject元素只包含文本信息。
l Body元素可以含有文本和零或者多个P和Br元素。
l P元素可以包含文本和零或者多个Br元素。
l P元素有一个align属性,它的可取值范围是left、justify 或者right,默认值是left。
l Br元素是空的。
XML解析器将使用这个DTD来解析XML文档。DTD使我们能够发布文档以供其他人共享。XML文档应该具备告诉XML执行程序寻找DTD的指令,XML文件开头的<!DOCTYPE> 元素就执行了这个寻找功能。请看下面的例子:
<!DOCTYPE Mail system "ttp://infowest.com/DTDS/mail.dtd">
<Mail>
..
..
..
</Mail>
有效XML文档以及简化格式的XML文档
XML文档分为两类:有效的XML文档以及简化格式的XML文档。
一个简化格式的XML文档必须遵从下面几个原则:
l 至少有一个元素
l 遵守XML规范
l 根元素(比如上面例子中的<Mail>)应该不被其他元素所包含
l 适当的元素嵌套是必须的
l 属性值应该在问号内
l 除了保留实体外,所有的实体都要声明
在试着创建XML文档前,请一定阅读XML的相关文档规范,比如这里:ttp://www.w3c.org/xml
即使没有一个DTD文件,XML解析器也可以解析一个简化格式的XML文档。如果不是简化格式的XML文档,也就不能叫做是XML文档了。这个特征对于web应用程序是个好消息,因为应用程序不需要了解用于创建XML文档的DTD结构。
有效XML
有效XML文档指的是那些拥有一个DTD参考文件的XML文档。一个有效XML文档至少必须首先是简化格式的XML文档。跟随这个文档的DTD文件的有效性促进了XML执行程序的运行以及文档在兼容XML浏览器中的显示。
XML文档举例
例子1 - 一个简化格式的XML文档:
<?xml version="1.0" standalone="no"?>
<Mail>
<From>Author</From>
<To>Receiver</To>
<Date> Thu, 7 Oct 1999 11:15:16 -0600</Date>
<Subject>XML Introduction</Subject>
<body><p>Thanks for reading<Br/>
this article</p>
<br/>
<p>Hope you enjoyed this article</p>
</body>
</Mail>
第1行是XML声明,其中version属性指明了XML的版本,standalone属性等于"no"表示标记声明不独立于文档内部。XML声明可以看做是"运行指令"。尽管这个声明不是必须的,但是最好包含它,这将提高文档的灵活性。
例子2 - 一个遵守mail.dtd文件的有效XML文档。Date元素被省略,因为在mail.dtd中它是可选的。 元素 P 具有justify属性。Body和P元素间是Comments文本:
<?xml version="1.0" standalone="no"?>
<!DOCTYPE Mail system "ttp://infowest.com/DTDS/mail.dtd">
<Mail>
<From>Author</From>
<To>Receiver</To>
<Cc>Receiver2</Cc>
<Subject>XML Introduction</Subject>
<body>Comments:<p align="justify">Thanks for reading<Br/>
this article</p>
<br/>
<p>Hope you enjoyed this article</p>
</body>
</Mail>
例子3 -一个遵守mail.dtd文件的有效XML文档,存在Date 元素和Cc 元素,P元素拥有属性right:
<?xml version="1.0" standalone="no"?>
<!DOCTYPE Mail system "ttp://infowest.com/DTDS/mail.dtd">
<Mail>
<From>Author</From>
<To>Receiver</To>
<Cc>Receiver2</Cc>
<Date> Thu, 7 Oct 1999 11:15:16 -0600</Date>
<Subject>XML Introduction</Subject>
<body>Comments:<p align = "right" >Thanks for reading<Br/>
this article</p>
<br/>
<p>Hope you enjoyed this article</p>
</body>
</Mail>
XML 文档可以含有注释信息,注释的语法与HTML相似。除了"--"字符串外,任何文本信息都可以放置在标记<-- 和 -->之间。处理指令PI(Processing instruction)可以嵌入到文档中, PI的数据成分可以被处理进程所识别。
创作者也许希望包含一些不被解析器解析的代码。这些代码可以放置到忽略代码段中。可忽略的代码段具备如下的语法:
<[CDATA[被忽略的文字信息]]>
简言之,忽略代码段要以<[CDATA[ and end with ]]> 开始。
XML相关软件
与XML相关的软件从广义上可以分为三类: XML浏览器、XML解析器或应用程序、XML 编辑器。
XML浏览器
当前,只有IE5.X版本可以很好地支持XML。要掌握浏览器支持XML的最新资料,请访问如下网站: ttp://www.XML.com/pub/Guide/XML_Browsers
象Xlink和XpointFeatures这些新功能已经融入了新版的浏览器中。
XML解析器或应用程序
解析器就是检查XML文档是否具有良好格式的程序。如果文档是良好格式的,解析器就必须读出文档的DTD文件,并检查文档内容是否符合DTD中定义的规则。
1、DXP - 用java编写的解析器:许多解析器都是用Java编写的。DXP可以检查XML文档是否具有良好格式及它的有效性。DXP的安装和操作文档可以从ttp://www.datachannel.com/ 下载得到。
2、MSxml - 微软公司使用JAVA编写的解析器:它可以从这里下载并安装:http://www.microsoft.com/workshop/XML/parser/xmldl.asp
3、Perl Module - 具有Perl模块的XML解析器:这是一个以Perl脚本形式处理XML文档的解析器,需要Perl 5.004 或者更高版本的支持。下载地点是ttp://www.perl.com/,这里还有一些例程脚本描述了如何在Perl中执行XML。
如果想了解XML解析器的更多信息及最近进展情况,请访问 ttp://www.XML.com/pub/Guide/XML_Parsers
XML编辑器
XML 编辑器提供给用户创建自定义标记的一个环境。其中最流行的一个是XML<PRO> ,它可以从这里下载得到 ttp://www.vervet.com/。XML<PRO>具备如下特征:
l 文档验证:XML<PRO> 可用于检验文档的有效性
l 实体模板:提供了一个用于插入定义实体的悬浮模板
l 可以将DTD 与文档进行关联
如果想了解XML编辑器的更多信息及最近进展情况,请访问:ttp://www.XML.com/pub/Guide/XML_Editors
结 语
XML现在仍然处于发展阶段,但它已经远远超越了最初W3C制定的草案规范。它的发展非常迅速,作用更为强大,借助Internet提供给我们的学习新知识的快捷手段,我们必须跟上它的步伐。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者