1 XML格式定义 DTD
文档类型定义(DTD)可定义合法的XML文档构建模块,也即是下面的元素声明。
内部的 DOCTYPE 声明 <!DOCTYPE 根元素 [元素声明]>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
外部文档声明 <!DOCTYPE 根元素 SYSTEM "文件名">
一般使用都是基于外部的,所以都会带有SYSTEM关键字。
2 XML格式定义 Schema
现在最常用的Xml格式定义
a. XML 命名空间 - xmlns 属性
- 命名空间是为了防止标签名冲突
xmlns:前缀="URI"
URI 不会被用于解析器查找信息。其目的是赋予命名空间一个惟一的名称。不过,很多公司常常会作为指针来使用命名空间指向实际存在的网页,这个网页包含关于命名空间的信息。
默认的命名空间:xmlns=“namespaceURI” 可以省去在所有的子元素中使用前缀的工作。
xmlns="http://www.w3school.com.cn"
此声明会告知 schema 验证器,在此 XML 文档中使用的所有元素都被声明于 “namespaceURI” 这个命名空间。
b. XML 命名空间 - schemaLocation 属性
当拥有了可用的命名空间 xmlns 就可以使用 schemaLocation 属性了。
此属性有两个值,以空格隔开可以重复(如:A1 A2 B1 B2的方式)。第一个值是需要使用的命名空间(即URI)。第二个值是供命名空间使用的 XML schema 的位置:
xsi:schemaLocation="http://www.w3school.com.cn note.xsd"
c. XML 命名空间 - xsi(xml schema instance)
xsi 是一个特殊的命名空间
xmlns:xsi
是 xml 文档的默认配置。 因为遵守 xml 的 w3规范,xsi 是规范默认用于 XSD((XML Schema Definition) 文件的命名空间。 而 XSD 文件(也常常称为 Schema 文件)是用来定义当前 xml 文档结构。
通过 xsi:schemaLocation
指定的键值对可以说明每一个命名空间的XSD文件去哪里找,XSD文件描述了一个标签应该怎么样去写;
w3规范:http://www.w3.org/2001/XMLSchema-instance
d. 实例
<?xml version="1.0"?>
<note
xmlns="http://www.w3school.com.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3school.com.cn note.xsd">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>