xml基础--DTD

1.XML简介:eXtensible Markup Language(可扩展标记性语言)
    1>核心技术:
         a.文档描述,验证,约束技术-----DTD/Schema
         b.文档转换技术-----XSL
         c.链接技术-----XLink/XPointer
         d.编程接口-----DOM/SAX
     2>xml中的每个元素都是成对出现的,xml中的元素嵌套关系要保持正确性,即先开始的标记要先结束,后开始的标记后结束。每个xml文档都有且只有一个根元素(root element).所谓的根元素,就是一唯一一个包含了其他所有元素的元素。xml描述的文档的内容和语义,而不是文档如何显示。
     3>xml解析器---读取xml文档并提供对文档内容访问的软件模块。类型:无验证的解释器和验证的解释器
     4>xml文档结构:
        a.声明:<?xml version="1.0"  encoding="utf-8" standalone="yes" > 这是xml处理指令的例子,处理指令以<?开始,以?>结束。在<?后的第一个单词是处理指令名。在本例中是xml。standlone指明该文档是独立的xml文档,也就是该xml文档不需要dtd的验证,文档中只要语法正确就是一个合法的xml文档。注<?处理指令必须要顶格写,前面不能有任何的空白。每个xml文档都以一个xml声明开始。默认的使用的编码方式是utf-8.
        b.属性:xml元素可以具有属性,属性的形式为:属性名="属性值",比如gender="male",属性值需要单引号或双引号括起来。多个属性之间用空格分开。不能包含< > &这些字符,一个元素上相同名字的属性,只能出现一次。
        c.处理指令:<?xml-stylesheet type="text/css" href=""?>为当前的xml文档指定样式。可以实现内容和展现样式的分离。
        d.实体:
             xml预定义了五种实体:&lt;---(<)   &gt;---(>)  &amp;----(&)   &quot;---(") &apos;---( ' )
             xml自定义实体语法:<!DOCTYPE 根元素 [<!ENTITY 实体名 “实体内容”>]>
             
         e.注释:不能嵌套<!-- 这是一个注释-->,可以在除标记以外的任何地方放注释
         f.CDATA节:用于把整段文本解释为纯字符数据而不是标记的情况。包含大量<、>、&或者“字符。CDATA节中的所有字符都会当作元素字符数据常量部分,而不是xml标记
              语法:<![CDATA[.............]]>(注:可以输入任意字符除]]外)
         g.DOCTYPE---文档类型定义,紧跟xml声明之后,包含了所有实体的声明
              语法:<!xml version="1.0"?>
                          <!DOCTYPE 根元素标记名[
<!--所有实体的声明-->
                            ]>
        5>格式正规的xml文档:
          a.必须有xml声明语句--<?xml version="1.0"?>
          b.必须有且只有一个根元素
          c.标记大小写敏感
          d.属性值用引号
          e.标记成对
          f.空标记关闭
          g.元素正确嵌套
       6>xml元素语法:
         a.名称可以包含字母、数字或其他字符
         b.名称不能以数字开头
         c.不能以xml/XML/Xml/....开头
         d,名称中不能包含空格
         f. 名称不能包含冒号(注:冒号留给命名空间使用)
2.DTD---Document type definition
1>元素定义:
2>属性定义:
a.语法: <!ATTLIST 元素名称  属性名称  类型  属性特点.....>
b.类型:
CDATA---表示属性是字符串(包括数字和中文) 注:#PCDATA是用来定义元素
NMTOKEN---CDATA字集,表示属性值必须是英文字母,数字,句号,破折号,下划线或冒号,属性值中不能包含空格
NMTOKENS--包含多个由空格分隔的字符
ID--表明该属性的取值必须是唯一的
IDREF---属性的值指向文档中其他地方声明的ID类型的值
IDREFS---同IDREF,但是可以具有由空格分开的多个引用
Enumerated---事先定义好一些值,属性的值必须在所列出的值的范围内
c.特点:
#REQUIRED(此属性在该元素中必须出现,NOT NULL)
#IMPLIED(此属性在该元素中存在,可以出现,也可以不出现,NULL)
#FIXED value(元素实例中该属性的值必须为指定的固定值)
default value(为属性提供默认值) 
3>内部实体:
a.语法:<!ENTITY 实体名 "实体值">
b.引用:&[实体名];
4>外部实体:
a.语法:<!ENTITY 实体名 SYSTEM "URI/URL">(必须使用SYSTEM,否则会用URI代替,而不是用URI的内容代替)
b.引用:&[实体名];
5>实体:
 

          关于普通实体和参数实体

             普通实体是在dtd中定义,xml中使用,使用时的格式为:&[实体名];

             参数实体是在dtd中定久,dtd中使用,定义时使用%,使用是也需要使用%,%[实体名];

             普通外部实体定义方式-----<!ENTITY 实体名 SYSTEM "URI/URL">表示使用uri/url网址的内容来替换指定实体,而不是使用uri/ull字符串本身

             外部参数实体定义方式----<!ENTITY % 实体名 SYSTEM "URI/URL">使用:%[实体名];

  

7.命名空间(Namespace)---避免元素名称冲突,使用URL作为XML的Namespaces ,元素和属性都可以使用命名空间

        语法:xmlns:[prefix]="URL"



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mybatis-Plus是Mybatis的增强工具,在Mybatis的基础上只做增强不做改变,简化了CRUD操作,提供了代码生成器等功能,使得开发更加高效。下面是使用Mybatis-Plus的步骤: 1.添加依赖 在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3.1</version> </dependency> ``` 2.配置文件 在application.yml文件中添加以下配置: ```yaml mybatis-plus: mapper-locations: classpath*:mapper/*.xml # mapper文件的位置 type-aliases-package: com.example.demo.entity # 实体类的位置 ``` 3.编写实体类 ```java @Data public class User { private Long id; private String name; private Integer age; private String email; } ``` 4.编写Mapper接口 ```java public interface UserMapper extends BaseMapper<User> { } ``` 5.编写Mapper XML文件 ```xml <?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.demo.mapper.UserMapper"> <resultMap id="BaseResultMap" type="com.example.demo.entity.User"> <id column="id" property="id"/> <result column="name" property="name"/> <result column="age" property="age"/> <result column="email" property="email"/> </resultMap> </mapper> ``` 6.使用Mybatis-Plus进行CRUD操作 ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public User getUserById(Long id) { return userMapper.selectById(id); } @Override public List<User> getUserList() { return userMapper.selectList(null); } @Override public int addUser(User user) { return userMapper.insert(user); } @Override public int updateUser(User user) { return userMapper.updateById(user); } @Override public int deleteUserById(Long id) { return userMapper.deleteById(id); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值