XML

本文介绍了XML的基础知识,包括其定义、使用方法以及与HTML的区别。进一步详细讲解了DTD和Schema的概念及其如何用于规范XML文档结构,并对比了两者之间的不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                  


一.XML

  【定义】

            是一种用于标记电子文件使其具有结构性的标记语言,称为可扩展标记语言

  【使用】

1.声明:在文件头声明 <?xml version="1.0" encoding="utf-8">

2.内容

元素:

a>标签、文本(空元素)

b>有且只有一个跟元素

c>区域大小写

d>属性值用“”引起来

e>结构:树状结构

f>实体应用:当文本中出校特殊符号时,我们要使用实体应用,比如当输入书名号《》,如果直接写的话,可能就会与标签<>冲突,这时我们可以用实体来显示&lt;&lt;还有另外一种方法用CDATA,形式未<CDATA[要书写的文本]>,这时系统会自动将符号解析为符号,不会发生冲突

格式:形式良好的XML,即符合上面元素的规范

二.与 HTML的区别

                                         

三.XML文档类型定义

       在生活中,人类有一定的行为规范,比如过马路,不能闯红路灯,在中国,靠右形式。同样,XML文件也有一定的书写规范,那么谁来制约它那,出现了两个新的概念:DTD和schema

【DTD】

1.声明元素

a>内部

b>外部

<!ELEMENT 元素名(子元素)*>
<!ELEMENT 子元素名(子元素1,子元素2)>
<!ElEMENT 子元素名1 (#PCDATA)> <!--说明是最后一级目录-->
<!ELEMENT 子元素名2 EMPTY> <!--空元素->

XML引用DTD:

<!DOCTYPE 元素名 SYSTEM "book.dtd">

c>要验证XML是否符合DTD,要对XML解析

DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
dbf.setValidating(true); 
DocumentBuilder builder =dbf.newDocumentBuilder();
builder.parse(new InputSource("XML文件名")); 	

d>元素出现的次数

一次:

<!ELEMENT 元素名 (子元素名)>
至少一次:
<!ELEMENT 元素名 (子元素名+)>
零次或多次:
<!ELEMENT 元素名 (子元素名*)>
零次或一次:
<!ELEMENT 元素名 (子元素名?)>
或:
<!ELEMENT 元素名 (子元素名1|子元素名2)>
且:
<!ELEMENT 元素名 (子元素名1,子元素名2)>
混合:
<!ELEMENT 子元素名 (#PCDATA|子元素名)>
()表示一组

2.实体声明(要写在DTD中)

a>内置

<!ENTITY writer "shuang">

b>外部

3.声明属性(属性属于某一元素)

a>声明样式:

<!ATTLIST 元素名 属性名 属性值类别 属性值>

b>属性类别:CDATA(字符数据)、(en1|en2|..)(枚举类型).、ID(值为唯一的id)等等

c>属性的默认值:

默认值
#REQUIRED属性值是必须的
#IMPLIED属性不是必需的、隐含的
#FIXED VALUE属性值是固定的

d>在XML中属性值的书写

<元素名 属性名=“属性值”>文本内容</元素名>

即使属性值是固定的,也得声明,只不过属性值要写在DTD中声明的属性值

【schema】

1.声明

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <!--命名空间,前缀是xs-->
	<xs:element name="email">
		<xs:complexType> <!--说明元素复杂有多个  -->
			<xs:sequence> <!-- 元素严格按顺序排列 -->
				<xs:element name="to" type="xs:string"></xs:element>
				<xs:element name="date" type="xs:date"></xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</schema>

2.XML中引用Schema

<?xml version="1.0" encoding="UTF-8"?>
<email xmlns:xsi="http://www.w3.org/2001/XMLSchema" 
	xsi:noNamespaceSchemaLocation="email.xsd"> <!--文件名,应用哪个Schema-->
	<!-- 引用schema -->
	<to>s</to>
	<date>2017/5/24</date>
</email>

【Schema与DTD的不同】

1.Schema基于XML编写,而DTD不是基于XML的

2.因为Schema基于XML编写,所以更容易扩展

3.Schema支持数据类型type,所以可保护数据通信

4.是DTD的继承者

5.一个文档中可重用多个Schema

注:IE不能识别DTD和Schema,只要XML是样式良好的XML,IE就能运行,要验证XML是否符合DTD或Schema,可以在MyEclipse.exe来运行




评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值