XML 详细解析1
这里写自定义目录标题
XML 指可扩展标记语言(EXtensible Markup Language)
XML 没有预定义标签,需要自行定义标签
XML 的特点 XML 数据以纯文本格式存储 实现不同应用程序之间的数据通信 实现不同平台间的数据通信 实现不同平台间的数据共享 使用 XML 将不同的程序、不同的平台之间联系起来
XML 的作用 数据存储和数据传输
XML 和 HTML 之间的差异 XML 主要作用是数据存储和传输(传输) HTML 主要作用是用来显示数据(显示)
XML 的基本语法
- 有且只有一个根元素
- XML 文档声明必须放在文档的第一行
- 所有标签必须成对出现
- XML 的标签严格区分大小写
- XML 必须正确嵌套
- XML 中的属性值必须加引号
- XML 中,一些特殊字符需要使用“实体”
- XML 中可以应用适当的注释 2XML 元素 XML 元素指的是开始标签到结束标签的部分 一个元素中可以包含
- 其他元素
- 文本
- 属性
- 以上的混合
XML 命名规则
- 名称可以包含字母、数字及其他字符
- 名称不能以数字或者标点符号开始
- 名称不能以字母 xml 开始
- 名称不能包含空格
Schema 技术
DTD 文档类型定义 作用:验证是否是“有效”的 XML
PCDATA(Parsed Character DATA)的意思是被解析的字符 数据
使用 DTD 的局限性
- DTD 不遵守 XML 语法
- DTD 数据类型有限
- DTD 不可扩展
- DTD 不支持命名空间
Schema 技术 Schema 是 DTD 的代替者,名称为 XML Schema,
用于描述 XML 文档结构,比 DTD 更加强大,
最主要的特征之一就是 XML Schema 支持数据类型
- Schema 是用 XML 验证 XML 遵循 XML 的语法
- Schema 可以用能处理 XML 文档的工具处理
- Schema 大大扩充了数据类型,而且还可以自定义数据类 型
- Schema 支持元素的继承
- Schema 支持属性组
所有的 Schema 文档使用 schema 作为其根元素
http://www.w3.org/2001/XMLSchema:用于验证当前 Schema 文档的命名空间(用于验证Schema本身)同时它还规定了来自 命名空间
http://www.w3.org/2001/XMLSchema的元素和数据 类型应该使用前缀 xs: xmlns 相当于 java 中的 import, :xs“小名”,在使用时要写加 “小名”做前缀 (XML 使用 Schema 验证,那 Schema 也是一个 XML,谁来 验证它?DTD)
使用 Schema 验证 XML 文档
- 创建 SchemaFactory 工厂
- 建立验证文件对象
- 利用 SchemaFactory 工厂对象,接收验证的文件对象,生 成 Schema 对象
- 产生对此 schema 的验证器
- 要验证的数据(准备数据源)
- 开始验证
public class Test {
public static void main(String[] args) throws SAXException {
//(1)创建SchemaFactory工厂
SchemaFactory sch=SchemaFactory.newInstance(“XML Schema”);
//(2)建立验证文件对象
File schemaFile=new File(“book.xsd”);
//(3)利用SchemaFactory工厂对象,接收验证的文件对象,生成Schema对象
Schema schema=sch.newSchema(schemaFile);
//(4)产生对此schema的验证器
Validator validator=schema.newValidator();
//(5)要验证的数据(准备数据源)
Source source=new StreamSource(“book.xml”);
//(6)开始验证
try {
validator.validate(source);
System.out.println(“成功”);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(“失败”);
}
}
}