阿里云Java学习路线 - XML快速入门 笔记

学习链接

第一章 XML入门

1、XML简介

  • eXtensible Markup Language 可扩展标记型语言
  • 标记型语言:html等也是使用标签来操作
  • 可扩展:标签可以自己定义,可以写中文的标签
    html里面的标签是固定的,每个标签都有特定的含义
  • xml用途:html用于显示数据,xml也可以显示数据(不是主要功能),主要功能是存储数据
  • xml是w3c组织发布的技术
  • 两个版本:1.0和1.1,1.1不能向下兼容,当前使用版本1.0

2、XML的应用

  • 不同系统间传输数据:发送/接收内容的格式,利于程序的维护
  • 用来表示生活中有关系的数据:例如:国家-省-城市-区
  • 经常用在配置文件中:数据库的用户、密码、数据名等,不用放在源代码中

3、XML的文档声明

  • 创建文件的后缀名为.xml
  • 必须要有文档声明,表示xml文件的内容,写在第一行
<?xml version="1.0" encoding="gbk">
  • 属性:
    version:xml的版本 1.0(使用) 1.1
    encoding:xml编码 gbk utf-8 iso8859-1(不包含中文)
    standalone:是否需要依赖其他文件 yes/no

4、XML中文乱码问题解决

<?xml version="1.0" encoding="utf-8">
<person>
	<name>张三</name>
	<age>20<age>
</person>
  • 文件中使用了中文,描述编码为utf-8,保存文件时编码选系统默认(gbk),“张三”以gbk的二进制编码保存,浏览器打开使用了设置的编码utf-8,找不到对应的中文编码,导致出现乱码
  • 解决方法:保存的编码和设置的编码一致就不会出现乱码

5、XML元素定义

  • 元素(标签)定义
  • 有开始,有结束
<person>
</person>
  • 标签没有内容时可以在标签内结束
<person/>
  • 标签可以嵌套,但必须合理
<!--合理嵌套-->
<aa><bb></bb></aa>
<!--不合理嵌套-->
<aa><bb></aa></bb>
  • 一个XML文档有且仅有一个根标签,其他标签都是这个标签下的标签
  • 在XML标签中出现的空格和换行,XML解析出现都会当做标签内容进行处理
<!--两段代码含义不同-->
<aa>111111</aa>

<aa>
	111111
</aa>
  • XML中标签的命名规则

(1)xml代码区分大小写

<p><P>是两个不同的标签

(2)标签名称不能以数字和下划线开头

<2a><_aa>都不正确

(3)标签不能以xml、XML、Xml等开头

<xmla><xmlb><Xmlc>都不正确

(4)标签中不能包含空格和冒号

<a b><b:c>都不正确

(5)标签可以是中文

6、XML属性定义

  • html是标记型文档,可以有属性;xml也是标记型文档,可以有属性
<person id1="aaa"></person>
  • (1)一个标签上可以有多个属性
<person id1="aaa" id2="bbb"></person>
  • (2)属性名称不能相同
<person id1="aaa" id1="bbb"></person>这是不正确的
  • (3)属性名称和属性值之间使用=,属性值使用引号包起来(可以是单引号、双引号)
  • (4)属性命名规范和元素(标签)命名规范相同

7、XML 注释

  • 写法 :和html相同、CSDN博客的注释也是这个格式
<!--注释内容-->
  • 注释不能嵌套
  • 注释也不能放在xml文档第一行,必须放声明

8、XML特殊字符

  • 如果要在标签中显示a<b等包含特殊字符的内容,需要对特殊字符进行转义
< &lt;
> &gt;
& &amp;
" &quot;
' &apos;
  • 可以观察到转义符号都包含&和;
    不可省略

9、XML的CDATA区

  • 包含特殊字符的内容需要频繁使用转义时,可以把这些内容放到CDATA区
  • 写法
<![CDATA[内容]]>
  • 相当于把这些内容当做普通文本显示

10、XML的PI指令(处理指令)

  • 可以在xml中设置样式
  • 写法
<?xml version="1.0" encoding="utf-8">
<?xml-stylesheet type="text/css" herf="css文件路径"?>
<person>
	<name>zhangsan</name>
	<age>20</age>
</person>
  • css文件
name {
	background-color:red;
}
age {
	background-color:greem;
}
  • 设置样式只能对英文标签名称起作用,对中文标签名称不起作用。
  • 一般css不做显示,多做数据传输,用处较少。

11、XML 约束简介

  • 为什么需要约束?
    假如定义一个person的xml文件,只想文件保存人的信息,但如果在xml文件中写了<猫>的标签,可以正常显示,因为符合语法规范,xml的标签是自定义的,需要技术来规定xml中只能出现的元素,这个时候需要约束。
  • XML的约束技术:dtd约束 和 schema约束

第二章 DTD(文档类型定义)

1、DTD快速入门

  • 创建一个文件,后缀名为.dtd
  • 步骤:

(1)看XML中有多少个元素,有几个元素,在dtd文件中写几个<!ELEMENT>
(2)判断元素是简单元素还是复杂元素:

  • 简单元素:没有子元素 <!ELEMENT 元素名称 (#PCDATA)>
  • 复杂元素:有子元素 <!ELEMENT 元素名称(子元素)>
1.dtd
<!ELEMENT person (name,age)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>

(3) 在XML文件中引入dtd文件

<!DOCTYPE 根元素名称 SYSTEM "dtd文件路径">
<!DOCTYPE person SYSTEM "1.dtd">
  • 在xml文件中加入新的元素,用浏览器打开,可以显示,因为浏览器只负责校验xml的语法,不负责校验约束
  • 如果想要校验xml的约束,需要使用工具(myeclipse)
    在myeclipse中创建一个java工程
  • src下new一个xml(Basic Templates)1.xml
<?xml version="1.0" encoding="utf-8">
<!DOCTYPE person SYSTEM "1.dtd">
<person>
	<name>zhangsan</name>
	<age>20</age>
</person>
  • src下new一个dtd 1.dtd
<!ELEMENT person (name,age)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
  • 在xml文件中加入新的不再dtd中约束的元素时会报错

2、DTD的三种引入方式

(1)引入外部的dtd文件

<!DOCTYPE 根元素名称 SYSTEM "dtd文件路径">

(2)引入(使用)内部的dtd文件

<!DOCTYPE 根元素名称 [
	<!ELEMENT person (name,age)>
	<!ELEMENT name (#PCDATA)>
	<!ELEMENT age (#PCDATA)>
]>

(3)使用外部的dtd文件

<!DOCTYPE 根元素名称 PUBLIC "DTD名称" "DTD文档的URL">
发布了13 篇原创文章 · 获赞 2 · 访问量 519

猜你喜欢

转载自blog.csdn.net/qq_41103187/article/details/105651456