JavaWeb知识总结|XML

59 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,点击查看活动详情

1.xml文件

  • XML全称是Extensible Markup Language,是一种可扩展的标记语言,使用标签来描述数据,并且标签可以自定义

  • 作用是存储、传输数据或者用于软件配置文件

  • xml标签

    1. 标签由尖括号和合法标识符组成
    2. 标签必须成对出现,有些特殊的标签不成对但是必须有结束标记,如<student></student></adderss>
    3. 标签中可以定义属性,属性和标签名用空格隔开,属性值需要用双引号引起来,如<student id="1"></student>
    4. 一个xml文件有且仅有一个根标签,标签需要正确嵌套
  • 语法规则

    1. 文件后缀名是 .xml

    2. 文档声明必须是文件第一行第一列,格式如下

      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

      version属性:必选的

      encoding属性:可选的,指定打开该文件时使用的字符编码表,一般是UTF-8

      standalone属性:可选的,指定该xml文件是否依赖其他的的xml文件,取值为yes/no

    3. xml文件中的注释语法是

      <!--注释信息-->

    4. 五种特殊字符的表示

      xml中的表示字符说明
      <<小于号
      >大于号
      &&与号
      '''单引号
      """双引号
    5. xml文件中的CDATA区,语法是

      <![CDATA[内容]]>

      内容部分只会被当作文本看待

    6. DOM解析思想

      • DOM(Document Object Model)是文档对象模型,将文档各个部分看成对应的对象

      • 将xml文件加载到内存中,形成一个树形结构,再获取对应的值

      • 范例

        <?xml version="1.0" encoding="UTF-8" ?>
        <students>
            <student id="1">
                <name>张三</name>
                <age>18</age>
            </student>
            <student id="2">
                <name>李四</name>
                <age>20</age>
            </student>
        </students>
        

        该文档的树结构为

image.png

Document对象:表示整个文档 Element对象:表示所有的标签 Attribute对象:表示所有属性 Text对象:表示所有文本内容

  1. 常用xml解析工具:DOM4J,需引入jar包

2.约束

  • 约束用于限定xml文件中可以使用的标签以及属性

  • DTD约束

    1. 引入DTD约束的方式

      • 引入本地DTD

        <!DOCTYPE 根元素名称 SYSTEM 'DTD文件路径'>

      • 在xml文件内部引入

        <!DOCTYPE 根元素名称 [DTD文件内容]>

      • 引入网络中的DTD

        <!DOCTYPE 根元素名称 PUBLIC "DTD文件名称" "DTD文档的URL">

    2. DTD文档中语法规则

      • 定义元素

        语法:<!ELEMENT 元素名 元素类型>

        元素类型分为简单元素复杂元素

        • 简单元素取值可以是:EMPTYANYPCDATA,分别表示标签体为空可以为空可以不为空元素内容部分为字符串

        • 复杂元素则需要将该元素中的所有元素列出,规则是:

          多个元素使用,|隔开,,表示定义子元素的顺序,|表示子元素只能出现任意一个

          在子元素后面使用?+*分别可以指定子元素出现的次数是零次或一次一次或多次零次或多次

          如果不写则表示一次

        范例:

        <!ELEMENT students (student+)>
        <!ELEMENT student (name,age)>
        <!ELEMENT name (#PCDATA)>
        <!ELEMENT age (#PCDATA)>
        
      • 定义属性

        语法:<!ATTLIST 元素名称 属性名称 属性类型 属性约束>

        元素名称:指出该属性属于哪个元素

        属性名称:指出属性的名称

        属性类型:CDATA表示普通的字符串

        属性约束:有三个常用取值REQUIREDIMPLIEDFIXED value,分别表示必需的非必需的固定值的(value是指出的固定值)

        范例:

        <!ATTLIST student id CDATA #REQIRED>
        
  • schema约束

    • 内容仅仅了解,没做总结