XML导图
history
要想知道XML是什么首先得知道为什么会有这门技术的存在,是为了解决什么问题而产生的?
随着网络的发展,越来越多的人利用网络来传送信息,传送的信息格式各样,信息交换也越来越频繁,所以对数据的传输效率和质量提出了新的要求。XML在这里就是为了解决数据信息交换的时候数据格式不同的问题。它是在SGML的基础上发展起来的,是SGML的精简子集,也是一种元标记语言,具有自解释性,可以用于编写其他新的标记语言
what
定义:可扩展标记语言(Extensible Markup Language),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。
内部结构
How
既然是可扩展标记语言,就是说明自己能定规则,规定有哪些元素属性以及元素属性的个数如何显示等。
DTD
- 类型定义
内部:用于和特定的XML文档进行关联,必须位于文档中。基本语法:<!DOCTYPE Charles [<!ELEMENT elementName (EleList)]>
外部:如果XML要想具有有效性就必须与DTD文件相联系,如果都用内部的话很麻烦而且复用性不好。<!DOCTYPE ROOT "URL(网址或本地的绝对路径)">
混合:给大家点自由发挥的空间,哈哈。 - 声明
元素:
<!ELEMENT name type><!--声明单个元素-->
<!ELEMENT parent (child1,child2)><!--声明多个元素-->
<!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的优势在于对数据类型的进一步规范。此外还有定义的时候不再需要一种专门的形式化语言来定义,体现了一致性。
总结
学习知识最主要的是把握重点,但是重点在哪?重点就在这个知识是用来解决什么问题的,在这个问题上。然后再去围绕如何解决这个问题去学习知识,准确的说是获取知识,速度肯定有非一般的感觉。