1.什么是DTD?
文档类型定义 (document type definition) (约束)
2.什么是XML?
HTML:超文本标记语言
XML:可扩展标记语言
3.XML的两种文档约束
DTD和Schema
4.XML格式要求(合法XML)
1)有且只有一个根节点;
2)由开始标签和结束标签组成;
3)XML标签区分大小写;
4)正确嵌套标签;
5)使用合法的标签名,不能使用特殊符号;
6)定义有效的属性;
<!DOCTYPE persons[
<!ELEMENT persons (person+) >
<!ELEMENT person (name,age,contact,br?) >
<!ELEMENT name (#PCDATA) >
<!ELEMENT age (#PCDATA) >
<!ELEMENT contact (phone | mail) >
<!ELEMENT phone (#PCDATA) >
<!ELEMENT mail (#PCDATA) >
<!ELEMENT br EMPTY >
<!ATTLIST person
pid ID #REQUIRED
sex (男|女) "男"
qq CDATA #IMPLIED
parent IDREF #IMPLIED
>
]>
<persons>
<person pid="p1" sex="男" qq="aaa" parent="p2">
<name>张小明</name>
<age>10</age>
<contact>
<phone>1234567</phone>
</contact>
<br/>
</person>
<person pid="p2">
<name>张大明</name>
<age>35</age>
<contact>
<email>[email protected]</email>
</contact>
</person>
</persons>
5.使用DTD
5.1 在XML中加入DTD申明
1)内部申明:<!DOCTYPE root[]>
2)外部申明:<!DOCTYPE 文档根节点 SYSTEM(PUBLIC) “DTD文件名”>
5.2 元素定义语法(DTD对元素的限制)
基本语法:<!ELEMENT 元素名称 元素类型 >
元素分类:EMPTY 空元素 <br/>
文本元素
(e1,e2) 混合元素
元素限制:,(顺序)、|(或,多选一)、?(0或1次),*(1*0=0,0次或多次), +(1+0=1,1次或多次)
5.3 属性定义语法(DTD对属性的限制)
基本语法:<!ATTLIST 元素名称 属性名称 属性类型 设置说明>
属性类型:ID/CDATA/ENUM (男|女) "男" IDREF
设置说明:#REQUIRED(必须)/#IMPLIED(可选)
5.4 特殊符号转义
&(逻辑与) --> &
>(大于) --> >
<(小于) --> <
‘(单引号) --> '
“(双引号) --> "
yml文件
#端口和项目路径配置 server: port: 8083 servlet: context-path: /s02 #数据库连接池druid配置 spring: datasource: #1.JDBC type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/t229?useUnicode=true&characterEncoding=utf8 username: root password: password druid: #2.连接池配置 #初始化连接池的连接数量 大小,最小,最大 initial-size: 5 min-idle: 5 max-active: 20 #配置获取连接等待超时的时间 max-wait: 60000 #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 time-between-eviction-runs-millis: 60000 # 配置一个连接在池中最小生存的时间,单位是毫秒 min-evictable-idle-time-millis: 30000 validation-query: SELECT 1 FROM DUAL test-while-idle: true test-on-borrow: true test-on-return: false # 是否缓存preparedStatement,也就是PSCache 官方建议MySQL下建议关闭 个人建议如果想用SQL防火墙 建议打开 pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 20 # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 filter: stat: merge-sql: true slow-sql-millis: 5000 #3.基础监控配置 web-stat-filter: enabled: true url-pattern: /* #设置不统计哪些URL exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" session-stat-enable: true session-stat-max-count: 100 stat-view-servlet: enabled: true url-pattern: /druid/* reset-enable: true #设置监控页面的登录名和密码 login-username: admin login-password: admin allow: 127.0.0.1 #mybatis配置 mybatis: mapper-locations: classpath:mapper/*.xml type-aliases-package: com.zking.springboottest.model configuration: map-underscore-to-camel-case: true #deny: 192.168.1.100 #pagehelper分页插件配置 #pagehelper: # helperDialect: mysql # reasonable: true # supportMethodsArguments: true # params: count=countSql #显示日志 #logging: # level: # com.zking.springboot01.mapper: debug
DTD基本结构图