XML技术入门讲座(2)
点击次数:21 次 发布日期:2008-11-26 19:36:04 作者:源代码网
|
源代码网推荐
XML的文档格式 首先介绍XML文档内容的基本单元——元素,它的语法格式如下: 〈标签〉文本内容〈/标签〉 元素是由起始标签、元素内容和结束标签组成。用户把要描述的数据对象放在起始标签和结束标签之间。例如: <姓名>王平</姓名> 无论文本内容有多长或者多么复杂,XML元素中还可以再嵌套别的元素,这样使相关信息构成等级结构。下面的例子中,在<employees>的元素中包括了所有职员的信息,每位职员都由<employee>元素来描述,而<employee>元素中又嵌套了<name>和<salary>元素。 例1: <employees> <employee> <name>Lars Peterson</name> <salary>25000</salary> </employee> <employee> <name>Charlotte M. Cooper</name> <salary>34500</salary> </employee> </employees> 除了元素,XML文档中能出现的有效对象是:处理指令、注释、根元素、子元素和属性。 ● 处理指令 处理指令给XML解析器提供信息,使其能够正确解释文档内容,它的起始标识是“<?”,结束标识是“?>”。常见的XML声明就是一个处理指令: <?xml version=“1.0”?> 处理指令还可以有其他的用途,比如定义文档的编码方式是GB码还是Unicode编码方式,或是把一个样式单文件应用到XML文档上用以显示。 ● 注释 注释是XML文件中用作解释的字符数据,XML处理器不对它们进行任何处理。注释是用“<!--”和“ -->”引起来的,可以出现在XML元素间的任何地方,但是不可以嵌套: <!--这是一个注释--> ● 根元素和子元素 如果一个元素从文件头的序言部分之后开始一直到文件尾,包含了文件中所有的数据信息,我们称之为根元素。 XML元素是可以嵌套的,那么被嵌套在内的元素称为子元素。在前面的例子中,<employee>就是<employees>的子元素。 ● 属性 属性给元素提供进一步的说明信息,它必须出现在起始标签中。属性以名称/取值对出现,属性名不能重复,名称与取值之间用等号“=”分隔,并用引号把取值引起来。例如: <salary currency=“US$”> 25000 </salary> 上例中的属性说明了薪水的货币单位是美元。 XML的语法 XML文档的基本结构由序言部分和一个根元素组成。序言包括了XML声明和DTD(或者是XMLSchema),DTD(Document Type Define,文档定义类型)和XMLSchema都是用来描述XML文档结构的,也就是描述元素和属性是如何联系在一起的。 例如,在例1的文档前面加上如下的序言部分,就构成了一个完整的XML文档: <?xml version=“1.0”?> <!DOCTYPE employees SYSTEM“employees.dtd”> 一个XML文档中有且仅有一个根元素,其他所有的元素都是它的子元素,在例1中,<employees>就是根元素。 一个XML文档首先应当是“格式良好的”(Well-Formed),该规定的正式定义位于: http://www.w3.org/TR/REC-xml “格式良好的”XML文档除了要满足根元素唯一的特性之外,还包括: ● 起始标签和结束标签应当匹配:结束标签是必不可少的; ●大小写应一致:XML对字母的大小写是敏感的,<employee>和<Employee>是完全不同的两个标签,所以结束标签在匹配时一定要注意大小写一致; ● 元素应当正确嵌套:子元素应当完全包括在父辈元素中,下面的例子就是嵌套错误: <A> <B> </A> </B> 正确的嵌套方式如下: <A> <B> </B> </A> ● 属性必须包括在引号中; ● 元素中的属性是不允许重复的。 XML文档的“有效性”是指一个XML文档应当遵守DTD文件或是Schema的规定,“有效的”XML文档肯定是“格式良好的”,有关内容我们会在以后详细说明。 XML的名称空间 XML文档中很可能会定义许多名字相同而意义不同的元素或属性,尤其在把不同的XML文档合而为一时,更容易产生冲突。名称空间就是为了解决这个问题而提出的。它用URI(UniformResource Indicator,统一资源指示器)加以区别,是在XML文件的元素和属性中出现的所有名称的集合。如下例: <pr:payment xmlns:pr=“http://www. microsoft.com/payroll”> <pr:employee>Lars Peterson</pr:employee> <pr:description>Reimburse expenses</pr:description> <pr:total>199.76</pr:total> </pr:payment> 有了名称空间,用户就可以保证在文件中使用的名称是唯一的。对元素的属性xmlns进行定义就表示对该元素指定了一个名称空间。namespace_name必须是一个有效的URI。 如果省略local_prefix(本地前缀),这时就构成了缺省名称空间: <payment xmlns=“http://www.microsoft.com/acct”> <customer>1234</customer> <amount>500.00</amount> <date_received>12-03-2000</date_received> </payment> 如果对一个元素定义了缺省名称空间,那么该元素及其子元素,包括它们的属性都会自动地成为该名称空间的一部分,不用再在每一个元素和属性前面一一标明了。 在本文开始部分,我们对XML这个新兴的技术做了一个概述,对它的优缺点进行了分析,并对其美好的应用前景进行了展望。在本文后半部分则对XML文档的相关语法、格式做了简要的描述,并介绍了几种有用的开发工具。在以后的内容中,我们会全面展开,深入到XML技术内部,去探索一下这个美妙的世界!
源代码网供稿. |