XML总结
程序员文章站
2022-06-28 12:13:34
文章目录一、简介二、语法三、DTD1.简介2.语法四、Schema1.简介2.语法五、常见XML文件头一、简介XML指可扩展标记语言(EXtensible Markup Language),设计宗旨是传输和存储数据,没有预定义标签。二、语法所有XML元素都必须有关闭标签;XML标签对大小写敏感;XML文档必须有根元素(根元素是所有其他元素的父元素);XML的属性值必须加上引号;注意实体引用三、DTD1.简介DTD全称文档类型定义(Documnet Type Definition),...
一、简介
XML指可扩展标记语言(EXtensible Markup Language),设计宗旨是传输和存储数据,没有预定义标签。
二、语法
所有XML元素都必须有关闭标签;
XML标签对大小写敏感;
XML文档必须有根元素(根元素是所有其他元素的父元素);
XML的属性值必须加上引号;
注意实体引用
三、DTD
1.简介
DTD全称文档类型定义(Documnet Type Definition),用来定义合法的XML文档的结构,可以在XML文档中声明,也可以在外部声明,在XML中引用。
<!-- 内部声明 -->
<!DOCTYPE 根元素 [元素声明]>
<!-- 外部声明 -->
<!DOCTYPE 根元素 SYSTEM "URL"> <!-- 私有DTD -->
<!DOCTYPE 根元素 PUBLIC "公共名称" "URL"> <!-- 公共DTD -->
<!--
公共名称格式 "注册//组织//类型 标签//语言"
注册指组织是否由国际化标准组织(ISO)注册,+代表是,-代表不是;
组织指组织的名称;
类型一般是DTD;
标签指公开文本的唯一性描述,可附带版本号;
语言指语言标识符,EN代表英文,ZN代表中文。
-->
2.语法
声明元素
<!-- 声明一个元素 -->
<!ELEMENT 元素名称 类别>
<!-- 或者 -->
<!ELEMENT 元素名称 (元素内容)>
<!-- 空元素 -->
<!ELEMENT 元素名称 EMPTY> <!-- <!ELEMENT br EMPTY> <br /> -->
<!-- 只有PCDATA的元素 -->
<!ELEMENT 元素名称 (#PCDATA)>
<!-- 带有任何类型的元素 -->
<!ELEMENT 元素名称 ANY)>
<!-- 带有子元素的元素 -->
<!ELEMENT 元素名称 (子元素1,子元素2,子元素3))> <!-- 子元素必须按照相应的顺序出现在文档中,而且子元素也必须声明 -->
<!-- 声明只出现一次的元素 -->
<!ELEMENT 元素名称 (子元素))>
<!-- 声明最少出现一次的元素 -->
<!ELEMENT 元素名称 (子元素+))>
<!-- 声明出现零次或多次的元素 -->
<!ELEMENT 元素名称 (子元素*))>
<!-- 声明出现零次或一次的元素 -->
<!ELEMENT 元素名称 (子元素?))>
声明属性
<!ATTLIST 元素名称 属性名称 属性类型 默认值>
<!-- <!ATTLIST payment type CDATA "check"> -->
<!-- <payment type="check" /> -->
声明实体
<!-- 内部实体声明 -->
<!ENTITY 实体名称 "实体值">
<!-- <!ENTITY writer "Bill Gates"> -->
<!-- <author>&writer;</author> -->
<!-- 一个实体由 & 实体名称 ; 组成 -->
<!-- 外部实体声明 -->
<!ENTITY 实体名称 SYSTEM "URL">
<!-- <!ENTITY writer SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd"> -->
<!-- <author>&writer;</author> -->
四、Schema
1.简介
XML Schema是DTD的继承者,支持数据类型,支持命名空间,使用XML语法。
2.语法
schema元素是每一个XML Schema元素的根元素
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3school.com.cn"
xmlns="http://www.w3school.com.cn"
elementFormDefault="qualified">
...
...
</xs:schema>
<!--
xmlns:xs="xxx"代表使用的元素和数据类型所使用的命名空间,以及来自该命名空间的元素和数据类型必须使用的前缀xs;
targetNamespace="xxx"代表该文件定义的元素的命名空间;
xmlns="xxx"代表默认的命名空间;
elementFormDefault="xxx"代表默认的元素命名空间的格式
-->
简单类型
<!-- 定义简易元素(只包含文本,不会包含任何其他元素或者属性) -->
<xs:element name="xxx" type="yyy" />
<!--
数据类型有
- xs:string
- xs:decimal
- xs:integer
- xs:boolean
- xs:date
- xs:time
-->
<!-- 简易元素的默认值 -->
<xs:element name="xxx" type="yyy" default="zzz" />
<!-- 简易元素的固定值 -->
<xs:element name="xxx" type="yyy" fixed="zzz" />
<!-- 定义属性 -->
<xs:attribute name="xxx" type="yyy" />
<!-- 属性的默认值 -->
<xs:attribute name="xxx" type="yyy" default="zzz" />
<!-- 属性的固定值 -->
<xs:attribute name="xxx" type="yyy" fixed="zzz" />
<!-- 默认属性可选,可设置属性必选 -->
<xs:attribute name="xxx" type="yyy" use="required" />
<!-- 声明限定,在元素或属性中引用 -->
<xs:element name="zzz" type="xxx" />
<xs:simpleType name="xxx">
<xs:restriction base="yyy">
...
</xs:restriction>
</xs:simpleType>
<!-- 在声明元素或者属性里声明限定 -->
<xs:element name="xxx">
<xs:simpleType>
<xs:restriction base="yyy">
...
</xs:restriction>
</xs:simpleType>
</xs:element>
复杂的类型
复合元素指包含其他元素或属性的元素。
<!-- 嵌套声明 -->
<xs:element name="xxx">
<xs:complexType>
...
</xs:complexType>
</xs:element>
<!-- 通过引用声明 -->
<xs:element name="xxx" type="yyy" />
<xs:complexType name="yyy">
...
</xs:complexType>
<!--
指示器
Order指示器(用于定义元素的顺序)
- All(子元素可按照任意顺序出现,且每个子元素必须最多出现一次)
- Sequence(子元素必须按照顺序出现)
- Choice(子元素只可出现其中一个)
Occurrence指示器(用于定义元素出现的频率,默认值均为1)
- maxOccurs(元素出现的最大次数)
- minOccurs(元素出现的最小次数)
Group指示器(用于定于元素组或属性组)
- Group name
- attributeGroup name
-->
<!--
any元素,可以匹配任何已声明的元素;
anyAttribute,可以匹配任何已声明的属性
-->
<!--
元素替换
substitutionGroup可替换主元素name
-->
五、常见XML文件头
Mybatis generatorConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
本文地址:https://blog.csdn.net/qq_35857125/article/details/109243357
下一篇: 光影魔术手怎么给照片添加日式小清新效果?