欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

XML总结

程序员文章站 2022-04-10 16:38:18
文章目录一、简介二、语法三、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的属性值必须加上引号;
注意实体引用
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" /> -->

XML总结
声明实体

<!-- 内部实体声明 -->
<!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>

XML总结
复杂的类型
复合元素指包含其他元素或属性的元素。

<!-- 嵌套声明 -->
<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