XML(eXtensible Markup Language)简介
XML 可扩展标记语言
XML是一种您可以用来创建自己的标记的标记语言。
XML由万维网协会(W3C)创建
XML和Html比较
比较内容 HTML XML
可扩展性 不具有扩展性 是元标记言,可用于定义新的标记语言
侧重点 侧重于如何表现信息 侧重于如何结构化地描述信息
语法要求 不要求标记的嵌套、配对等,不 严格要求嵌套、配对,并遵循DTD的树形结构
要求标记之间具有一定的顺序
可读性及可维护性 难于阅读、维护 结构清晰,便于阅读、维护
数据和显示的关系 内容描述与显示方式整合为一体 内容描述与显示方式相分离
编辑及浏览工 已有大量的编辑、浏览工具 编辑、浏览工具
XML优势
数据重用、数据和表示分离、可扩展性、语意信息
XML 声明
<?xml version="1.0" encoding="UTF-8"?>
XML声明一般是XML文档的第一行
XML声明由以下几个部分组成:
version - -文档符合XML1.0规范
encoding - -文档字符编码,默认为"UTF-8"
遵循如下规则的XML文档称为结构完整:
语法规范
1.必须有XML声明语句
2.<?xml version="1.0" encoding=“GBK"?>
3.必须有且仅有一个根元素
4.标记大小写敏感
5.属性值用引号
6.标记成对
7.空标记关闭
8.元素正确嵌套
元素语法
1.名称中可以包含字母、数字或者其它字符
2.名称不能以数字和"_"(下划线)开头
3.不能以XML/xml/Xml/…开头
4.名称中不能含空格
5.名称中不能含冒号(注:冒号留给命名空间使用)
文本内容PCDATA
XML支持Unicde字符集,因此可以在文本中包含字母/数字/标点/符号等。
注意:因为XML使用<,>,和&界定标记,如果在文本中包含有这些字符,必须使用实体替代。
CDATA
1.在特殊的标记CDATA下,所有的标记、实体引用都被忽略,而被XML处理程序一视同仁地当作字符数据看待。CDATA的形式:〈![CDATA[文本内容]]〉
2.用于把整段文本解释为纯字符数据而不是标记的情况。包含大量<、>、&或者"字符。CDATA节中的所有字符都会被当作元素字符数据的常量部分,而不是XML标记。
3.可以输入任意字符(除]]>外)
4.不能嵌套使用CDATA
CDATA与PCDATA
PCDATA是被解析器解析的文本。文本内的标签会被当作标记,实体会被展开。
CDATA是不被解析器解析的文本。文本内的标签不会被当作标记,实体不会被展开。
XML注释
注释内容中不要出现--;
不要把注释放在标记中间;
<Name <!--the name-->>TOM</Name>
注释不能嵌套;
可以在除标记以外的任何地方放注释。
XML属性
1.属性值用双引号(")或单引号(')分隔(如果属性值中有',用"分隔;有",用'分隔)
2.一个元素可以有多个属性,它的基本格式为:<元素名 属性名="属性值">
3.特定的属性名称在同一个元素标记中只能出现一次
4.属性值不能包括<, >, &
XML文档中的属性有两个规则:
1.属性必须有值
2.那些值必须用引号括起。您可以使用单引号,也可以使用双引号,但要始终保持一致。
命名空间---namespace
为XML中的元素设定一个唯一的标识名称
与URI结合来定义一个唯一标识
去除了XML文件中可能存在的元素名重叠的问题
DOCTYPE
文档类型声明,紧跟XML声明之后,包含所有实体声明语法:
<?xml version="1.0"?>
<!DOCTYPE 根元素标记名 [
<!--实体声明-->
]>
实体引用
为了避免把字符数据和标记中需要用到的一些特殊符号相混淆,XML还提供了一些有用的实体引用。
作用:避免重复输入
自定义实体语法:
<!DOCTYPE Book(根元素)[
<!ENTITY chapter1(实体名) "玄幻小说"(实体内容)>
<!ENTITY chapter2 "电影记录">
]>
引用已定义的实体:&实体名;
DTD
内部的 DOCTYPE 声明:
假如 DTD 被包含在您的 XML 源文件中,它应当通过下面的语法包装在一个 DOCTYPE 声明中:
<!DOCTYPE 根元素 [元素声明]>(请在 IE5 以及更高的版本打开,并选择查看源代码):
<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
以上 DTD 解释如下:
!DOCTYPE note (第二行)定义此文档是 note 类型的文档。
!ELEMENT note (第三行)定义 note 元素有四个元素:"to、from、heading,、body"
!ELEMENT to (第四行)定义 to 元素为 "#PCDATA" 类型
!ELEMENT from (第五行)定义 frome 元素为 "#PCDATA" 类型
!ELEMENT heading (第六行)定义 heading 元素为 "#PCDATA" 类型
!ELEMENT body (第七行)定义 body 元素为 "#PCDATA" 类型
外部文档声明:
假如 DTD 位于 XML 源文件的外部,那么它应通过下面的语法被封装在一个 DOCTYPE 定义中:
<!DOCTYPE 根元素 SYSTEM "文件名">这个 XML 文档和上面的 XML 文档相同,但是拥有一个外部的 DTD: (在 IE5 中打开,并选择“查看源代码”命令。)
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
声明一个元素:
在 DTD 中,XML 元素通过元素声明来进行声明。元素声明使用下面的语法:
<!ELEMENT 元素名称 类别>
或者
<!ELEMENT 元素名称 (元素内容)>空元素
空元素通过类别关键词EMPTY进行声明:
<!ELEMENT 元素名称 EMPTY>
只有 PCDATA 的元素通过圆括号中的 #PCDATA 进行声明:
<!ELEMENT 元素名称 (#PCDATA)>
带有任何内容的元素:通过类别关键词 ANY 声明的元素,可包含任何可解析数据的组合
<!ELEMENT 元素名称 ANY>
带有一个或多个子元素的元素通过圆括号中的子元素名进行声明:
<!ELEMENT 元素名称 (子元素名称 1)>
或者
<!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,..)>
当子元素按照由逗号分隔开的序列进行声明时,这些子元素必须按照相同的顺序出现在文档中。在一个完整的声明中,子元素也必须被声明,同时子元素也可拥有子元素。
声明只出现一次的元素:
<!ELEMENT 元素名称 (子元素名称)>
声明最少出现一次的元素:
<!ELEMENT 元素名称 (子元素名称+)>
声明出现零次或多次的元素:
<!ELEMENT 元素名称 (子元素名称*)>
声明出现零次或一次的元素:
<!ELEMENT 元素名称 (子元素名称?)>
声明“非.../既...”类型的内容:
<!ELEMENT note (to,from,header,(message|body))>
上面的例子声明了:"note" 元素必须包含 "to" 元素、"from" 元素、"header" 元素,以及非 "message" 元素既 "body" 元素。
声明混合型的内容:
<!ELEMENT note (#PCDATA|to|from|header|message)*>
上面的例子声明了:"note" 元素可包含出现零次或多次的 PCDATA、"to"、"from"、"header" 或者 "message"。
XML Schema 简介
XML Schema 是基于 XML 的 DTD 替代者。
XML Schema 可描述 XML 文档的结构。
XML Schema 语言也可作为 XSD(XML Schema Definition)来引用。
XML Schema 是 DTD 的继任者
XML Schema 相对于 DTD 的优点如下:
XML Schema 可针对未来的需求进行扩展
XML Schema 更完善,功能更强大
XML Schema 基于 XML 编写
XML Schema 支持数据类型
XML Schema 支持命名空间
下面这个例子是一个名为 "note.xsd" 的 XML Schema 文件,它定义了下面那个 XML 文档的元素:
<?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:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
对 XML Schema 的引用:
<?xml version="1.0"?>
<note
xmlns="http://www.w3school.com.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3school.com.cn note.xsd">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
分享到:
- 2009-04-11 14:24
- 浏览 1141
- 评论(0)
- 论坛回复 / 浏览 (0 / 2230)
- 查看更多
相关推荐
3. J2EE Reference Implementation:提供了参考实现,开发者可以在此基础上开发自己的应用。 4. J2EE BluePrints:提供了最佳实践和设计模式,指导开发者按照J2EE的最佳方式来构建应用。 J2EE包含多种组件和服务...
**J2EE复习知识点概述** J2EE,全称为Java 2 Platform, Enterprise Edition,是Java平台上用于构建企业级分布式应用程序的框架。它提供了一系列的API和服务,支持多层架构,包括Web层、业务逻辑层(EJB)和数据访问...
**Java企业版(J2EE)技术复习指南** Java企业版(J2EE)是Java平台上用于构建分布式、多层企业级应用的框架。它提供了一系列的组件和服务,旨在简化开发、部署和管理大型应用程序的过程。J2EE的复习涵盖了许多关键...
**标题解析:** "J2EE复习积累(四)-Log4J" 指的是一个关于J2EE(Java 2 Platform, Enterprise Edition)技术系列的第四部分,主要聚焦于Log4J,这是一个广泛使用的Java日志框架。Log4J在Java应用中用于记录程序运行...
这个压缩包文件“J2EE复习题答案.doc”显然是为了帮助学习者准备J2EE相关的考试或者进行自我测试而准备的。 J2EE 知识体系广泛,涵盖了许多核心技术,包括: 1. **Servlet**:Servlet 是 Java 编写的服务器端程序...
4. J2EE会话管理:在J2EE中,`HttpServletRequest`对象的`getSession()`方法用于创建或获取用户会话。正确获取session的代码是`HttpSession session = request.getSession();` 5. HTML标签:HTML是HyperText Markup...
本篇复习将深入探讨Struts2的核心概念、架构、主要特性和实际应用。 一、Struts2核心概念 1. 模型(Model):业务逻辑处理部分,通常由JavaBean或EJB实现。 2. 视图(View):负责数据的展示,如HTML、JSP等。 3. ...
【J2EE复习资料(可缩印)1】 J2EE(Java 2 Platform, Enterprise Edition)是一个由Oracle公司主导的Java平台,主要用于构建和部署分布式、基于组件的企业级应用程序。它提供了一个全面的框架,涵盖了从客户端到...
**J2EE复习积累(六)-Hibernate4.2** 在J2EE开发中,Hibernate作为一款流行的ORM(对象关系映射)框架,极大地简化了Java应用程序与数据库之间的交互。本篇复习将聚焦于Hibernate 4.2版本,该版本在前一版本的基础上...
J2EE复习冲刺精简版1主要涵盖了Spring MVC和Struts框架的相关知识,这两个都是Java企业级开发中常用的MVC(Model-View-Controller)架构模式实现。以下是这些知识点的详细说明: **Spring MVC** Spring MVC是Spring...
【J2EE复习积累(五)-Maven3.0.5(二)-简单项目练习】 在Java企业级开发中,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和部署过程。本篇文章主要关注的是Maven 3.0.5版本,这是一个稳定且广泛...
根据提供的文件信息,我们可以整理出以下关于 J2EE 认证复习的重要知识点: ### 1. J2EE 支持的服务组件 - **题目描述**:J2EE 提供多种服务支持,包括但不限于: - A. 全局管理 - C. JNDI - D. HTML - **解析*...
### J2EE大学Java课程复习题解析 #### 一、选择题知识点解析 1. **EJB类库的存在版本** EJB(Enterprise JavaBeans)是J2EE平台的一部分,主要用于构建可重用的企业级组件。它不存在于J2SE(Java 2 Standard ...
**J2EE复习知识点** **一、Struts 2框架** 1. Struts 2框架源于WebWork和XWork框架的合并。 2. Struts 2的核心是过滤器,其利用拦截器机制处理用户请求。 3. 构建Struts 2应用所需的几个基本类库包括:struts2-core...
在web.xml文件中配置Servlet及其映射。 【JSP指令与动作标签】JSP中的指令标签(如page、include、taglib)和动作标签(如)有各自用途。指令标签在编译时处理,`<%@ include %>`将文件插入当前页面,而`...
J2EE 编程技术期末复习题 J2EE 编程技术是 Java Enterprise Edition 的简称,是 Java 语言在企业级应用程序开发中的实现。J2EE technology framework 可分为三部分:组件技术、服务技术、通信技术。 一、填空题 1...
### J2EE SSH框架理论复习 #### 一、基础知识回顾 1. **J2EE(Java 2 Platform, Enterprise Edition)**: - 是一套企业级Java平台的标准,提供了一种构建可伸缩、健壮、高性能的企业应用程序的方法。 - 主要组件...
**J2EE期末考试复习指南** 在准备J2EE(Java 2 Platform, Enterprise Edition)期末考试时,全面理解和掌握其核心概念和技术至关重要。J2EE是Java平台的一个版本,专为开发和部署企业级分布式应用程序而设计。下面...
**J2EE程序设计考试复习资料** 在J2EE(Java 2 Platform, ...综上所述,"J2EE考试复习试题"文档应涵盖这些关键知识点,通过做题和解答,考生可以全面检查自己的学习情况,确保在J2EE程序设计考试中取得优异成绩。