• XML基础


    XML的全称是EXtensible Markup Language,可扩展标记语言
    XML文档结构
        有且只有一个根节点。
        第一行必须是XML声明。
        XML标签的书写规则与HTML相同。
    XML声明
        XML声明说明XML文档的基本信息,包括版本号与字符集,写在XML第一行。
        <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
        version 必须属性 代表版本号1.0/1.1
        encoding 非必须 UTF-8设置字符集,用于支持中文
       standalone 非必须 当前xml文件是否依赖其他的xml文件 取值:yes、no 处理特殊字符 标签体中,出现
    "<"">"特殊字符,会破坏文档结构。 解决方案1:使用实体引用。 解决方案2:使用CDATA标签。
    无效的XML:
    <exam> <question>1+4<3是否正确?</question> <question>3+5>8是否正确?</question> </exam>

    修改后的XML
    <exam>
      <question>1+4&lt;3是否正确?</question>
      <question>3+5&gt;8是否正确?</question>
    </exam>
    CDATA标签
    1.CDATA指的是不应由XML 解析器进行解析的文本数据
    2.从"<![CDATA[" 开始,到"]]>"结束
    例如:
    <lesson>
        <content>
            <![CDATA[html中标签的使用:a<body><a href="index.html">首页</a></body>]]>
        </content>
    </lesson>
    页面效果如下:

    XML语义约束
    XML语义约束有两种定义方式:DTD与XMLSchema。
    
    DTD
    1.DTD(Document Type Definition,文档类型定义是)一种简单易用的语义约束方式。
    2.DTD文件的扩展名为.dtd。
    
    DTD定义节点
    利用DTD中的标签,我们可以定义XML文档中允 许出现的节点及数量,以hr.xml为例:
    定义hr节点下只允许出现1个employee子节点。 
    <!ELEMENT hr (employee)>
    employee节点下必须包含以下四个节点,且按顺序出现。
    <!ELEMENT employee (name,age,salary,department)>
    定义name标签体只能是文本,#PCDATA代表文本元素。
    <!ELEMENT name (#PCDATA)>
    
    DTD定义节点数量
    如某个子节点需要多次重复出现,则需要在子节点后增加相应的描述符。
    hr节点下最少出现1个employee子节点。
    <!ELEMENT hr (employee+)>
    hr节点下可出现0..n个employee子节点。
    <!ELEMENT hr (employee*)>
    hr节点下最多出现1个employee子节点。
    <!ELEMENT hr (employee?)>
    
    //employee标签内有 name,age,salary,department子标签
    <!ELEMENT employee (name,age,salary,department)>
    
    //基本语法:<!ATTLIST   元素名称   属性名称   属性类型  属性约束>
    //属性类型 CDATA:字符或数字,普通的字符串;属性约束:#REQUIRED必须的 #IMPLIED属性不是必须的 #FIXED value属性值是固定的
    <!ATTLIST employee no CDATA "">
    
    //在DTD中,指定某个标签中的内容是字符数据时,使用(#PCDATA)
    //定义name标签体只能是文本,#PCDATA代表文本元素。
    <!ELEMENT name (#PCDATA)> ...
    
    XML中引用dtd文件:
    在xml文件中使用<!DOCTYPE>标签来引用DTD文件
    三种书写格式:
    1.引入本地dtd
    <!DOCTYPE 根节点 SYSTEM "dtd文件路径"> 示例:<!DOCTYPE hr SYSTEM "hr.dtd">
    2.在xml文件内部引入
    <!DOCTYPE 根节点 [dtd文件内容]>
    3.引入网络dtd
    <!DOCTYPE 根节点 PUBLIC "DTD文件名称" "DTD文档的URL">
    XML Schema
    1.XML Schema比DTD更为复杂,提供了更多功能。 2.XML Schema 提供了数据类型、格式限定、数据范围等特性。 Dom4j Dom4j是一个易用的、开源的库,用于解析XML。它 应用于Java平台,具有性能优异、功能强大和极其易使 用的特点。 Dom4j将XML视为Document对象。 XML标签被Dom4j定义为Element对象 XPath路径表达式 XPath路径表达式是XML 文档中查找数据的语言。 常用的基本表达式 nodename:选取此节点的所有子节点 /:从根节点选取 //:从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置 .:选取当前节点 ..:选取当前节点的父节点 @:选取属性



  • 相关阅读:
    在eclipse中API的封装和调用
    冒泡排序
    java中阻止类的继承
    java中数组复制的两种方式
    ssh框架搭建出现的异常: class com.my.entity.user not found while looking for property: id
    ssh框架中struts.xml 的配置参数详解
    线程的五种状态
    Sql Server 分页
    window.opener 子窗体操作父窗体
    贪心算法--汽车加油问题
  • 原文地址:https://www.cnblogs.com/ljc1212/p/14505022.html
Copyright © 2020-2023  润新知