zoukankan      html  css  js  c++  java
  • Schema约束

    13 写一个DTD约束文件
    14 Schema 约束
    14.1 什么是Schema 约束
    Schema是新的XML文档约束;
    Schema要比DTD强大很多,是DTD替代者;
    Schema本身也是XML文档,但Schema文档的扩展名为xsd,而不是xml。
    Schema功能更强大,数据类型更完善
    Schema支持名称空间
    14.2 与DTD —样,要求可以通过schema约束文档编写xml文档。常见框架使用schema的有:Spring

    14.3 根据约束写一个
    15 命名空间
    15.1 什么是命名空间
    如果一个XML文档中使用多个Schema文件,而这些Schema文件中定义了相同名称的元素时就 会出现名字冲突。这就像一个Java文件中使用了 import java.util.*和import java.sql.*时,在使用Date 类时,那么就不明确Date是哪个包下的Date 了。
    总之名称空间就是用来处理元素和属性的名称冲突问题,与java中的包是同一用途。如果每个 元素和属性都有自己的名称空间,那么就不会出现名字冲突问题,就像是每个类都有自己所在的包 一样,那么类名就不会出现冲突。
    16 XML解析
    16.1概念
    当将数据存储在XML后,我们就希望通过程序获得XML的内容。如果我们使用java基础所学习的I0知识是可以完成的,不过你需要非常繁琐的操作才可以完成,且开发中会遇到不同问题(只 读、读写)。人们为不同问题提供不同的解析方式,并提交对应的解析器,方便开发人员操作XML。
    16.2 解析方式
    D0M:要求解析器把整个XML文档装载到内存,并解析成一个Document对象。
    a) 优点:元素与元素之间保留结构关系,故可以进行增删改查操作。
    b) 缺点:XML文档过大,可能出现内存溢出显现。
    SAX:是一种速度更快,更有效的方法。它逐行扫描文档,一边扫描一边解析。并以事件驱动 的 方式进行具体解析,每执行一行,都将触发对应的事件。(了解)
    a) 优点:处理速度快,可以处理大文件
    b) 缺点:只能读,逐行后将释放资源。
    PULL: Android内置的XML解析方式,类似SAX。
    16.3 解析器
    就是根据不同的解析方式提供的具体实现。有的解析器操作过于繁琐,为了方便开发 人员,有提供易于操作的解析开发包
    16.4 常见的解析开发包:
    JAXP: sun公司提供支持DOM和SAX开发包
    JDom: dom4j 兄弟
    jsoup: 一种处理HTML特定解析幵发包
    dom4j:比较常用的解析幵发包,hibernate底层采用。
    16.5 dom4j使用
    导入jar包
    dom4j必须使用核心类SaxReader加载xml文档获得Document,通过Document对象获得文档
    的根元素,然后就可以操作了。
    常用API如下:
    1 SaxReader 对象
    a) read(...)加载执行xml文档
    2 Document 对象
    a) getRootElement()获得根元素
    3 Element 对象
    elements(...)获得指定名称的所有子元素。可以不指定名称
    element(...)获得指定名称第一个子元素。可以不指定名称
    getName()获得当前元素的元素名
    attributeValue(...)获得指定属性名的属性值
    elementText(...)获得指定名称子元素的文本值
    getText()获得当前元素的文本内容


    13 写一个DTD约束文件
    14 Schema 约束
    14.1 什么是Schema 约束
    Schema是新的XML文档约束;
    Schema要比DTD强大很多,是DTD替代者;
    Schema本身也是XML文档,但Schema文档的扩展名为xsd,而不是xml。
    Schema功能更强大,数据类型更完善
    Schema支持名称空间
    14.2 与DTD —样,要求可以通过schema约束文档编写xml文档。常见框架使用schema的有:Spring

    14.3 根据约束写一个
    15 命名空间
    15.1 什么是命名空间
    如果一个XML文档中使用多个Schema文件,而这些Schema文件中定义了相同名称的元素时就 会出现名字冲突。这就像一个Java文件中使用了 import java.util.*和import java.sql.*时,在使用Date 类时,那么就不明确Date是哪个包下的Date 了。
    总之名称空间就是用来处理元素和属性的名称冲突问题,与java中的包是同一用途。如果每个 元素和属性都有自己的名称空间,那么就不会出现名字冲突问题,就像是每个类都有自己所在的包 一样,那么类名就不会出现冲突。
    16 XML解析
    16.1概念
    当将数据存储在XML后,我们就希望通过程序获得XML的内容。如果我们使用java基础所学习的I0知识是可以完成的,不过你需要非常繁琐的操作才可以完成,且开发中会遇到不同问题(只 读、读写)。人们为不同问题提供不同的解析方式,并提交对应的解析器,方便开发人员操作XML。
    16.2 解析方式
    D0M:要求解析器把整个XML文档装载到内存,并解析成一个Document对象。
    a) 优点:元素与元素之间保留结构关系,故可以进行增删改查操作。
    b) 缺点:XML文档过大,可能出现内存溢出显现。
    SAX:是一种速度更快,更有效的方法。它逐行扫描文档,一边扫描一边解析。并以事件驱动 的 方式进行具体解析,每执行一行,都将触发对应的事件。(了解)
    a) 优点:处理速度快,可以处理大文件
    b) 缺点:只能读,逐行后将释放资源。
    PULL: Android内置的XML解析方式,类似SAX。
    16.3 解析器
    就是根据不同的解析方式提供的具体实现。有的解析器操作过于繁琐,为了方便开发 人员,有提供易于操作的解析开发包
    16.4 常见的解析开发包:
    JAXP: sun公司提供支持DOM和SAX开发包
    JDom: dom4j 兄弟
    jsoup: 一种处理HTML特定解析幵发包
    dom4j:比较常用的解析幵发包,hibernate底层采用。
    16.5 dom4j使用
    导入jar包
    dom4j必须使用核心类SaxReader加载xml文档获得Document,通过Document对象获得文档
    的根元素,然后就可以操作了。
    常用API如下:
    1 SaxReader 对象
    a) read(...)加载执行xml文档
    2 Document 对象
    a) getRootElement()获得根元素
    3 Element 对象
    elements(...)获得指定名称的所有子元素。可以不指定名称
    element(...)获得指定名称第一个子元素。可以不指定名称
    getName()获得当前元素的元素名
    attributeValue(...)获得指定属性名的属性值
    elementText(...)获得指定名称子元素的文本值
    getText()获得当前元素的文本内容


  • 相关阅读:
    【题解】【神奇校内POIN模拟赛】小凯的疑惑
    【题解】【CF670C】cinema
    11 Remove Duplicates from Sorted Array II
    10 3SumClosest
    7 Container With Most Water
    8 String to Integer (atoi)
    9 3Sum
    6 Palindrome Number
    5 Zigzag Conversion
    4 Longest Palindromic Substring
  • 原文地址:https://www.cnblogs.com/lijun6/p/10441076.html
Copyright © 2011-2022 走看看