经过这几天的学习,对XML有了一定的了解,加上之前也用到过一点XML的东西,所以说,到现在为止,可以说会简单使用XML进行数据的存取。
这部分XML视频,第一讲主要讲了XML的一些基本知识。
包括:XML基本格式要求、实体引用、属性、处理指示PI以及基本语法规则
实体引用:这里的实体引用主要解决特殊字符的问题。有的字符是我们会用到但同时又是XML本身赋予它特定含义的,这时候我们就要用到实体引用了。
例如:我们知道XML中标记都是以“<>”这样一种形式出现的,那么当我们需要用到这样的字符的时候用<、>代替。这就是引用。
这里的实体引用和我们编程语言中的实体引用还是有一点差别的,感觉像是常量的意思。
处理指示PI:PI(processing instruction)用来指挥解析引擎如何解析XML文档内容。必须以“<?”作为开头,以“?>”作为结尾,XML声明语句就是最常见的一种处理指令。简单来说,处理指示就是告诉程序以什么样的样式或者标准去读取数据,或者说这个XML文档是按照那种样式或标准去存储的!
而接下来的内容主要是讲了DTD和schema。
DTD:Document Type Definition
它是关于标记符的语法规则。是XML文件的验证机制,属于XML文件组成的一部分,但不是必须的。DTD是一种保证XML文档格式正确的有效方法,可通过比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。XML文件提供应用程序一个数据交换的格式,DTD正是让XML文件能成为数据交换标准。
DTD可分为内部DTD和外部DTD。
内部DTD,即DTD的被包含在源XML文档中。有验证机制的环境将根据文档中的DTD规则判断XML是否相符。
例如
<?xmlversion="1.0"?>
<!DOCTYPEnote [
<!ELEMENTnote (to,from,heading,body)>
<!ELEMENTto (#PCDATA)>
<!ELEMENTfrom (#PCDATA)>
<!ELEMENTheading (#PCDATA)>
<!ELEMENTbody (#PCDATA)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don'tforget me this weekend</body>
</note>
外部DTD,即DTD位于XML源文件的外部,通过特定的语法被封装在一个 DOCTYPE 定义中。
例如
这是包含 DTD 的 "note.dtd" 文件:
<!ELEMENTnote (to,from,heading,body)>
<!ELEMENTto (#PCDATA)>
<!ELEMENTfrom (#PCDATA)>
<!ELEMENTheading (#PCDATA)>
<!ELEMENTbody (#PCDATA)>
使用的时候:
<?xmlversion="1.0"?>
<!DOCTYPEnote SYSTEM "note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don'tforget me this weekend!</body>
</note>
外部DTD包括SYSTEM和PUBLIC两个关键字指出DTD文件的位置。
SYSTEM 关键字表示文档使用的是私有的DTD文件,就好像是公司的规章制度,只是公司内部人员遵守。
PUBLIC 关键字用于公共的DTD,"DTD的名称"称为公共标识符,就好像是多家公司联合出台的规章制度,每个公司都要遵守。
通过DTD我们可以验证自身的数据是否合乎自己的意愿;从外部程序接收到的数据是否符合我们的要求;两个机构可一致地使用某个标准的DTD交换数据。
而SCHEMA与DTD功能差不多,但是Schema在当前的WEB开发环境下优越很多。因为它本身就是一个有效的XML文档,因而可以更直观地了解XML的结构。除此之外,Schema支持命名空间,内置多种简单和复杂的数据类型,并支持自定义数据类型。由于存在这么多的优点,所以Schema渐渐成为XML应用的统一规范。