XML 详细解析1

这里写自定义目录标题

XML 指可扩展标记语言(EXtensible Markup Language)
XML 没有预定义标签,需要自行定义标签

XML 的特点 XML 数据以纯文本格式存储 实现不同应用程序之间的数据通信 实现不同平台间的数据通信 实现不同平台间的数据共享 使用 XML 将不同的程序、不同的平台之间联系起来

XML 的作用 数据存储和数据传输

XML 和 HTML 之间的差异 XML 主要作用是数据存储和传输(传输) HTML 主要作用是用来显示数据(显示)

XML 的基本语法

  1. 有且只有一个根元素
  2. XML 文档声明必须放在文档的第一行
  3. 所有标签必须成对出现
  4. XML 的标签严格区分大小写
  5. XML 必须正确嵌套
  6. XML 中的属性值必须加引号
  7. XML 中,一些特殊字符需要使用“实体”
  8. XML 中可以应用适当的注释 2XML 元素 XML 元素指的是开始标签到结束标签的部分 一个元素中可以包含
  9. 其他元素
  10. 文本
  11. 属性
  12. 以上的混合

XML 命名规则

  1. 名称可以包含字母、数字及其他字符
  2. 名称不能以数字或者标点符号开始
  3. 名称不能以字母 xml 开始
  4. 名称不能包含空格
    Schema 技术
    DTD 文档类型定义 作用:验证是否是“有效”的 XML

PCDATA(Parsed Character DATA)的意思是被解析的字符 数据
使用 DTD 的局限性

  1. DTD 不遵守 XML 语法
  2. DTD 数据类型有限
  3. DTD 不可扩展
  4. DTD 不支持命名空间
    在这里插入图片描述

Schema 技术 Schema 是 DTD 的代替者,名称为 XML Schema,
用于描述 XML 文档结构,比 DTD 更加强大,
最主要的特征之一就是 XML Schema 支持数据类型

  1. Schema 是用 XML 验证 XML 遵循 XML 的语法
  2. Schema 可以用能处理 XML 文档的工具处理
  3. Schema 大大扩充了数据类型,而且还可以自定义数据类 型
  4. Schema 支持元素的继承
  5. 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 文档

  1. 创建 SchemaFactory 工厂
  2. 建立验证文件对象
  3. 利用 SchemaFactory 工厂对象,接收验证的文件对象,生 成 Schema 对象
  4. 产生对此 schema 的验证器
  5. 要验证的数据(准备数据源)
  6. 开始验证
    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(“失败”);
    }
    }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值