Javaweb02-XML概述

第一章 XML概述

1.XML基本概念

  • 什么是xml?

**a.**引入的原因:为了解决不同不同语言之间的数据传输的格式不同

**b.**概念:XML是一种可扩展标记语言,适用于不同数据之间的数据交换

**c.**XML文档:通过元素的嵌套,可以清晰描述树状结构,因此常常被用作存放相关的配置信息

  • xml与html的区别?

**a.**HTML用于显示数据,XML用于传输和存储数据

**b.**HTML标签不区分大小写,XML标签严格区分大小写

**c.**HTML可以有多个根元素,XML只有一个根元素,且空格不能向HTML一样自动过滤

**d.**HTML中的标签是预定义标签,而XML中的标签是可扩展标签,需要自己定义

2.xml的语法

**a.**文档说明

java 复制代码
<?xml version="" encoding="" standalone="">
说明:
此语句必须放在文档的开头,
version为必须的属性,encoding是用来指定编码集,standalone只有两个值yes,no用来表示此文档是否与外部关联(默认)

**b.**元素定义

java 复制代码
<大学>太原理工大学</大学>
xml文档的元素以树形分层结构排列,一个xml文档有且仅有一个顶层元素
由开始标签,属性,元素内容,结束标签组成

**c.**属性定义

java 复制代码
<大学 位置="太原">太原理工大学</大学>
一个元素可以定义若干属性,每个属性的值必须通过引号来引用

**d.**注释

java 复制代码
<!--注释信息-->

3.DTD约束

DTD约束是一种XML约束模式语言,根据它的语法创建的文件称为DTD文件。

  • DTD约束的引入

1.引入外部DTD约束文件

apl 复制代码
方法一:引入本地的DTD文件
<!DOCTYPE 根元素名称 SYSTEM "外部DTD文件的URI">
外部DTD文件的URI:可以是相对路径,也可以是绝对路径

方法二:引入公用的DTD文件
<!DOCTYPE 根元素名称 PUBLIC "DTD名称" "外部DTD文件的URI">
外部DTD文件的URI:只可以是绝对路径

2.XML内部定义DTD约束文件

apl 复制代码
<!DOCTYPE 根元素名称[DTD定义语句...]>
  • DTD约束的语法

1.元素定义

apl 复制代码
格式:<!ELEMENT 元素名称 元素内容>
元素内容:
1.#PCDATA   元素中嵌套的内容为文本字符串 
2.(元素名1,元素名2,元素名3)   子元素
3.EMPTY   空元素
4.ANY   任何元素
5.混合元素
问号[?]:表示该对象可以出现0次或1次。
星号[*]:表示该对象可以出现0次或多次。
加号[+]:表示该对象可以出现1次或多次。
竖线[|]:表示列出的对象中选择1个。
逗号[,]:表示对象必须按照指定的顺序出现。
括号[()]:用于给元素进行分组。

2.属性定义

apl 复制代码
//格式:
<!ATTLIST 元素名
	属性名1  属性类型  设置说明
	属性名2  属性类型  设置说明
>

//设置说明:
1.#REQUIRED:表示元素的该属性是必须的
2.#IMPLIED: 表示元素可以包含该属性,也可以不包含该属性
3.#FIXED:表示一个固定的属性默认值,在XML文档中不能将该属性设置为其他值
4.默认值:该属性的值是可以改变的

//属性类型:
1. CDATA:属性类型为字符类型
2. 枚举类型:(属性值1|属性值2|属性值3)可限制属性值取一个
3. ID类型:唯一标识XML中的元素,它的设置说明只可以是#REQUIRED,#IMPLIED
4. IDREF:表示一对一关系
5. IDREFS:表示一对多的关系

4.Schema约束

XML Schema是一种用于定义和描述XML文档结构与内容的模式语言(.xsd)

  • Schema约束支持名称空间

1.名称空间的定义

apl 复制代码
一个XML文档可以引入多个约束文档,但是,由于约束文档中的元素或属性都是自定义的,所以在XML文档中,极有可能出现代表不同含义的同名元素或属性,导致名称发生冲突。为此,在XML文档中,提供了名称空间,它可以唯一标识一个元素或者属性

2.名称空间的引入

apl 复制代码
<元素名 xmlns:prefixname="URI">
注意:基本名称空间它们是xml和xmlns不可以做prefixname
  • Schema约束的引入

1.使用名称空间引入XML Schema文档

apl 复制代码
需要通过属性xsi:schemaLocation来声明名称空间的文档xsi:schemaLocation属性是在标准名称空间"http://www.w3.org/2001/XMLSchema-instance"中定义的,在该属性中,包含了两个URI,这两个URI之间用空白符分隔。其中,第一个URI是名称空间的名称,第二个URI是文档的位置。
示范:
<元素名 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="Schema文件名 Schema文件路径">

2.通过xsi:noNamespaceSchemaLocation属性直接指定

apl 复制代码
通过xsi:noNamespaceSchemaLocation属性直接指定,它是在标准名称空间"http://www.w3.org/2001/XMLSchema-instance"中定义的,它用于定义指定文档的位置。
示范:
<元素名 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="Schema文件路径">
  • Schema约束的语法

1.元素定义

apl 复制代码
<xs:element name="名称" type="类型"/>

2.属性定义

apl 复制代码
<xs:attribute name="xxx" type="yyy"/>

3.简单类型

在XML Schema文档中,只包含字符数据的元素都是简单类型的。

xml 复制代码
<xs:element name="age">
<xs:simpleType>
  <xs:restriction base="xs:integer">
	...限制条件
  </xs:restriction>
</xs:simpleType>
</xs:element> 
xml 复制代码
1.对元素的值的大小的限制
<xs:element name="age">
<xs:simpleType>
  <xs:restriction base="xs:integer">
    <xs:minInclusive value="18"/>
    <xs:maxInclusive value="58"/>
  </xs:restriction>
</xs:simpleType>
</xs:element> 

2.对元素的设置枚举类型
<xs:element name="car">
<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:enumeration value="Audi"/>
    <xs:enumeration value="Golf"/>
    <xs:enumeration value="BMW"/>
  </xs:restriction>
</xs:simpleType>
</xs:element> 

3.对元素一系列值的设置
<xs:element name="letter">
<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:pattern value="[a-z]"/>
  </xs:restriction>
</xs:simpleType>
</xs:element> 

4.对元素空白字符的限定
<xs:element name="address">
<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:whiteSpace value="preserve"/>
  </xs:restriction>
</xs:simpleType>
</xs:element> 
whiteSpace元素有三个属性值可以设定,分别是preserve、replace和collapse。其中,preserve表示不对元素中的任何空白字符进行处理,replace表示移除所有的空白字符,collapse表示将所有的空白字符缩减为一个单一字符。

4.复杂类型

在定义复杂类型时,需要使用xs:complexType元素来定义。复杂类型的元素可以包含子元素和属性,这样的元素称为复合元素。

1.定义属性和子元素

xml 复制代码
<xs:element name="">
  <xs:complexType>
    <xs:attribute name="" type=""/>
      
    <xs:element name="" type=""/>
    <xs:element name="" type=""/>

  </xs:complexType>
</xs:element>

2.包含字符数据

对于仅含文本的复合元素,需要使用"simpleContent"元素添加内容。在使用简易内容时,必须在"simpleContent"元素内定义扩展或限定,这时,需要使用"extension"或"restriction"元素来扩展或限制元素的基本简易类型

xml 复制代码
<xs:element name="">
  <xs:complexType mixed="true">//表示可以和字符元素混合使用
    <xs:simpleContent>
      <xs:extension base="xs:integer">
        <xs:attribute name="" type="" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
</xs:element>
相关推荐
Echo flower几秒前
mybatis-plus自动填充时间的配置类实现
java·数据库·mybatis
秋夫人17 分钟前
IntelliJ IDEA 中 Editor > General > Appearance 设置:编辑器的视觉外观和行为
java·编辑器·intellij-idea
Zilliz Planet31 分钟前
Milvus×EasyAi:如何用java从零搭建人脸识别应用
java·开发语言·milvus
天天进步201537 分钟前
Java全栈项目 - 汽车维修服务管理平台
java·开发语言·汽车
虾球xz1 小时前
游戏引擎学习第61天
java·学习·游戏引擎
CodeClimb1 小时前
【华为OD-E卷-租车骑绿道 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od
梓沂1 小时前
idea配置gitee仓库
java·gitee·intellij-idea
CodeClimb1 小时前
【华为OD-E卷-MVP争夺战 100分(python、java、c++、js、c)】
java·python·华为od
大大怪将军~~~~1 小时前
SpringBoot 入门
java·spring boot·后端
编码浪子1 小时前
Springboot3国际化
java·spring·mybatis