JAVAWEB第六天schema约束
来源:互联网 发布:动态加载js文件 编辑:程序博客网 时间:2024/05/22 05:32
一、schema简介
1.schema符合xml的语法,它是一个xml文件
2.一个xml中只能有一个dtd文件,但是可以有多个schema,通过名称空间来区分(类似于JAVA中的包)
3.dtd中有#PCDATA类型,即String,但是schema中可以有多种类型(int double 等等)
4.schema的出现时为了破除dtd的局限性,但是其语法比较复杂,现在还不能代替dtd
二、schema的快速入门
1.创建一个schema文件,名字为.xsd,里面的根节点为<schema></schema>
2.在schema文件里面
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/1" xmlns:tns="http://www.example.org/1" elementFormDefault="qualified"></schema>
—属性:表示当前xml文件是一个schema约束文件
xmlns="http://www.w3.org/2001/XMLSchema"
—使用schema文件,直接通过该地址引入约束文件,保证没有重复的,地址可以自己定义
targetNamespace="http://www.example.org/1"
—质量良好
elementFormDefault="qualified">
三、看有多少的元素
区分简单元素和复杂元素
如果是复杂元素
<element name="person"> <complexType> <sequence> </sequence> </complexType></element>
简单元素,写入到复杂元素里
<element name="person"> <complexType> <sequence> <element name="name"></element> <element name="age"></element> </sequence> </complexType></element>
<sequence></sequence>:表示元素只能按照里面的顺序出现<all></all>:元素只能出现一次<choice></choice>:元素只能出现一个<any><any>:表示可以写任意属性其中的属性:maxOccurs="unbounded":表示元素出现的次数<element name="name" maxOccurs="unbounded"></element>
定义属性:必须写是复杂元素里,写在</complexType>
上面。
<attribute name="id1" type="int" use="required"></attribute> </complexType> 定义的这个id1要写在person中
name:定义属性名称
type:定义属性类型
use:属性是否必须要出现
四、在xml中引入schema文件
<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://www.example.org/1" xsi:schemaLocation="http://www.example.org/1 1.xsd">
—表示xml是一个被约束文件,xsi表示包名,可以随便写
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
—是约束文档中的targetNamespace,引入的文档的地址
xmlns="http://www.example.org/1"
—targetNamespace 空格 结束文档的路径地址
xsi:schemaLocation="http://www.example.org/1 1.xsd">
引入多个schema,可以个schema起别名,如果使用部门的属性,可以用部门的schema别名:属性
<dept:name>aa</dept:name>
五、sax解析原理(事件驱动,边读边解析)
1.在java.xml.parsers包中
SAXParser:此类的实例可以从SAXParserFactory.newSAXParser()方法获得,该类的方法:parse(File f,DefultHandler dh):第一个参数:xml的路径,第二个参数:事件处理器
SAXParserFactory:实例通过newInstance()得到。
2.sax的执行过程
执行parse方法的时候,当把事件处理器传进去的时候,相当于在方法中绑定了一个事件。然后自动执行事件。事件处理器是默认传进去的。
当解析到开始标签的时候,自动执行startElement()方法
当解析到文本的时候,自动执行characters()方法
当解析到结束标签的时候,自动执行endElement()方法
- JAVAWEB第六天schema约束
- javaWeb-day02(Schema 约束)
- JAVAWEB第六天XPATH
- Schema约束
- Schema约束
- Schema约束
- Schema约束
- schema 约束
- schema约束
- XML约束-Schema约束
- XML约束--schema约束
- 【javaWeb第六天】-HTTP协议
- JavaWeb基础学习第六天
- JavaWeb基础学习第六天
- JavaWeb-06(Dom4j技术及Schema 约束、Tomcat与Web程序结构)
- javaWeb系列之三(XML的简介与约束(DTD和Schema))
- xml Schema 约束
- xml-schema约束
- 程序员的愤怒
- 自定义View--九宫格手势
- 编程零基础,如何19周掌握深度学习?
- Android成长之路——数据持久化处理
- “技术天才”李一男已出狱:曾被视为华为接班人!
- JAVAWEB第六天schema约束
- PAT乙级(Basic Level)练习题 分数运算
- linux-ubuntu使用shadowsocks客户端配置
- 技术团队管理:如何快速杀死程序员
- Linux下的Redis五大数据类型的一些命令
- 当centOS6.7在 vmware不能连接网络时,可能是...
- 进程管理API之task_active_pid_ns
- EditPlus查看十六进制方法
- 中国大学 MOOC 课程 《Python 语言程序设计》第七周课上练习