【HTML/XML 6】XML文档的基本组成
导读:大致上,一个XML文档可以由三个部分组成,即声明区、定义区和文档主体区。在XML文档中,各个组成部分都包含特定的内容,有着不同的作用。本篇博客,通过分析上篇博客中的XML实例,来了解XML文档 的各个基本组成部分。
一、代码再现
<span style="font-family:KaiTi_GB2312;font-size:18px;"><?xml version="1.0" encoding="UTF-8" ?>
<?xml:stylesheet type="text/xsl" href="BOOK.XSL"?>
<booklibrary>
<book>
<title> 数字图像处理学 </title>
<author> 陈秋琦 </author>
<publisher> 电子工业出版社 </publisher>
<price moneytype="RMB"> 49.00 </price>
</book> <book>
<title> C++Builder开发技术 </title>
<author> 李东 </author>
<author> 王宏 </author>
<publisher> 水利水电出版社 </publisher>
<price moneytype="RMB">40.00</price>
</book> <book>
<title> VC++编程技术 </title>
<author> 高强 </author>
<publisher> 人民邮电出版社 </publisher>
<price moneytype="RMB"> 35.00 </price>
</book> </booklibrary></span>
二、文档分析
2.1,声明区
<span style="font-family:KaiTi_GB2312;font-size:18px;"><?xml version="1.0" encoding="UTF-8" ?>
<?xml:stylesheet type="text/xsl" href="BOOK.XSL"?></span>
第一行:表示当前的XML文档应当符合XML1.0规范,编码方式是UTF-8;第二行:处理指令,该指令通知浏览器去寻找BOOK.XSL文件,并用它来表现本篇XML文档。
2.2,定义区
<span style="font-family:KaiTi_GB2312;font-size:18px;"><!DOCTYPE booklibrary[
<!ELEMENT booklibrary (book*)>
<!ELEMENT book (title,author,publisher,price)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT publisher (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ENTITY ENT1 "中国水利水电出版社">
]></span>
首先指明根元素booklibrary可以包含多个子元素book,然后规定每个子元素book又必须按照指定的顺序:title,author,publisher,price编写。然后是规定了四个子元素中的内容是#PCDATA(解析的字符数据)。如果在XML文档中,没有按照以上的要求编写,那么这个XML文档就是无效的。
备注:没有有效性验证的XML文档也是允许的。
2.3,文档主体区
文档主体区包含了一个XML文档所描述对象的全部具体信息。如上篇博客中代码所示。
三、XML文档的物理结构
<span style="font-family:KaiTi_GB2312;font-size:18px;"><?xml version="1.0" encoding="UTF-8" ?>
<?xml:stylesheet type="text/xsl" href="BOOK.XSL"?>
<!DOCTYPE booklibrary[
<!ELEMENT booklibrary (book*)>
<!ELEMENT book (title,author,publisher,price)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT publisher (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<span style="color:#ff0000;"><!ENTITY ENT1 "中国水利水电出版社"></span>
]>
<booklibrary>
<book>
<title> 数字图像处理学 </title>
<author> 陈秋琦 </author>
<publisher> 电子工业出版社 </publisher>
<price moneytype="RMB"> 49.00 </price>
</book> <book>
<title> C++Builder开发技术 </title>
<author> 李东 </author>
<author> 王宏 </author>
<publisher><span style="color:#ff0000;"> &ENT1;</span> </publisher>
<price moneytype="RMB">40.00</price>
</book> <book>
<title> VC++编程技术 </title>
<author> 高强 </author>
<publisher> 人民邮电出版社 </publisher>
<price moneytype="RMB"> 35.00 </price>
</book>
<book>
<title> ASP.NET课程设计案例精编 </title>
<author> 郝思嘉 </author>
<publisher><span style="color:#ff0000;"> &ENT1;</span> </publisher>
<price moneytype="RMB"> 30.00 </price>
</book>
</booklibrary>
</span>
XML的物理结构是从如何使用XML文档中各元素的角度来人事和理解一个XML文档的。XML文档由一个个存储单元组成,通常把这些单元成为实体(ENTITY),每个XML文档的物理结构都包含一个根实体,也称为文档实体。这个实体是由XML本身给出的,不用显示定义就可以使用。当需要使用除根实体以外的其他实体时,则需要在文档类型DOCTYPE中进行显示定义。XML文档中的所有实体,构成了XML文档的物理结构。
在以上代码中,请注意红色的部分,实体充当着类似别人的角色。当需要输入实体所代表的一段文本时,只需要引用对应的实体名称即可。XML解析器,会自动将这个名称替换为相应的文本,这个过程就是所谓的文本替换。PS:有没有想到C++里面宏的概念。
注意:本文档的显示效果,如上篇博客中所示。
四、总结
XML文档的基本组成介绍完了,细细分析,其实也挺简单的。但是就是写的少了,里面的一些语法定义不熟悉,老是多个空格,或者缺个符号的。不过相信,多写写就会好了。接下来会介绍,实现XML文档表现形式的另一种方式:CSS样式层叠表。
【HTML/XML 6】XML文档的基本组成的更多相关文章
- XML之Well-Formed文档规则
由于课程原因,近日粗略学习XML,载以博客是为担心忘记,以供日后复习之用. XML标准中明确规定了XML文件应当遵守的规则,大致上分成基本规则和DTD(Document Type Definition ...
- [Swift通天遁地]七、数据与安全-(2)对XML和HTML文档的快速解析
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- 怎样获取从服务器返回的xml或html文档对象
使用 xhr.responseXML; 通过这个属性正常获取XML或HTML文档对象有两个前置条件: 1. Content-Type头信息的值等于: text/xml 或 application/x ...
- 通过xml生成word文档
Xml生成word总结 使用xml生成word的基本步骤在<使用xslt转化xml数据形成word文档导出.doc>中说明比较清楚了.但是其中的细节并未说到,因此自己折腾了两天总算成功了. ...
- 有效的XML: DTD(文档类型定义)介绍(转)
文档类型定义和命名空间 有效(Valid)的XML文档: 首先,XML文档是个格式正规的(Well-formed)XML文档:(见格式正规的XML:语法 属性 实体 处理指令 样式单 CDATA节). ...
- Struts2的struts.xml的标准配置文档
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-/ ...
- C# 写入XML文档三种方法详细介绍
三个类将同样的xml内容写入文档,介绍了如何使用XmlDocument类对XML进行操作,以及如何使用LINQ to XML对XML进行操作. 它们分别使用了XmlDocument类和XDocum ...
- OpenCV训练分类器制作xml文档
OpenCV训练分类器制作xml文档 (2011-08-25 15:50:06) 转载▼ 标签: 杂谈 分类: 学习 我的问题:有了opencv自带的那些xml人脸检测文档,我们就可以用cvLoad( ...
- 关于XML文档的讲解
1 XML的概述 1.1 什么是XML XML全称为Extensible Markup Language,意思是可扩展的标记语言.XML语法上和HTML比较相似,但HTML中的元素是固定 ...
- DOM4J解析XML文档
Tip:DOM4J解析XML文档 Dom4j是一个简单.灵活的开放源代码的库.Dom4j是由早期开发JDOM的人分离出来而后独立开发的.与JDOM不同的是,dom4j使用接口和抽象基类,虽然Dom4j ...
随机推荐
- 用户名密码登录小程序及input与raw_input区别。
一.此次程序需要实现: 1.设定固定的用户名密码 2.用户名密码输入正确打印登录正确信息 3.仅仅运行三次登录 二.本次使用的python版本为: Windows下版本号: C:\Users\dais ...
- QWidget标题栏双击事件
widget.h virtual bool event(QEvent *event); widget.cpp bool Widget::event(QEvent *event) { if (event ...
- Selenium私房菜系列--总章
前言 在这段期间,我一直在找关于服务器的端测试方案,自动化工具等等,无意间我发现了Selenium这个工具.在试用一段时间后,觉得Selenium确实是一个很不错的Web测试工具.在和强大的QTP比较 ...
- 《深入理解Java虚拟机》读书笔记
堆分配参数: -XX:+PrintGC 使用该参数,虚拟机启动后,只要遇到GC就会打印日志: -XX:+UseSerialGC 配置串行回收器: -XX:+PrintGCDeltails 可以查看详细 ...
- 51nod 1267 4个数和为0
基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 给出N个整数,你来判断一下是否能够选出4个数,他们的和为0,可以则输出"Yes",否则输出&qu ...
- ubuntu 安装 pcap
最近在做负载均衡配置,希望将多个dhcp服务配置成一个虚拟dhcp地址,实现dhcp服务高可用.然而配置完成后却发现一个问题,该如何测试呢. 因此就要用上python了,然后ubuntu下面用pip ...
- Android(java)学习笔记178:多媒体之计算机图形表示方式
1. 多媒体 很多媒体:文字(TextView,简单不讲),图片,声音,视频等等. 2. 图片 计算机如何表示图片的? (1)bmp 高质量保存 256色位图:图片中的每个像素点可以有256 ...
- 事件捕获 & 事件冒泡
<body> <div id="div1"> <div id="div2"> <div id="div3&q ...
- Visual Studio中Radio Button组绑定变量方法(DDX_Radio方法)
需求描述:Visual Studio 创建的界面程序中又许多 Radio Button,希望这些所有的Radio Button统一绑定到一个变量上,这个变量一旦改变,Radio Button的选中状态 ...
- L_01 网络字节顺序
(1)计算机在存储多字节数据时存在大端字节顺序和小端字节顺序两种方式. 大端:高位字节排放在内存的低地址端(即该值的起始地址),低位字节排放在内存的高地址端. 小端:低位字节排放在内存的低地址端(即该 ...