xml详解四

schema的快速入门:
    *创建一个schema文件 后缀名 .xsd
        *根节点<schema>
    **在schema文件里面
        *属性 xmlns="http://www.w3.org/2001/XMLSchema"
            -表示当前的xml文件是一个约束文件
        targetNamespace="http://www.1234.cn/20211227"
            -使用schema约束文件,直接通过这个地址引入约束文件
        elementFormDefault="qualified"
    步骤:
        1.首先看xml中有多少元素
            <element>
        2.看简单元素和复杂元素
            如果复杂元素
             <complexType>
            <sequence>
                子元素
            </sequence>
        </complexType>
        3.简单元素,写在复杂元素的
            <element name="person">
        <complexType>
            <sequence>
                <element name="name" type="string">

                </element>
                <element name="age" type="int">

                </element>
            </sequence>
            </complexType>
        </element>
        4.在被约束的文件里引入 约束文件
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                -表示xml是一个被约束的文件
            xmlns="http://www.1234.cn/20211227"
                -是约束文档里面的 targetNamespace
            xsi:schemaLocation="http://www.1234.cn/20211227 1.xsd"
                -targetNamespace 空格 约束文档的路径地址
                
        *<sequence>:表示元素出现的顺序
        <all>:元素只能出现一次
        <choice>:元素只能出现其中的一个
        maxOccurs="unbounded":表示该元素出现的次数
        <any></any>:表示任意元素
        
        *约束属性:
            *必须写在复杂元素里面
            **写在</complexType>之前
            
            <attribute name="id" type="int" use="required"></attribute>
            -name:属性名称
            -type:属性类型
            -use:属性是否必须出现
        复杂的schema约束
        
            <person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:dept="http://www.231.cn/20211227"
            xmlns="http://www.itcast.cn/20211227"
            xsi:schemaLocation="http://www.itcast.cn/20211227 1.xsd http://www.231.cn/20211227 com.xsd"
            
    sax解析的原理:
        *解析xml有两种技术dom和sax
        
        dom解析:
        *根据xml的层级结构在内存中分配一个树形结构
        **把xml标签,属性,文本封装成对象
        
        sax方式:事件驱动,边读边解析 
        在Javax.xml.parsers包里面
            **SAXParser
                此类示例可以通过 SAXParserFactory.newSAXParser() 方法获得
                -两个参数
                -第一个xml的路径
                -第二个事件处理器
            **SAXParserFactory
                示例 newInstance()方法获得
        画图分析sax执行过程


            -当解析到开始标签的时候自动执行startElement
            -当解析到文本的时候自动执行characters
            -当解析到结束标签的时候自动执行endElement
    
    使用jaxp的sax方式解析xml
        sax方式不能实现增删改操作,只能做查询
        **打印出整个文档
        执行parse方法,第一个参数xml路径,第二个事件处理器
            创建一个继承事件处理器类
            并重写里面的三个方法
            
        
        获取所有name元素的值
            -定义一个成员变量flag=false
            -判断开始方法是否是name元素,如果是,把flag = true
            -如果flag值是true,在characters方法里面打印内容
            -当执行到结束方法是把flag值设置为false
        
        获取第一个name元素的值
            -定义两个成员变量flag=false,index= 1
            -判断开始方法是否是name元素,如果是,把flag = true
            -如果flag值是true 以及index是不是=1,在characters方法里面打印内容
            -当执行到结束方法是把flag值设置为false index ++

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扶不起来的小白菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值