导读:大致上,一个XML文档可以由三个部分组成,即声明区、定义区和文档主体区。在XML文档中,各个组成部分都包含特定的内容,有着不同的作用。本篇博客,通过分析上篇博客中的XML实例,来了解XML文档 的各个基本组成部分。

一、代码再现

  1. <span style="font-family:KaiTi_GB2312;font-size:18px;"><?xml version="1.0" encoding="UTF-8" ?>
  2. <?xml:stylesheet type="text/xsl" href="BOOK.XSL"?>
  3. <booklibrary>
  4. <book>
  5. <title> 数字图像处理学 </title>
  6. <author> 陈秋琦 </author>
  7. <publisher> 电子工业出版社 </publisher>
  8. <price moneytype="RMB"> 49.00 </price>
  9. </book>
  10.  
  11. <book>
  12. <title> C++Builder开发技术 </title>
  13. <author> 李东 </author>
  14. <author> 王宏 </author>
  15. <publisher> 水利水电出版社 </publisher>
  16. <price moneytype="RMB">40.00</price>
  17. </book>
  18.  
  19. <book>
  20. <title> VC++编程技术 </title>
  21. <author> 高强 </author>
  22. <publisher> 人民邮电出版社 </publisher>
  23. <price moneytype="RMB"> 35.00 </price>
  24. </book>
  25.  
  26. </booklibrary></span>

二、文档分析

2.1,声明区

  1. <span style="font-family:KaiTi_GB2312;font-size:18px;"><?xml version="1.0" encoding="UTF-8" ?>
  2. <?xml:stylesheet type="text/xsl" href="BOOK.XSL"?></span>

第一行:表示当前的XML文档应当符合XML1.0规范,编码方式是UTF-8;第二行:处理指令,该指令通知浏览器去寻找BOOK.XSL文件,并用它来表现本篇XML文档。

2.2,定义区

  1. <span style="font-family:KaiTi_GB2312;font-size:18px;"><!DOCTYPE booklibrary[
  2. <!ELEMENT booklibrary (book*)>
  3. <!ELEMENT book (title,author,publisher,price)>
  4. <!ELEMENT title (#PCDATA)>
  5. <!ELEMENT author (#PCDATA)>
  6. <!ELEMENT publisher (#PCDATA)>
  7. <!ELEMENT price (#PCDATA)>
  8. <!ENTITY ENT1 "中国水利水电出版社">
  9. ]></span>

首先指明根元素booklibrary可以包含多个子元素book,然后规定每个子元素book又必须按照指定的顺序:title,author,publisher,price编写。然后是规定了四个子元素中的内容是#PCDATA(解析的字符数据)。如果在XML文档中,没有按照以上的要求编写,那么这个XML文档就是无效的。

备注:没有有效性验证的XML文档也是允许的。

2.3,文档主体区

文档主体区包含了一个XML文档所描述对象的全部具体信息。如上篇博客中代码所示。

三、XML文档的物理结构

  1. <span style="font-family:KaiTi_GB2312;font-size:18px;"><?xml version="1.0" encoding="UTF-8" ?>
  2. <?xml:stylesheet type="text/xsl" href="BOOK.XSL"?>
  3. <!DOCTYPE booklibrary[
  4. <!ELEMENT booklibrary (book*)>
  5. <!ELEMENT book (title,author,publisher,price)>
  6. <!ELEMENT title (#PCDATA)>
  7. <!ELEMENT author (#PCDATA)>
  8. <!ELEMENT publisher (#PCDATA)>
  9. <!ELEMENT price (#PCDATA)>
  10. <span style="color:#ff0000;"><!ENTITY ENT1 "中国水利水电出版社"></span>
  11. ]>
  12. <booklibrary>
  13. <book>
  14. <title> 数字图像处理学 </title>
  15. <author> 陈秋琦 </author>
  16. <publisher> 电子工业出版社 </publisher>
  17. <price moneytype="RMB"> 49.00 </price>
  18. </book>
  19.  
  20. <book>
  21. <title> C++Builder开发技术 </title>
  22. <author> 李东 </author>
  23. <author> 王宏 </author>
  24. <publisher><span style="color:#ff0000;"> &ENT1;</span> </publisher>
  25. <price moneytype="RMB">40.00</price>
  26. </book>
  27.  
  28. <book>
  29. <title> VC++编程技术 </title>
  30. <author> 高强 </author>
  31. <publisher> 人民邮电出版社 </publisher>
  32. <price moneytype="RMB"> 35.00 </price>
  33. </book>
  34. <book>
  35. <title> ASP.NET课程设计案例精编 </title>
  36. <author> 郝思嘉 </author>
  37. <publisher><span style="color:#ff0000;"> &ENT1;</span> </publisher>
  38. <price moneytype="RMB"> 30.00 </price>
  39. </book>
  40. </booklibrary>
  41. </span>

XML的物理结构是从如何使用XML文档中各元素的角度来人事和理解一个XML文档的。XML文档由一个个存储单元组成,通常把这些单元成为实体(ENTITY),每个XML文档的物理结构都包含一个根实体,也称为文档实体。这个实体是由XML本身给出的,不用显示定义就可以使用。当需要使用除根实体以外的其他实体时,则需要在文档类型DOCTYPE中进行显示定义。XML文档中的所有实体,构成了XML文档的物理结构。

在以上代码中,请注意红色的部分,实体充当着类似别人的角色。当需要输入实体所代表的一段文本时,只需要引用对应的实体名称即可。XML解析器,会自动将这个名称替换为相应的文本,这个过程就是所谓的文本替换。PS:有没有想到C++里面宏的概念。

注意:本文档的显示效果,如上篇博客中所示。

四、总结

XML文档的基本组成介绍完了,细细分析,其实也挺简单的。但是就是写的少了,里面的一些语法定义不熟悉,老是多个空格,或者缺个符号的。不过相信,多写写就会好了。接下来会介绍,实现XML文档表现形式的另一种方式:CSS样式层叠表。

【HTML/XML 6】XML文档的基本组成的更多相关文章

  1. XML之Well-Formed文档规则

    由于课程原因,近日粗略学习XML,载以博客是为担心忘记,以供日后复习之用. XML标准中明确规定了XML文件应当遵守的规则,大致上分成基本规则和DTD(Document Type Definition ...

  2. [Swift通天遁地]七、数据与安全-(2)对XML和HTML文档的快速解析

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  3. 怎样获取从服务器返回的xml或html文档对象

    使用 xhr.responseXML;  通过这个属性正常获取XML或HTML文档对象有两个前置条件: 1. Content-Type头信息的值等于: text/xml 或 application/x ...

  4. 通过xml生成word文档

    Xml生成word总结 使用xml生成word的基本步骤在<使用xslt转化xml数据形成word文档导出.doc>中说明比较清楚了.但是其中的细节并未说到,因此自己折腾了两天总算成功了. ...

  5. 有效的XML: DTD(文档类型定义)介绍(转)

    文档类型定义和命名空间 有效(Valid)的XML文档: 首先,XML文档是个格式正规的(Well-formed)XML文档:(见格式正规的XML:语法 属性 实体 处理指令 样式单 CDATA节). ...

  6. Struts2的struts.xml的标准配置文档

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-/ ...

  7. C# 写入XML文档三种方法详细介绍

      三个类将同样的xml内容写入文档,介绍了如何使用XmlDocument类对XML进行操作,以及如何使用LINQ to XML对XML进行操作. 它们分别使用了XmlDocument类和XDocum ...

  8. OpenCV训练分类器制作xml文档

    OpenCV训练分类器制作xml文档 (2011-08-25 15:50:06) 转载▼ 标签: 杂谈 分类: 学习 我的问题:有了opencv自带的那些xml人脸检测文档,我们就可以用cvLoad( ...

  9. 关于XML文档的讲解

    1        XML的概述 1.1 什么是XML XML全称为Extensible Markup Language,意思是可扩展的标记语言.XML语法上和HTML比较相似,但HTML中的元素是固定 ...

  10. DOM4J解析XML文档

    Tip:DOM4J解析XML文档 Dom4j是一个简单.灵活的开放源代码的库.Dom4j是由早期开发JDOM的人分离出来而后独立开发的.与JDOM不同的是,dom4j使用接口和抽象基类,虽然Dom4j ...

随机推荐

  1. CentOS 7.2最小化安装没有ifconfig命令,使用yum provides ifconfig找不到相关的包

    [root@sishen yum.repos.d]# yum provides ifconfig Loaded plugins: fastestmirror Loading mirror speeds ...

  2. JVM 内存机制理解【转自http://www.cnblogs.com/dingyingsi/p/3760447.html】

    我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等 ...

  3. 数字(number)

    数字(number) Time Limit:2000ms   Memory Limit:128MB 题目描述 LYK定义了一个新的计算. 具体地,一开始它有两个数字a和b. 每一步,它可以将b增加1, ...

  4. H+后台主题UI框架---整理(二)

    本篇文章是针对H+后台主题UI框架的整理的第二部分.主要只有一个point.如下: 其代码如下: <div class="ibox float-e-margins"> ...

  5. Github-Client(ANDROID)开源之旅(三) ------ 巧用ViewPagerIndicator

    接上篇博文:Github-Client(ANDROID)开源之旅(二) ------ 浅析ActionBarSherkLock 文中结合了网易新闻客户端讲解了开源库ActionBarSherklock ...

  6. Oracle创建用户及权限设置

    oracle用户创建及权限设置 权限: create session create table unlimited tablespace connect resource dba 例: #sqlplu ...

  7. vue-devtools在google浏览器下安装扩展

    下载vue-devtools,地址: https://github.com/vuejs/vue-devtools 解压到对应目录,eg: D:\ProgramFiles\vue-devtools-de ...

  8. 写给技术lead的招聘指南

    工作这么久,面试过的工程师不下两三百人.大部份招到的人都比靠谱当然也有失败的例子.把亲身经历总结如下: 1. 什么人一定不能招: 理解能力差: 对你提出的问题,答不对题,重复提问.面试官可以在面试当中 ...

  9. vs2010 在函数级别设置优化

    平时开发的时候,为了方便调试,visual studio 的Configuration 设置成Release. 同时为了事后调试,Optimization总是设置成Disabled.这样做是方便查看变 ...

  10. (转)编码剖析Spring管理Bean的原理

    http://blog.csdn.net/yerenyuan_pku/article/details/52832434 在Spring的第一个案例中,我们已经知道了怎么将bean交给Spring容器进 ...