网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > JSP > 正文
J2EE复习(二)XML(上)
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/11/27
下载{$ArticleTitle}原创论文样式

  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 根元素 [元素声明]>带有 DTD 的 XML 文档实例(请在 IE5 以及更高的版本打开,并选择查看源代码):

 1<?xml version="1.0"?>
 2<!DOCTYPE note [
 3  <!ELEMENT note (to,from,heading,body)>
 4  <!ELEMENT to      (#PCDATA)>
 5  <!ELEMENT from    (#PCDATA)>
 6  <!ELEMENT heading (#PCDATA)>
 7  <!ELEMENT body    (#PCDATA)>
 8]>
 9<note>
10  <to>George</to>
11  <from>John</from>
12  <heading>Reminder</heading>
13  <body>Don't forget the meeting!</body>
14</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 中打开,并选择“查看源代码”命令。)

1<?xml version="1.0"?>
2<!DOCTYPE note SYSTEM "note.dtd">
3<note>
4<to>George</to>
5<from>John</from>
6<heading>Reminder</heading>
7<body>Don't forget the meeting!</body>
8</note>

  声明一个元素:

  在 DTD 中,XML 元素通过元素声明来进行声明。元素声明使用下面的语法:

<!ELEMENT 元素名称 类别>

  或者

<!ELEMENT 元素名称 (元素内容)>空元素

  空元素通过类别关键词EMPTY进行声明:

<!ELEMENT 元素名称 EMPTY>

  只有 PCDATA 的元素:

  只有 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 文档的元素:

 1J2EE复习(二)XML(上)<?xml version="1.0"?>
 2J2EE复习(二)XML(上)<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
 3J2EE复习(二)XML(上)targetNamespace="http://www.w3school.com.cn"
 4J2EE复习(二)XML(上)xmlns="http://www.w3school.com.cn"
 5J2EE复习(二)XML(上)elementFormDefault="qualified">
 6J2EE复习(二)XML(上)<xs:element name="note">
 7J2EE复习(二)XML(上)    <xs:complexType>
 8J2EE复习(二)XML(上)      <xs:sequence>
 9J2EE复习(二)XML(上) <xs:element name="to" type="xs:string"/>
10J2EE复习(二)XML(上) <xs:element name="from" type="xs:string"/>
11J2EE复习(二)XML(上) <xs:element name="heading" type="xs:string"/>
12J2EE复习(二)XML(上) <xs:element name="body" type="xs:string"/>
13J2EE复习(二)XML(上)      </xs:sequence>
14J2EE复习(二)XML(上)    </xs:complexType>
15J2EE复习(二)XML(上)</xs:element>
16J2EE复习(二)XML(上)
17J2EE复习(二)XML(上)</xs:schema>

  对 XML Schema 的引用

  此文件包含对 XML Schema 的引用:

 1J2EE复习(二)XML(上)<?xml version="1.0"?>
 2J2EE复习(二)XML(上)<note
 3J2EE复习(二)XML(上)xmlns="http://www.w3school.com.cn"
 4J2EE复习(二)XML(上)xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5J2EE复习(二)XML(上)xsi:schemaLocation="http://www.w3school.com.cn note.xsd">
 6J2EE复习(二)XML(上)
 7J2EE复习(二)XML(上)<to>George</to>
 8J2EE复习(二)XML(上)<from>John</from>
 9J2EE复习(二)XML(上)<heading>Reminder</heading>
10J2EE复习(二)XML(上)<body>Don't forget the meeting!</body>
11J2EE复习(二)XML(上)</note> 

  系列文章:

  J2EE复习(一)HTML

  J2EE复习(二)XML(下)--xml解析

(责任编辑:admin)

  • 上一篇资讯: J2EE复习(一)HTML
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号