XML入门

来源:互联网 发布:帕拉卡斯人知乎 编辑:程序博客网 时间:2024/06/01 10:42

XML导图

这里写图片描述

history

要想知道XML是什么首先得知道为什么会有这门技术的存在,是为了解决什么问题而产生的?

随着网络的发展,越来越多的人利用网络来传送信息,传送的信息格式各样,信息交换也越来越频繁,所以对数据的传输效率和质量提出了新的要求。XML在这里就是为了解决数据信息交换的时候数据格式不同的问题。它是在SGML的基础上发展起来的,是SGML的精简子集,也是一种元标记语言,具有自解释性,可以用于编写其他新的标记语言

what

定义:可扩展标记语言(Extensible Markup Language),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。

内部结构

  • 文档
    • 处理指令:<?PI-target instruction ?>PI-target指的是要使用哪个程序来处理instruction这个文件。eg:<?word document="Charles.doc"?>这里指的是通过Word来处理Charles.coc这个文件
    • 类型说明:(Document Type Declaration)是XML符合有效性的基本要求,指向文档类型定义(DTD)或其它模式说明。
    • 编码:把各种字符转化为能让计算机处理的技术。常用的有:UTF-8、GB2312.
  • 元素
    • 标记:基本格式<tag-name [attribute="..."[attriList]]>语法要比HTML严格很多,不要偷懒了
    • 字符数据:标签之间的就是字符数据了,但是如果要显示特殊字符的话比如“<>,”&”等字符的话就需要转换了
    • CDATA:如果字符数据太多的话,转换很麻烦,于是乎就有了CDATA;语法:<![CDATA [text]]>
  • 属性:用于描述元素的一些特性,就相当于你有身高体重等属性一样。
  • 实体:其实是一种存储单元,其实引用实体就跟引用某个参数的值一样方便,主要目的是为了xml文档结构清晰。

How

既然是可扩展标记语言,就是说明自己能定规则,规定有哪些元素属性以及元素属性的个数如何显示等。

DTD

  • 类型定义
    内部:用于和特定的XML文档进行关联,必须位于文档中。基本语法:<!DOCTYPE Charles [<!ELEMENT elementName (EleList)]>
    外部:如果XML要想具有有效性就必须与DTD文件相联系,如果都用内部的话很麻烦而且复用性不好。<!DOCTYPE ROOT "URL(网址或本地的绝对路径)">
    混合:给大家点自由发挥的空间,哈哈。
  • 声明
    元素:
<!ELEMENT name type><!--声明单个元素--><!ELEMENT parentchild1child2)><!--声明多个元素--><!ELEMENT child1 (#PCDATA)><!ELEMENT child2 EMPTY>

属性:

<!ATTLIST element-name attribute-name attribute-type default><!--关键字:#REQUIRED:表示属性必须出现;#IMPLIED:表示可有可无;#FIXED:属性值是固定的-->属性数据类型也有很多:CDATA,Enumerated,ENTITY,ID,IDREF,IDREFS,NMTOKEN,NMTOKENS,NOTATION等,有兴趣自己再了解

实体:

<!--声明实体--><!ENTITY name "content"><!--引用-->&name;

Schema
DTD只有对元素的PCDATA类型和于属性的CDATA,与DTD相比较Schema的优势在于对数据类型的进一步规范。此外还有定义的时候不再需要一种专门的形式化语言来定义,体现了一致性。

总结

学习知识最主要的是把握重点,但是重点在哪?重点就在这个知识是用来解决什么问题的,在这个问题上。然后再去围绕如何解决这个问题去学习知识,准确的说是获取知识,速度肯定有非一般的感觉。