为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第11天 Java与数据库连接的桥梁(XML)

标签:
Java
课程名称:Java工程师2022版
课程章节:Java数据库开发与实战
课程讲师:IT老齐 悟空 八戒猪 神思者 Leo
课程内容:MySQL基本函数的使用

一、XML语法规范
1.XML是什么?
XML的全称是EXtensible Markup Language,可扩展标记语言。
编写XML就是编写标签,扩展.xml。
良好的人机可读性。

hr.xml
<employee>
	<name>张三</name>![图片描述](//img1.sycdn.imooc.com//63eea83d0001e06c14780785.png)
	<age>31</age>
	<height>178</height>
</employee>

2.XML的用途
Java程序的配置描述文件

<config>
	<application-name>X电商平台</application-name>
	<host-ip>192.168.132.56</host-ip>
	<page-size>10</page-size>
</config>

可能更多的往XML文件里存放一些经常变化的内容,因为这样的话更容易修改,也避免了不断的编译Java程序。
3.XML文档结构
第一行必须是XML声明。
有且只有一个根标签。
XML标签的书写规则。
4.XML声明
XML声明说明XML文档的基本信息,包括版本号与字符集,写在XML第一行。<?xml version="1.0" encoding="UTF-8"> version 代表版本号1.0/1.1。encoding UTF-8设置字符集,用于支持中文。
5.XML必须拥有根标签
每一个XML文档必须拥有“根标签”。
标签是有上下级关系的,上级为“父标签”,下级为“子标签”。
标签也常被称为“节点”。

<?xml version="1.0" encoding="UTF-8"?>
<employee>
	<name>张三</name>
	<age>18</age>
	<height>178</height>
</employee>

这里的employee就是XML文档的根标签。employee也是name, age, height的父标签,所以在XML中也是存在父标签和子标签的问题的,ename, age, height就是employee的子标签。
6.XML标签书写规则
合法的标签名,适当的注释与缩进,合理使用属性,特殊字符与CDATA标签,有序的子元素。
什么是合法的标签名:
a:标签名要有意义。
b:建议使用英文,小写字母,单词之间使用”-“分割。
c:建议多级标签之间不要存在重名的情况。
适当的注释与缩进可以让XML文档更容易阅读。
合理的使用属性:标签属性用于描述标签不可或缺的信息。
7.处理特殊字符
标签内容(标签体)中出现"<"等特殊字符,会破坏文档结构。
解决方案1:使用实体引用。
解决方案2:使用CDATA标签。
XML支持五种实体引用

实体引用 对应符号 说明
&lt; < 小于
&gt; > 大于
&amp; & 和号
&apos; 单引号
&quot; " 双引号

8.使用CDATA标签处理特殊字符

<exam>
	<question><![CDATA[1+4<3是否正确?]]></question>
	<question><![CDATA[3+5>8是否正确?]]></question>
</exam>

遇到这个标签之后,XML不会再去解析这个标签对,只会原模原样的输出。
有序的子元素:在XML多层嵌套的子元素中,标签前后顺序应保持一致。
9.在IDEA中创建第一个XML文件

<?xml version="1.0" encoding="UTF-8" ?>
<!--公司员工数据-->
<hr>
    <employee no="3309">
        <name>张三</name>
        <age>31</age>
        <salary>4000</salary>
        <department>
            <dname>会计部</dname>
            <address>XX大厦-B103</address>
        </department>
    </employee>
    <employee no="3310">
        <name>李四</name>
        <age>23</age>
        <salary>3000</salary>
        <department>工程部</department>
        <address>XX大厦-B104</address>
    </employee>
</hr>

写完后有两个办法检查文档正确与否,第一个办法就是利用IDEA,如果没有飘红那就是没有问题。第二个办法就是利用谷歌浏览器打开xml文件后,如果有报错的话,会有一段说明的文字。
二、XML语义约束
1.XML语义约束
XML文档结构正确,但可能不是有效的。
例如,员工档案XML中绝对不允许出现“植物品种”标签。XML语义约束就是用于规定XML文档中允许出现哪些元素。
XML语义约束有两种定义方式:DTD与XML Schema。
2.DTD(Document Type Definition)
DTD(Document Type Definition, 文档类型定义) 是一种简单易用的语义约束方式。
DTD文件的扩展名为.dtd。
利用DTD中的<!ELEMENT>标签,我们可以定义XML文档中允许出现的节点及数量,以hr.xml为例:
定义hr节点下只允许出现1个employee子节点。<!ELEMENT hr (employee)>
employee节点必须包含以下四个节点,且按照顺序出现。<!ELEMENT employee(name,age,salary,department)>
定义name标签只能是文本,#PCDATA代表文本元素。<!ELEMENT name(#PCDATA)>
3.DTD 定义节点数量
如某个子节点需要多次重复出现,则需要在子节点后增加相应的描述符。
hr节点下最少出现1个employee子节点。<!ELEMENT hr (employee+)>
hr节点下可出现0…n个employee子节点。<!ELEMENT hr(employee*)>
hr节点下最多出现1个employee子节点。<! ELEMENT hr(employee?)>
4.XML引用DTD文件
在XML中使用<!DOCTYPE>标签来引用DTD文件,书写格式:<!DOCTYPE 根节点 SYSTEM "dtd文件路径"> 实例:<!DOCTYPE hr SYSTEM "hr.dtd">

<?xml version="1.0" encoding="UTF-8" ?>
<!ELEMENT hr (employee+)>
<!ELEMENT employee (name,age,salary,department)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT salary (#PCDATA)>
<!ELEMENT department (dname,address)>
<!ELEMENT dname (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ATTLIST employee no CDATA "">

用.dtd约束和规范配置文件,约束XML文件。
5.XML Schema
XML Schema比DTD更加复杂,提供了更多功能。
XML Schema提供了数据类型、格式限定、数据范围等特性。
XML Schema是W3C标准。

<?xml version="1.0" encoding="UTF-8" ?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.imooc.com/xml-schema" elementFormDefault="qualified">
    <element name="hr">
        <complexType>
            <sequence>
                <element name="employee" minOccurs="1" maxOccurs="99999">
                    <complexType>
                        <sequence>
                            <element name="name" type="string"></element>
                            <element name="age">
                                <simpleType>
                                    <restriction base="integer">
                                        <minInclusive value="18"></minInclusive>
                                        <maxInclusive value="65"></maxInclusive>
                                    </restriction>
                                </simpleType>
                            </element>
                            <element name="salary" type="integer"></element>
                            <element name="department">
                                <complexType>
                                    <sequence>
                                        <element name="dname" type="string"></element>
                                        <element name="address" type="string"></element>
                                    </sequence>
                                </complexType>
                            </element>
                        </sequence>
                        <attribute name="no" type="string" use="required"></attribute>
                    </complexType>
                </element>
            </sequence>
        </complexType>
    </element>
</schema>
课程总结:

完成了今天的学习目标:
1.XML语法规范
2.XML语义约束
图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消