XML文件编写详细过程

xml简介


xml语言是具有结构性的标记语言,  可以灵活的存储一对多的数据关系.

    举例
            

    以上这种数据, 如果通过我们学习的集合来存储的话, 需要通过多个集合的嵌套使用,那么很显然, 数据存储的过程就非常麻烦, 但是xml文件就可以很简单的存储这种一对多的数据,

另外xml还可以用来当做配置文件存储数据

Xml文件的组成部分


文档声明
元素
元素的属性
注释
CDATA区
特殊字符
处理指令(PI:Processing Instruction)


文档声明: 在编写XML文档时,需要先使用文档声明来声明XML文档。且必须出现在文档的第一行。这就好比我们在写java文件的时候需要声明class一样, 就是个硬性的规定。

例如:
    <?xml version='1.0' encoding='UTF-8'?>

    xml表示标签的名字
    version表示当前文件的版本号
    encoding表示当前编码, 需要跟文件的编码产生对应关系

    ps: standalone表示标记此文档是否独立
     
xml的元素: xml中的元素其实就是一个个的标签
标签分为两种
            a: 包含标签体: 简括号全部成对儿出现, 所有的数据都用一对儿简括号存储  

  <student>
      <name>zhangsan</name>
      <age>18</age>
  </student>

          b: 不包含标签体: 只有最外层的一个简括号,括号用/标识结束, 内部的数据都用属性来编写               

<student name="zhangsan" age="18" />

标签(元素的书写规范):
        严格区分大小写;<p><P>
        只能以字母或下划线开头;abc _abc
        不能以xml(或XML、Xml等)开头;
        名称字符之间不能有空格或制表符;
        名称字符之间不能使用冒号 : 
元素中属性的注意事项:
           一个元素可以有多个属性,每个属性都有它自己的名称和取值。
            属性值一定要用引号(单引号或双引号)引起来。
            属性名称的命名规范与元素的命名规范相同
            元素中的属性是不允许重复的
            在XML技术中,标签属性所代表的信息也可以被改成用子元素的形式来描束

xml的注释:<!—被注释的内容 -- >       注意: 注释不能嵌套定义

CDATA区:如果我们在标签中写入的内容, 想要带有标签的标记符号的话, 就需要对这段内容进行转义,想要将<name>当做内容存储的话, 就需要对他进行转义。这种转移可以达到效果, 但是如果操作的数据过多, 编写起来会非常痛苦, 所以, 可以使用CDATA区来解决此问题。


示例:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 
    如果有一个包含标签体的标签,
    他的标签体是一个普通文本,不是子标签,
    而普通文本中包含了一个标签,那这样可以吗?
-->

<students>
    <student>
        <name>zhangsan</name>
        <url>
            <![CDATA[
                <itheima>www.itheima.com</itheima>
                <itcast>www.itcast.cn</itcast>
            ]]>
        </url>
    </student>
    
    
    <student>
        <name>zhangsan</name>
        <url>
            &lt;itheima&gt;www.itheima.com&lt;/itheima&gt;
        </url>
    </student>
</students>

DTD约束:
XML都是用户自定义的标签,若出现小小的错误,软件程序将不能正确地获取文件中的内容而报错。(如:Tomcat)
XML技术中,可以编写一个文档来约束一个XML的书写规范,这个文档称之为约束
1.编写DTD文件

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT 书架(书+)>
    <!ELEMENT 书 (书名,作者,售价)>
    <!ELEMENT 书名 (#PCDATA)>
    <!ELEMENT 作者 (#PCDATA)>
    <!ELEMENT 售价 (#PCDATA)>

2.在xml文件中引入DTD文件: 引入了写好的DTD文件后, 格式就必须跟DTD文件保持一致

<!DOCTYPE 书架 SYSTEM "book.dtd">

3.DTD语法规则:
在DTD文档中使用ELEMENT关键字来声明一个XML元素。
•语法:<!ELEMENT 元素名称 使用规则>
使用规则:
•(#PCDATA):指示元素的主体内容只能是普通的文本.(Parsed Character Data)
•EMPTY:用于指示元素的主体为空。比如<br/>
•ANY:用于指示元素的主体内容为任意类型。
•(子元素):指示元素中包含的子元素
•定义子元素及描述它们的关系:
–如果子元素用逗号分开,说明必须按照声明顺序去编写XML文档。
•如: <!ELEMENT FILE (TITLE,AUTHOR,EMAIL)
–如果子元素用"|"分开,说明任选其一。
•如:<!ELEMENT FILE (TITLE|AUTHOR|EMAIL)
–用+、*、?来表示元素出现的次数
•如果元素后面没有+*?:表示必须且只能出现一次
•+:表示至少出现一次,一次或多次
•*:表示可有可无,零次、一次或多次
•?:表示可以有也可以无,有的话只能有一次。零次或一次

定义属性:
•在DTD文档中使用ATTLIST关键字来为一个元素声明属性。
•语法:
        <!ATTLIST 元素名
            属性名1 属性值类型 设置说明
            属性名2 属性值类型 设置说明
            …
        >
•属性值类型:
–CDATA:表示属性的取值为普通的文本字符串
–ENUMERATED (DTD没有此关键字):表示枚举,只能从枚举列表中任选其一,如(鸡肉|牛肉|猪肉|鱼肉)
–ID:表示属性的取值不能重复
•设置说明
–#REQUIRED:表示该属性必须出现
–#IMPLIED:表示该属性可有可无
–#FIXED:表示属性的取值为一个固定值。语法:#FIXED "固定值"
直接值:表示属性的取值为该默认值
示例:

<!ATTLIST 商品
        类别 CDATA #REQUIRED
        颜色 CDATA #IMPLIED
>
<?xml version = "1.0" encoding="GB2312" standalone="yes"?>
    <商品 类别="服装"颜色="黄色" />
<?xml version = "1.0" encoding="GB2312" standalone="yes"?>
<!DOCTYPE 购物篮 [
   <!ELEMENT 购物篮 (肉+)>
    <!ELEMENT 肉 EMPTY>
    <!ATTLIST 肉 品种 ( 鸡肉 | 牛肉 | 猪肉 | 鱼肉 ) "鸡肉">
]> 
<购物篮>
    <肉 品种="鱼肉"/>
    <肉 品种="牛肉"/>
    <肉/>
</购物篮>

Schema约束:自身就是一个XML文件,但它的扩展名通常为.xsd
一个XML Schema文档通常称之为模式文档(约束文档),遵循这个文档书写的xml文件称之为实例文档。
XML Schema对名称空间支持得非常好

理解:
    名称空间: 相当于package            
    约束文档: 编写好的Person类         
    实例文档: 通过Person类创建对象
实例代码
约束文档:

<?xml version='1.0' encoding='UTF-8' ?> 
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' 
                     //标准的名称空间
                      targetNamespace='http://www.itheima.com'
                        //将该schema文档绑定到http://www.itheima.com名称空间
                >
    <xs:element name='书架' >
        <xs:complexType>
            <xs:sequence maxOccurs='unbounded' >
                <xs:element name='书' >
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name='书名' type='xs:string' />
                            <xs:element name='作者' type='xs:string' />
                            <xs:element name='售价' type='xs:string' />
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

实例文档:

<?xml version="1.0" encoding="UTF-8"?>
<itheima:书架 xmlns:itheima="http://www.itheima.com"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="http://www.itheima.com book.xsd">
    <itheima:书>
        <itheima:书名>JavaScript网页开发</itheima:书名>
        <itheima:作者>张孝祥</itheima:作者>
        <itheima:售价>28.00元</itheima:售价>
    </itheima:书>
</itheima:书架>


名称空间:

<itheima:书架 xmlns:itheima="http://www.itheima.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.itheima.com book.xsd">

使用默认名称空间
•基本格式:
    xmlns="URI"  
•举例:

  <书架 xmlns="http://www.it315.org/xmlbook/schema"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.it315.org/xmlbook/schema book.xsd">
        <书>
        <书名>JavaScript网页开发</书名>
        <作者>张孝祥</作者>
        <售价>28.00元</售价>
        </书>
    <书架>

 

  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮您回答这个问题。在Spring Boot中整合MyBatis Plus和DM8,可以使用MyBatis Plus提供的mapper接口和XML文件编写SQL语句。下面是具体的步骤: 1. 配置DM8数据源 在application.properties或application.yml文件中,配置DM8数据源的相关信息,例如: ``` spring.datasource.driver-class-name=com.dm.jdbc.driver.DmDriver spring.datasource.url=jdbc:dm://localhost:5236/test spring.datasource.username=username spring.datasource.password=password ``` 2. 添加MyBatis Plus依赖 在pom.xml文件中添加MyBatis Plus的依赖: ``` <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.1</version> </dependency> ``` 3. 创建Mapper接口 创建一个继承自BaseMapper的接口,例如: ``` @Mapper public interface UserMapper extends BaseMapper<User> { } ``` 4. 在XML文件编写SQL语句 在resources/mapper目录下,创建一个与Mapper接口同名的XML文件,例如UserMapper.xml,然后在XML文件编写SQL语句,例如: ``` <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.mapper.UserMapper"> <select id="selectById" resultType="com.example.entity.User"> SELECT * FROM user WHERE id = #{id} </select> </mapper> ``` 5. 在Controller中使用Mapper接口 在Controller中注入Mapper接口,并调用其中的方法,例如: ``` @RestController public class UserController { @Autowired private UserMapper userMapper; @GetMapping("/user/{id}") public User getUserById(@PathVariable Long id) { return userMapper.selectById(id); } } ``` 这样就完成了Spring Boot和MyBatis Plus整合DM8,在XML文件编写SQL语句的过程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值