XML入门精解之结构与语法
现在让我们借助“记事本”来如何创建XML文件。让我们首先以一个典型的XML文件为例。
例1:
```xml
<参考资料>
<书籍>
<名称>XML入门精解名称>
<作者>张三作者>
<价格 货币单位="人民币">20.00价格>
书籍>
<书籍>
<名称>XML语法名称>
<作者>李四作者>
<价格 货币单位="人民币">18.00价格>
书籍>
参考资料>
```
这是一个结构清晰的XML文件,其包含文件序言(Prolog)和文件主体两大部分。文件的第一行是文件序言,它告诉XML器如何此文件。其中,`version`声明表示XML文件的版本,而`encoding`声明则指明了文件中使用的字符编码类型。在这个例子中,我们使用的是GB2312字符编码,因此不能省略`encoding`声明。除此之外,文件序言还可能包含其他声明语句。
关于Well-Formed的XML文件,它是确保XML能被正确和展示在浏览器中的关键。那么,何为Well-Formed的XML文件呢?在创建XML文件时,必须遵循一些准则。
XML文件的第一行必须是声明该文件为XML文件,并指明其使用的XML规范版本。文件开头不得有其他元素或注释。
XML文件中只能有一个根元素。例如,〈参考资料〉... 〈/参考资料〉即为此XML文件的根元素。
第三,XML文件中的标记必须正确关闭。也就是说,每个控制标记都必须有对应的结束标记。如〈名称〉必须有对应的〈/名称〉。与HTML不同,XML中的某些标记(如空元素)有其特定写法,若含有属性,则写为〈空元素名 属性名="属性值"/〉。
第四,XML中的标记不得交叉。在HTML中,可能存在如〈B〉〈H〉XXXX〈/B〉〈/H〉的交错写法,但在XML中,标记必须按照规则性次序出现。
第五,属性值必须用引号括起来。例如,“1.0”、“gb2312”、“人民币”等都用引号括起来了,这是必须的。
第六,在XML中,控制标记、指令和属性名称等英文是区分大小写的。这与HTML不同,HTML中〈B〉和〈b〉的标记意义相同,但在XML中,《name》、《NAME》或《Name》是不同的。
第七,在HTML中,若想原封不动地显示输入内容,可以使用〈pre〉〈/pre〉或〈xmp〉〈/xmp〉标记。而在XML中,要实现此功能,则需使用CDATA标记。CDATA标记中的信息不会被器,而是直接传给应用程序。例如:“〈![CDATA[飞翔的xml〉〉〉〉,:-) oooo〈〈〈〈〈”。
第八,XML处理空白字符的方式与HTML不同。HTML会忽略多余的空白,而XML则会忠实保留所有标记以外的空白。在编写XML时,需要注意空格的处理,必要时可使用xml:space属性来明确空白字符的保留与否。例如:〈诗歌 xml:space="preserver"〉中的空格就被保留了下来。另外需注意表1中的特殊字符在XML文件中需要用相应符号替代。总体来说符合上述所有规定的XML文件即为Well-Formed的XML文件。在编程世界中,XML文件已经成为了一种重要的数据交换语言。相比于HTML的超文本结构,XML文件的语法更为严谨和标准化。对于软件工程师来说,编写一个XML器相较于HTML器更为规范,无需适应各种网页写法的差异,这无疑为我们这些初学者带来了极大的便利。它遵循一种固定规则,清晰明了,无需纠结于各种HTML写法的困惑。
在XML文件中,我们看到的更多的是自定义标记。想象一下,当两个同行业的公司A和B使用XML文件进行数据交换时,他们可能会使用不同的标记来表示相同的数据内容。比如,公司A用“价格”标签来表示产品价格信息,而公司B可能使用“售价”标签。如果一个XML应用程序无法识别和理解这些不同的标记,那么它可能无法准确地读取并处理这两个公司的数据,甚至可能导致错误。对于想要通过XML文件交换信息的实体来说,他们必须达成一种共识,即哪些标记可以用于编写XML文件,母元素中可以包含哪些子元素,各个元素的顺序如何,如何定义元素的属性等。这种共识被称为DTD(文档类型定义),它就像是编写XML文件的模板。对于行业内的XML数据交换,有一个统一的DTD将大大提高效率和便利性。
想象一下,如果网上的各大电子商场的XML网页都遵循同一个DTD,那么我们就可以轻松依据这个DTD编写一个应用程序,自动抓取我们感兴趣的信息。事实上,已经存在许多定义好的DTD,如MathML和SMIL等。这些DTD为行业内的数据交换提供了极大的便利。
如果一个XML文件结构良好并且严格按照某个DTD建立,那么它就被称为验证XML文件。相应的器则称为验证器。这样的文件能够确保其数据的质量和准确性,为数据交换和处理提供了更加可靠的基础。XML文件的严谨性和标准化为我们提供了一个强大而灵活的工具,无论是在数据处理、信息交换还是其他领域,它都发挥着重要的作用。
编程语言
- XML入门精解之结构与语法
- swift中的正则表达式小结
- 前端设计师们最常用的JS代码汇总
- 基于Angular4+ server render(服务端渲染)开发教程
- Ajax学习笔记整理
- js实现宇宙星空背景效果的方法
- 原生JS实现图片无缝滚动方法(附带封装的运动框
- js实现一个简单的MVVM框架示例
- PHP使用finfo_file()函数检测上传图片类型的实现方
- PHP中单双号与变量
- JSP验证码简单生成方法
- JS特效实现图片自动播放并可控的效果
- thinkphp实现面包屑导航(当前位置)例子分享
- js中getBoundingClientRect的作用及兼容方案详解
- mysql 触发器创建与使用方法示例
- jquery实现向下滑出的二级导航下滑菜单效果