schema约束、SAX

schema约束

特点:- schema符合xml的语法,里面写的是xml语句,与dtd约束不同,dtd是自成一派

-          一个xml中可以有多个schema,多个schema使用名称空间区分

-          dtd里面有PCDATA等类型,但是在schema里面可以支持更多的数据类型,比如年龄只能是整数,schema可以严格的规定整数类型

-          但是schema语法更加复杂,还无法代替dtd

快速入门

1、创建一个schema文件,后缀名是.xsd

根节点:<shema>

在schema文件里面的属性

xmlns=http://www.w3.org/2001/XMLSchema  表示当前是一个约束文件

targetNameSpace=http://www.itcast.cn/20151111使用schema约束文件,直接通过地址引入约束文件

elementFormDefault=“qualified”

2、步骤

-          看xml中有多少个元素,有几个就写几个<element>

-          看是否是简单元素或者复杂元素,简单元素写在复杂元素的里面

如 <element name =“person”>

<complexType>

<sequence>

<element name =“name” type=“string”></element>

<element name=“age” type =“ing”></element>

</sequence>

</complexType>

</element>

3、在被约束文件里面引入约束文件

如<person xmlns:xsi=“http://www.w3.org/2001/XMLSchema”  xmlns=“http://www.itcast.cn/20151111” xis:schemaLocation=“http://www.itcast.cn/20151111” 1.xsd>

** xmlns:xsi=“http://www.w3.org/2001/XMLSchema”表示xml是一个被约束文件

** xmlns=“http://www.itcast.cn/20151111”是约束文档里面的targetNameSpace

** xis:schemaLocation=“http://www.itcast.cn/20151111” 1.xsd

格式:targetNamespace 空格 约束文档的路径

<sequence>:表示元素按照顺序出现

<all>:表示元素只能出现一次

<choice>:表示元素只能出现其中一个

maxOccurs=“unbounded”:表示元素出现的次数无限制

<any>:表示任意元素

约束属性,写在复杂元素里面,位置 </complexType>之前

<attribute name =“id1” type=“int” use=“required”> </attribute>

name:属性名称  type:属性类型  use:属性是否必须出现

SAX解析

-SAXParser  通过SAXParserFactory.new SAXParser()方法获得

- parse(File f,DefaultHandler )  路径,事件处理器

startElement(String url, String location, String qname, Attributes attribute )

characters(char[] ch ,int start, int length)

endElement(String url, String location, String qname)

- SAXParserFactory 方法 newInstance

4、使用jaxp的sax方式解析xml

sax方式不能实现增删改操作,只能进行查询操作

-1、创建解析器工厂

-2、创建解析器

-3、执行parse方法

-4、自己创建一个类,继承DefaultHandler

5、重写继承的3个方法:startElement、characters、endElement

6、获取所有的name元素的值

-定义一个成员变量 flag=false

-判断开始放松是否是name元素,如果是name元素,把flag设置为true

-如果flag值是true,在characters方法里面打印内容

-当执行到结束方法时候,把flag设置为true

7、获取第一个name元素的值

-定义一个成员变量 inx=1

-在结束方法时候,idx+1 idx++

-想要打印出第一个name元素的的值

在characters方法里面判断

判断flag=true 并且idx==1,再打印内容

时间: 2024-10-03 19:17:03

schema约束、SAX的相关文章

XML技术-Schema约束-Dom4j-Xpath详解

这辈子没办法做太多事情所以每一件都要做到精彩绝伦 People can't do too many things in my life,so everything will be wonderful   乔布斯 本文档参考资料w3cschool.CHM  API教程文档免费下载地址http://down.51cto.com/data/2300287 XML技术 1.     什么是XML XML 指可扩展标记语言EXtensibleMarkup Language XML 是一种标记语言很类似 H

JavaWeb-06(Dom4j技术及Schema 约束、Tomcat与Web程序结构)

JavaWeb-06 JavaWeb-Dom4j技术及Schema 约束.Tomcat与Web程序结构 DOM4J及Schema 一.Dom4j解析(掌握) DOM4J解析XML文档 a. Dom4j是一个简单.灵活的开放源代码的库.Dom4j是由早期开发JDOM的人分离出来而后独立开发的.与JDOM不同的是,dom4j使用接口和抽象基类,虽然Dom4j的API相对要复杂一些,但它提供了比JDOM更好的灵活性. b. Dom4j是一个非常优秀的Java XML API,具有性能优异.功能强大和极

Java 模拟servlet执行、DTD约束、Schema约束、dom4j解析(读写xml)

模拟servlet执行 浏览器请求WEB服务器上的资源,WEB服务器返回给浏览器 浏览器的入口不同(访问路径),访问的资源也不同. 我们需要使用xml约束(DTD或schema);为了获得xml的内容,我们需要使用dom4j进行解析. XML(不同路径(/hello)执行不同的资源( HeIIoMyServlet)) XML可扩展的标记语言  标签可自定义的 包下创建xml 文件   new → other  →  XMLFile 粘贴web-app_ 2_ 3.dtd文件 复制web-app_

XML的DTD和Schema约束

为什么要使用约束? XML是自定义的标签,有时候标签太多,记不住,所以就需要有约束来告诉我能写哪些标签,哪些标签写错了不能识别 XML中有哪几种约束? 有很多约束,其中DTD和Schema约束最为常见. 约束本质上是什么? 约束本质上也是一种xml文件. DTD约束和Schema约束的区别 特点的区别: DTD约束较为古老,简单,一些老框架使用DTD作为约束:Struts2和Hibernate都使用DTD作为其XML配置文件的约束 Schema约束功能更为强大,用的更为广泛,Tomcat和Spr

WebService . Schema约束

1. namespace 相当于schema文件的id 2. targetNamespace属性 用来指定schema文件的namespace的值 3. xmlns属性 引入一个约束, 它的值是一个schema文件的namespace值 4. schemaLocation属性 用来指定引入的schema文件的位置   schema规范中: 1. 所有标签和属性都需要有schema文件来定义 2. 所有的schema文件都需要有一个id, 但在这里它叫namespace, 3. namespace

xml初步,DTD和Schema约束

XML 可扩展的标记语言(!!!可扩展) 作用 1.存放数据 2.配置文件 语法 文档声明 <?xml version="1.0" encoding="UTF-8"?> 1.文档声明必须为<?xml开头,以?>结束: 2.文档声明必须从文档的0行0列位置开始: 3.文档声明只有2个属性: version 版本 encoding 编码 元素 <bean></bean> 1.必须开始结束 2.标签由开始标签,元素体,结束标

关于Spring配置文件xml文档的schema约束

最开始使用spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例. [html] view plain copy print? <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:m

xml语法、DTD约束xml、Schema约束xml、DOM解析xml

今日大纲 1.什么是xml.xml的作用 2.xml的语法 3.DTD约束xml 4.Schema约束xml 5.DOM解析xml 1.什么是xml.xml的作用 1.1.xml介绍 在前面学习的html语言,html是超文本标记语言,使用html语言规定好的标签来封装文本数据.而html使用的标签html语言规定好的,每个标签都有自己特定的功能. xml语言,可扩展的标记语言,这门语言它没有定义任何的标记,而标记是由使用者自己来定义,但是由于标签名称以及属性名称都由用户自己来命名,导致别人在使

XML Schema约束

schema规范中:    1. namespace : schema文件的标识属性,相当于id,每个schema文件需要有一个唯一的namespace值:    2. targetNameSpace :指定当前schema文件的namespace值,它的值是一个url(很有可能不存在):    3. xmlns :引入一个schema约束,它的值为一个schema的namespace值            属性? : 用xmlns属性            属性值: 对应的schema文件的