【XML】XML入门

什么是XML

eXtensive Markup Language,可扩展标记语言

元语言,用来定义其它语言的语言

XML能干什么

作为数据载体:存放具有一定结构的数据。ep:天气预报,气象局将测量汇总到的各种信息用XML文档发布在网上,之后想要显示这些信息的公司就可以去调用这些XML文档

作为配置文件:增加程序的灵活性。在JavaEE中,可以避免硬编程。ep:数据库连接

<?xml version="1.0" encoding="UTF-8"?> <!-- 处理指令,指定了XML版本以及字符编码 -->
<courses> <!-- 开始标签/根元素 -->
	<course> <!-- 子元素 -->
		<!-- 信息,显示正文内容 -->
		<course_name>Linux</course_name>
		<teacher_name>Robin</teacher_name>
		<time_duration>2 days</time_duration>
	</course>
	<course> 
		<course_name>Java</course_name>
		<teacher_name>Robin</teacher_name>
		<time_duration>22 days</time_duration>
	</course>
</courses> <!-- 结束标签 -->

XML语法(良构的xml)

1、第一行写xml处理指令:<?  ?>

standalone="yes/no"代表该文件是否独立

2、有且只能有一个根元素

3、元素的规则

3.1 开始、结束标签配对出现

3.2 开始标签中可以包含属性

3.3 可以出现空元素

<briup></briup>  <==>  <briup />

元素内可跟的内容:

 a)子元素

<briup>
	<name></name>
</briup>

b)文本内容

<briup>Test</briup>

c)空                         

<briup></briup>   <briup/>

注意:空格、制表符、换行等都不是空

d)混合内容

<briup>
	Test
	<name></name>
</briup>

3.4 不能交叉嵌套

<a><b><c></a></b></c>  //error
<a><b><c></c></b></a>

4、命名规则

Java命名规则:

  • 以字母、_、$开始
  • 后可跟字母、数字、_、$
  • 大小写敏感
  • 不能使用保留字
  • 没有长度限制

Xml命名规则:

  • 以字母、_开始
  • 后可以跟字母、数字、-、.、_
  • 大小写敏感
  • 不能使用保留字
  • 没有长度限制

注意:

  • 命名尽量表达出其含义
  • 名字有多个单词组成,可以使用驼峰标识法,或将多个单词用_隔开
<studentName><studentName>
<student_name></student_name>

5、属性规则

  • key=value配对出现,属性,属性值
  • 属性只能出现在开始标签中,同一开始标签中可以出现多个属性,但属性不能重名
  • 属性必须要有值,而且值必须用双引号或单引号引起来
<?xml version="1.0" encoding="UTF-8"?>
<courses>
	<course id="100">
		<teacher_name>Robin</teacher_name>
		<course_name>Unix</course_name>
		<time_duration>3</time_duration>
                <content>
                        <chapter>hello</chapter>
                        hello world!
                </content>
	</course>
	<course id="101">
		<course_name>Corejava</course_name>
		<teacher_name>Robin</teacher_name>
		<time_duration>15</time_duration>
                <content />
	</course>
</courses>

注释

<!-- 这是xml中的一个注释,可以是一行,也可以是多行 -->
<!--
     多行注释
-->

PCDATA,CDATA,实体

PCDATA(Parsed Character Data)

可以被xml文档解析器解析的字符数据,但有些字符需要借助实体才可以被解析器解析,比如 <

<!-- 用实体 &lt; 代替 < -->
<code>
        if(a &lt; b) {
                System.out.pirntln("hello");
        }
</code>

CDATA(Character Data)

不可以被xml文档解析器解析的字符数据,按字符内容原样输出。

格式:<![CDATA[需要原样输出的字符串]]>

<code>
	<![CDATA[
		if(a < b) {
			System.out.println("hello");
		}
	]]>
</code>

实体的使用

格式:&实体名;

自定义实体

格式:
<!DOCTYPE courses[
	<!ENTITY 实体名 实体内容>
]>


<!DOCTYPE courses[
	<!ENTITY company "昆山杰普软件科技有限公司">
]>

有效的XML

满足XML的语法规则,还要满足DTD或XML Schema的限制

有效的XML一定是良构的XML,但良构的XML不一定是有效的XML

HTML和XML之间的区别

  • HTML标签是预先定义的,而XML中的标签我们可以自行定义
  • HTML主要关注文档内容的显示,而XML主要关注文档内容的结构、语义
  • HTML语法检查不严格,而XML语法检查严格
  • 都是标记语言,都是自SGML发展而来,都是W3C维护的国际标准
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值