`
阅读更多

1 . XML DTD —— XML 入门知识

1.1 为什么要学习xml

XML 发展的非常迅速,这实在令人感到惊奇,有很多的软件开发商都采用了 XML 标准。我们相信,在未来的 Web 开发中, XML 将和 HTML 一样受到重视,他们都是 Web 技术的基础。就连无线标记语言 (WML The Wireless Markup Language ), [ 用于标识运行于手持设备上(比如:手机)的 Internet 程序 ] WML 都采用了 XML 的标准。 XML 将成为最普遍的数据操纵和数据传输的工具。

1.2 什么是XML

XML EXtensible Markup Language 的缩写。

XML 使用文档类型定义( DTD )或者模式( Schema )来描述数据

XML 使用 DTD 或者 Schema 后就是自描述的语言

1.3 XML HTML的主要区别

XML 是被设计用来描述数据的,重点是:什么是数据,如何存放数据。
HTML
是被设计用来显示数据的,重点是:显示数据以及如何显示数据更好上面。

他们在格式上也存在巨大区别,相对讲 xml 格式要求严格:

a. 所有的 XML 文档必须有一个结束标记

开始标签和结束标签必须配套,也就是必须写成 <p></p> 或者 <high></ high >

b. 空元素必须关闭

不允许出现单标签,但标签必须关闭,关闭使用 <p/> 或者 <high/>

c. 所有标签都区分大小写

d. 所有标签都必须合理嵌套

层次合理比如 <p><high></high></p> 这样就合理。

e. 所有标签的属性值必须使用双引号 (””) 或者但引号括起来

f.  xml 只能有一个根元素

1.4 XML 文档组成

xml 文档在逻辑上主要有以下 5 个部分组成:

1.xml 声明

xml 文档总是以一个 xml 声明开始,其中指明所用的 xml 版本、文档的编码、文档的独立性信息。格式为:

<?xml version=”<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="1" unitname="”">1.0”</chmetcnv> encoding=”gb<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="2312" unitname="”">2312”</chmetcnv> standalone=”yes”?>

其中需要注意的是在问号左右两边不能有空格。

还有其默认编码是 utf8

yes 表示文档是独立文档,即不依赖于外部文档。

2. 文档类型声明

我们可以用 DTD Document Type Definition 文档类型定义)来规范 xml 文档中元素和属性的规则及相互关系。

XML SGML Standard Generalized Markup Language,SGML 标准通用标记语言)继承了用于定义语法规则的 DTD 机制。几乎所有的 xml 应用都是使用 DTD 来定义的。 DTD 文件也是一个文本文件,通常用 ”.dtd” 作为其扩展名。

通过文档类型声明,指出 xml 文档所用的 DTD 。文档类型声明有两种形式,一种是声明 DTD 在一个外部文件中,例如:

<!DOCTYPE greeting SYSTEM “hello.dtd”>

1 种是直接在 xml 给出 dtd ,例如:

<!DOCTYPE greeting [

<!ELEMENT greeting  (#PCDATA)>

]>

3. 元素

XML 元素命名必须遵守下面的规则:

元素的名字可以包含子母,数字和其他字符。

元素的名字不能以数字或者标点符号开头。

元素的名字不能以 XML( 或者 xml Xml,xMl...) 开头。

元素的名字不能包含空格。

尽量不用冒号,冒号在名称空间中用于分隔名称空间前缀和本地部分。

 

2 个细节:

1.  CDATA

CDATA 段中包含的都是纯字符数据,在字符数据可以出现的任何地方都可以使用 CDATA 段。 CDATA 段主要用于需要将整个文本解释为字符数据而不是标记的情况下。

CDATA 段以字符串 ”<![CDATA[  开始, ”]]>” 结束。

2.  字符引用和预定义实体引用

xml 5 个特殊字符,小于 < 、大于 > 、双引号 、单引号 、和号 & 。在数据中需要使用这几个字符时候可以用通用字符引用和预定义引用:

请参考:表 1-1 特殊字符的字符引用和预定义实体引用

字符

字符引用 10 进制

字符引用 16 进制

预定义实体引用

<

 

<

<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="3" unitname="C">3c</chmetcnv>;

&lt;

>

 

>

>

&gt;

"

"

&quot;

'

'

&apos;

&

&

&

&amp;

4. 注释

XML 中注释的语法基本上和 HTML 中的一样。 <!-- 这是一个注释 --> 。注释不要出现在标记中。

5. 处理指令

处理指令允许文档中包含由应用程序来处理的指令。处理指令的语法和 xml 声明类似,以 < ?开始,以 ?> 结束。一个常见的样式表单的处理指令如下所示:

<?xml–stylesheet href=”hello.css” type=”text/css”?>

1.5 关于DTD

符合语法的 XML 文档称为结构良好的 XML 文档。

通过 DTD 验证的 XML 文档称为有效的 XML 文档。

XML Schema(XML 模式 ) 是基于 XML DTD 的替代品。

通过 DTD ,你的每一个 XML 文件都自身携带有关它自身格式的说明。

通过 DTD ,不同群体的人们可以对使用普通的 DTD 来交换数据的方法达成一致。

 

含有 DTD 的实例 XML 文件:

#PCDATA 指明必须是字符数据。

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--> 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>Tove</to>
11   <from>Jani</from>
12   <heading>Reminder</heading>
13   <body>Don't forget me this weekend</body>
14 </note>
15 

如果 DTD 对于你的 XML 文件是外部而言,那么它会在含有以下句法构造的 DOCTYPE 声明中预先包装进去。如:

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->1 <?xml version="1.0"?>
2 <!DOCTYPE note SYSTEM "note.dtd">
3 <note>
4 <to>Tove</to>
5 <from>Jani</from>
6 <heading>Reminder</heading>
7 <body>Don't forget me this weekend!</body>
8 </note>

下面是一份包含了 DTD "note.dtd" 文件副本:

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->1 <! ELEMENT note (to,from,heading,body) >
2 <! ELEMENT to (#PCDATA) >
3 <! ELEMENT from (#PCDATA) >
4 <! ELEMENT heading (#PCDATA) >
5 <! ELEMENT body (#PCDATA) >  

1.6 XSL

XSL (全称是:可扩展的样式单语言,the eXtensible Stylesheet Language)CSS样式单功能要强大的多。XSL的一个主要的用途就是将XML文档转换成HTML格式的文件,然后再交付给浏览器,由浏览器显示转换的结果。XML的可扩展样式单语言。

1.7 XML 数据岛

HTML 页面中嵌入 XML 数据

使用非官方标准的 <xml> 标记可以将 XML 数据嵌入到 HTML 页面中。

XML 数据可以象下面的例子那样嵌入 HTML 页面 :

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->1 <xml id="note">
2 <note>
3 <to>Tove</to>
4 <from>Jani</from>
5 <heading>Reminder</heading>
6 <body>Don't forget me this weekend!</body>
7 </note>
8 </xml>

或者象下面这样嵌入外部单独的 XML 文件 :

<xml id="note" src="note.xml">

</xml>

注意那个 <xml> 标记是一个 HTML 元素,而不是一个 XML 元素。

 

数据绑定

 

XML 数据岛可以绑定到 HTML 元素上(比如表格)。

在下面的例子中,一个 XML 数据岛( ID=cdcat )被从外部 XML 文档载入。一个 HTML 的表格绑定到此数据岛上。 HTML 表格内部的 span 元素使用 datafld 属性和 XML 文档相应的 XML 元素相互绑定。

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--> 1 <html>
 2 <body>
 3 <xml id="cdcat" src="cd_catalog.xml"></xml>
 4 <table border="1" datasrc="#cdcat">
 5 <tr>
 6 <td><span datafld="ARTIST"></span></td>
 7 <td><span datafld="TITLE"></span></td>
 8 </tr>
 9 </table>
10 </body>
11 </html>
12 

 

写到这里想起原来看 js 的一个应用实例,以数据岛实现了无刷新分页程序。

代码如下:

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->  1 
  2 
  3  <xml id="users">
  4 
  5 <userGroup>
  6 
  7   <user>
  8 
  9     <userid>user hcm</userid>
 10 
 11     <name>name hechangmin</name>
 12 
 13   </user>
 14 
 15   <user>
 16 
 17     <userid>user 2</userid>
 18 
 19     <name>name 2</name>
 20 
 21   </user>
 22 
 23   <user>
 24 
 25     <userid>user 3</userid>
 26 
 27     <name>name 3</name>
 28 
 29   </user>
 30 
 31   <user>
 32 
 33     <userid>user 4</userid>
 34 
 35     <name>name 4</name>
 36 
 37   </user>
 38 
 39   <user>
 40 
 41     <userid>user 5</userid>
 42 
 43     <name>name 5</name>
 44 
 45   </user>
 46 
 47   <user>
 48 
 49     <userid>user 6</userid>
 50 
 51     <name>name 6</name>
 52 
 53   </user>
 54 
 55   <user>
 56 
 57     <userid>user 7</userid>
 58 
 59     <name>name 7</name>
 60 
 61   </user>
 62 
 63   <user>
 64 
 65     <userid>user 8</userid>
 66 
 67     <name>name 8</name>
 68 
 69   </user>
 70 
 71   <user>
 72 
 73     <userid>user 9</userid>
 74 
 75     <name>name 9</name>
 76 
 77   </user>
color: rgb(0,
分享到:
评论

相关推荐

    XML_学习之总结[知识整理.doc

    ### XML学习之总结 本文档将对XML的基本概念及其常用操作方法进行系统性的总结与解析。XML(Extensible Markup Language)是一种标记语言,用于描述数据结构和存储数据,具有良好的可扩展性和跨平台特性。本章节...

    Xml学习笔记.pdf

    由于提供的文件信息中包含了大量的XML学习资料,且内容比较丰富,我们将逐一详细解释这些内容所涵盖的知识点。 **XML简介** XML是Extensible Markup Language(可扩展标记语言)的缩写,它是一种用于标记电子文件...

    TinyXML学习资料

    ### TinyXML学习资料详解 #### 一、TinyXML简介与应用 TinyXML是一个轻量级的C++ XML解析器库,旨在提供一个简单且高效的方式来读取和写入XML文件。它非常适合那些需要处理XML数据但又不想依赖于庞大且复杂的解析...

    XML 学习之课堂PPT教程

    总结,XML学习涵盖了从基础概念到实际应用的方方面面,理解并掌握XML可以帮助开发者更好地处理和交换结构化数据,尤其在Web服务、数据存储、配置文件等领域具有广泛的应用。通过学习XML,开发者可以构建出更加灵活、...

    xml学习和解析

    总结来说,XML学习与解析是IT从业者必备的技能之一,无论是为了数据交换、配置管理还是文档处理,都需要对XML有深入的理解和熟练的运用。掌握XML的语法、解析方法及其在各种场景下的应用,将极大地提升你在开发和...

    XML学习指南,免费分享

    XML(eXtensible Markup Language)是一种用于标记数据的语言,它是HTML的补充,主要用于存储和传输结构化数据。XML的设计目标是传输和存储...希望这个XML学习指南能帮助你开启XML的学习之旅,并在实践中不断深化理解。

    XML轻松学习手册--XML实例解析之二

    ### XML轻松学习手册--XML实例解析之二:构建HTML文件以展示XML数据 #### 一、导入XML数据 在本文档中,我们介绍了一个具体的步骤,即如何在HTML文件中导入XML数据。此过程主要针对那些希望在网页上展示XML数据的...

    Java-XML学习手册

    ### Java-XML学习手册知识点详解 #### 一、XML简介 **XML**(Extensible Markup Language)即**可扩展标记语言**,与**HTML**(HyperText Markup Language)一样,都源自**SGML**(Standard Generalized Markup ...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。首先有两点是需要肯定的:  第一:XML肯定是未来的...

    XML学习教程--推荐

    ### XML学习教程知识点总结 #### 一、XML学习进阶1——什么是XML ##### 1. 为什么使用XML? XML(可扩展标记语言)是一种用于存储和传输数据的标准格式,其设计初衷是为了弥补HTML在数据表示上的不足。随着互联网...

    XML简单实例 XML简单实例

    总结来说,这个实例涵盖了XML的基本元素和结构,以及与之相关的DTD和XSLT技术。通过学习这个实例,初学者可以理解XML如何用来组织和存储数据,以及如何通过DTD来约束数据格式,使用XSLT进行数据转换。同时,使用适当...

    iphone开发之xml解析

    在提供的文档中,如"XML解析技术研究.doc"、"DOM和SAX概念的总结.doc"等,可以深入探讨XML解析的细节,包括解析过程、性能比较、错误处理等。"stu_XML_34_1"和"tea_XML2"可能包含XML解析的实例代码,帮助理解实际...

    无废话的XML中文教程,简单易学

    - **UTF-8编码**:UTF-8是最常用的Unicode编码方式之一,它将每个Unicode字符编码为一个可变长度的字节序列。 - **UTF-16编码**:UTF-16编码将Unicode字符编码为16位(2个字节),对于大多数常见的字符,它只需要16...

    XML学习指南(基础和提高)

    本“XML学习指南”将帮助你从基础到提高,全面掌握这一重要的技术。 首先,让我们从基础开始。XML的基本结构包括元素、属性、注释、处理指令和实体。元素是XML的构建块,它们用尖括号包围,如 `&lt;element&gt;` 和 `...

    XML解析入门之JDOM(一)

    XML(eXtensible Markup Language)是一...在实际开发中,JDOM因其简洁和高效的特性,成为Java开发者处理XML的首选之一。通过深入学习和实践,你可以更好地掌握XML解析和JDOM的用法,提升在数据处理和交换方面的技能。

    PB11.5解析XML实例

    相比之下,SAX解析器采用事件驱动的方式,逐行读取XML文档,当遇到元素、属性或其他XML结构时触发相应的事件。这种方式对内存的要求较低,适合处理大型XML文件。但是,由于数据不是以对象形式存储,处理起来可能稍显...

    java之webservice_aegis.xml学习

    ### Java之WebService_Aegis.xml详解 #### 一、概述 `aegis.xml`配置文件主要用于在Web服务(尤其是使用了XFire框架的情况下)中定义如何处理复杂的数据类型,特别是那些集合类型的参数或返回值。通过配置`aegis....

    xml学习pdf

    在当今互联网技术不断发展的背景下,XML作为可扩展标记语言,已经成为一种不可或缺的技术。本篇文档主要介绍了XML的基础知识、基本...随着互联网技术的不断演进,XML技术依然是开发人员必须熟练掌握的基础工具之一。

    xml教程<>

    - **UTF-8**:最常用的Unicode编码方式之一,兼容ASCII并能表示世界上几乎所有语言的文字。 - **UTF-16**:另一种常见的Unicode编码方式,主要用于内部处理和存储。 ### HTML与XHTML的关系 - **HTML**:传统上用于...

    xml练习题及答案

    从给定的文件中,我们可以提炼出一系列关于XML(可扩展标记语言)的重要知识点,这些知识点不仅涵盖了XML的基础语法和特性,...通过以上知识点的学习,可以加深对XML的理解和掌握,为后续的XML应用开发打下坚实的基础。

Global site tag (gtag.js) - Google Analytics