`
- 浏览:
279783 次
- 性别:
- 来自:
上海
-
本章节目的:
1.怎么用start-tags和end-tags 来create XML elements?
2.怎么样进一步描述elements with attributes
3.怎么申明你的document 是xml
4.怎么发送instruction 给处理xml document的application
5.xml 不允许出现的charactors——在你的document 中怎么样使用他们
?
Tags and Text and Elements, Oh my! :举例来说,<first>是start-tag, </first>是end-tag, 而<first/>属于self-closing tag, 在start-tag 和end-tag 之间的被称为element content, 也可以说是Parsed Charactor DATA (PCDATA)或是text node , text content, PCDATA 是来自于SGML的说法。
Rules for elements:
1.每一个start-tag 都有匹配的end-tag,或是一个self-closing tag
2.tags 不能overlap, 必须正确nested
3.一个xml 只能有一个root elements,这个root element是针对xml ducument而言的 ,即是在层级结构中处于xml 顶部的。这个rule 就指明了不能出现这种情况:
<name>John</name>
<name>jane</name>
这样就是出现了两个root elements, 我们可以这么修改,
<names>
<name>John</name>
<name>jane</name>
</names>
4.Element names 必须遵守xml 的命名规则。(xml名字的第一个字母后是允许有点号(periods)的,不允许的情况就不细说了)。
5.XML 是case sensitiv 的
6.xml将保留whitespace在你的PCDATA中。这一点和html 不同,比如说:
html中,<p> this is paragraph. It has a whole bunch of space</p>
将显示为this is paragraph. It has a whole bunch of space,
而xml中它将显示为:this is paragraph. It has a whole bunch of space.
End of Line Whitespace: xml 会自动处理,因此programmers 不用去处理(end-of-line)换行的逻辑。
Attribute: xml document 除了elements 和tags 之外也能有attributes, attributes 是分给elements 的name/value pairs,例子如下:
<name nickname=" Shiny J>
<first>John</first>
<last>Doe</last>
</name>
Attributes 必须有值,而值又必须放在一对双引号或是单引号中。缺少引号或是引号不配对或是缺少值都是不对的。一个elements 不能有多个相同的attribute , 比如说<bad att="1" att="2"></bad>就是错误的,在IE XML parse中出现错误提示:Duplicate attribute.
Attribute在elements中的顺序是不重要的,不相关的,无意义的,任何顺序都可以,因此如果information 有顺序的要求, 你应该将它放在elements之中而不是attributes 里。
attribute能够加入额外信息比如说list 的number 之类的。http://hi.baidu.com/ousysrobin
attribute 能够分开不同类型的信息,基本上attribute 能做的elements 都行, attribute不用考虑cross-tag 的问题, 不过如果用attribute , 就会丢掉去多xml 的有点,比如说readability和descriptive tag names. elements 比attribute更加complex.
Comments: comments 提供了注释方法, 它并不真正属于该xml 文档,只是为了方便理解而已。注释是通过<!--和-->来完成的,注意comments不能在tag 中。comments 可能会递给也可能不会递给application,取决于我们所选的parser.
<name nickname=" Shiny J>
<first>John</first>
<middle></middle>
<last>Doe</last>
</name>
像middle中间并没有包括任何name , 可以这么写<middle/>,即是说使用self-closing tag
XML Declaration: 能够去识别文档类型是非常好的,windows提供了.xml的扩展名来指示是一个xml文件,可是其他的操作系统就没有提到这点了, xml 提供了xml declaration去指示一个文档是xml 文档,顺带提供了一些其他的信息,一个parser通常都能够识别xml 文档即使没有xml declaration,但是最好还是注明xml declaration比较好,xml 声明如下:
<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<name nickname=" Shiny J>
<first>John</first>
<middle></middle>
<last>Doe</last>
</name>
xml声明是由<?xml开始,由?>结束,如果要做xml declaration , version是必须写明的, 但是encoding和 standalone 是可选的,即是说<?xml version='1.0'?>也是正确的。xml的申明必须在document的开始, 也就是说document开始的第一个字符就是<,不能够有空行或空格。同时必须注意如果三者都写了,那么version , encoding , standalone 三者的顺序不能变更。
standalone 的值yes只得是文档可以单独存在,不依赖与其他文件,而no 指的是文件may 依赖于外部的DTD 。
Processing Instructions:虽然它并不common,但是有时候你需要去嵌入一段application-specific instructions到你的information中去影响how it will be processed, 这种机制被称之为PIs或是processing instructions ,一个例子:(下面的这个例子是书上的,fire 也是书上这么写的)http://hi.baidu.com/ousysrobin
<?xml version='1.0'?>
<name nickname="Shiny John">
<!--John lost his middle name in a fire-->
<middle/>
<?nameprocessor SELECT * FROM blah?>
<last>Doe</last>
</name>
其中红色字体代表的部分就是PIs,它的规则是以<?开头然后followed by 将接收PIs的(PITarget)的application的名称,上面的例子的PITarget是nameprocessor, 而PI的actual text 是SELECT * FROM blah
需要注意xml declaration 并不是PI, 大部分的application 并不会接收到xml declaration 的信息,(XML Declaration只是为了parser),可却一定接收PI, XML Declaration只能在document 开头,而PI却能在任何地方。PI对xml 本身并没有什么作用, 只是交给application 去做一些meaningful 的事情。
Illegal PCDATA charactersml中有一些reserved characters, 比如说<和&,下面是个有错误的例子:<!--This is not well-formed XML!-->
<comparison>6 is < 7 & 7 > 6</comparison>
应该改为:<comparison>6 is < 7 & 7 > 6 </comparison>
几个常见的替换encaping characters:(左边的也被称为entity reference)
&——the & character
<——the < charactor
>——the > charactor
'——the ' charactor
"——the " charactor
其他的能够encaped by using charactor reference ,就是#nnn; ,nnn是16进制的,参照unicode number of the charactor you want to insert.比如说copyright符号(©)就被表示为©或是©.
CDATA: 如果你的文档中有很多的<和&, 转义符是不适合,此时就得需要用到CDATA了,CDATA是来源于SGML的,它代表Charactor Data,通过CDATA, xml parser 能不去parse 这个text ,直到CDATA section 的结束。例子:(这里的文件命是cdatahere.xml)
<script language='JavaScript'><![CDATA[
function myFunc()
{
if(0 < 1 && 1 < 2)
alert("Hello");
}
]]></script>
显示在屏幕上的就是:
<script language='JavaScript'>
<![CDATA[
function myFunc()
{
if(0 < 1 && 1 < 2)
alert("Hello");
}
]]>
</script>
注意在<![CDATA[和]]>之间的xml parser 都不会被parse的,将按原样显示出来。
Errors in XML: 里面的错误能够有两种类型, 一种是xml parser能让它自动回复,另一种是比较严重的, xml parser 会中断解析, 这两种都是在一定程度上违反了xml well-formed rule 的, 注意在xml 发生错误是不同的parser 可能提示不同的错误,即使是第一种情况,有时候parser 也会解析的和你原有的意思不同。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在“XML学习手册第二版”中,它深入浅出地介绍了XML的基本概念、语法规范以及实际应用。 首先,XML的核心是其结构化特性。XML文档由元素构成,元素是XML文档的基本构建块,它们可以包含其他元素、文本或者属性。每...
XML(eXtensible Markup Language)是一种用于标记数据的语言,其设计目的是传输和存储数据,而非显示数据。在本文中,我们将深入探讨...通过实践和阅读“XML学习指南”,你可以深入掌握这一重要技术,提升你的IT技能。
ASP.NET_XML深入编程技术.pdf ...XML学习指南 XML官方指南中文版(CHM) XML实用大全.chm XML指南.chm XML编程从入门到精通.pdf XML网页制作实作教程 xml解决方案开发实务.pdf XML高级编程 无废话XMLl(PDF)
ASP.NET_XML深入编程技术.pdf ...XML学习指南 XML官方指南中文版(CHM) XML实用大全.chm XML指南.chm XML编程从入门到精通.pdf XML网页制作实作教程 xml解决方案开发实务.pdf XML高级编程 无废话XMLl(PDF)
《XML学习笔记.doc》可能包含了个人或团队在学习过程中整理的要点、难点解析、实战经验,以及一些易错点和最佳实践,这些都是理论知识之外的宝贵经验。 总的来说,这个“XML学习大全”资料包全面覆盖了XML的基础到...
在学习TinyXML的过程中,阅读提供的“TinyXML学习资料.pdf”文件会非常有帮助。这份资料可能涵盖了TinyXML的基本概念、用法示例以及常见问题的解决方案。通过深入学习,你将能够熟练地利用TinyXML进行XML的解析和...
这个“XML学习资料大全”包含了丰富的资源,可以帮助你深入理解和掌握XML的核心概念与实际应用。 1. **XML的特征及应用场合**: XML的设计目标是使数据具有自我描述性,它使用标签来定义数据结构,而非呈现方式。...
《XML学习指南》作为一款经典教程,将帮助我们深入了解这一强大的工具。 首先,XML的基础知识包括其基本结构和语法。XML文档由元素(Element)、属性(Attribute)、文本(Text)等构成,遵循严格的规则,如元素...
本书及附带的光盘还提供了一个完整的XML学习软件包。这个软件包提供了学习创建和显示XML文档所需基础知识的所有信息、指导和软件。本书还包括了指向Web上大量XML信息的详尽链接集,如果你想要了解基础知识以外的信息...
在《XML学习指南》中,你将深入了解到XML的基础和高级概念。 1. **XML基础**:XML的语法基础包括元素、属性、文本内容、注释和处理指令。每个XML文档都由一系列元素构成,元素是XML文档的最基本单位,通过尖括号...
在本“XML学习指南中文版”中,你将深入理解XML的基础概念、结构以及它在信息技术领域的广泛应用。 XML的核心在于其可扩展性,这意味着用户可以自定义标签来表示数据,而不仅仅是预设的HTML标签。这种灵活性使得XML...
XML学习心得分享 XML(Extensible Markup Language)是一种用于建立描述结构化数据标示语言的语言。它具有开放、可读取、扩展性强、避免浏览器或其他中介软件自行增加特定的HTML标签等特点。XML用于描述结构化数据...
在XML学习手册中,可能会详细介绍XML的声明(Document Type Declaration, DTD)和XML Schema,它们是用于定义XML文档结构的规范。DTD允许定义元素和属性的类型,以及元素间的约束关系;XML Schema则更现代,提供了更...
XML学习指南,极适合新手学习,其中样式表、处理指令和CDATA、DTD子集、级联样式表、XSL模版等XML基本知识都有详细介绍及教学,本书将有助你开发ASP.NET+XML网络程序时遇到的XML方方面面的问题
本代码库是针对"Java Web开发详解"一书的配套XML学习代码,旨在帮助读者更好地理解和实践XML的相关概念。 1. **XML基础** - **XML元素**: XML文档的核心是元素,它们用尖括号 `和 `>` 包围,如 `<element>content...
XML(eXtensible Markup ...通过深入学习XML,你可以掌握数据表示的灵活性,更好地进行数据交换和程序设计。这个资料包“XML初学进阶”可能包含基础教程、实战案例和相关工具的使用指南,是你提升XML技能的好助手。
本书及附带的光盘还提供了一个完整的XML学习软件包。这个软件包提供了学习创建和显示XML文档所需基础知识的所有信息、指导和软件。本书还包括了指向Web上大量XML信息的详尽链接集,如果你想要了解基础知识以外的信息...
XML学习进阶1-- 什么是XML 1 1 为什么使用 XML? 3 2 什么是 XML? 3 3 数据的结构表示 4 4 XML 文档 4 5 数据是从表示和处理中分离出来的 7 6 使XML数据自描述 8 7 XML数据处理 9 8 开放式标准 10 9 从XML中受益 11...
在XML学习过程中,你需要理解XML文档的语法规范,例如每个元素必须有开始标签和结束标签,元素名称是大小写敏感的,且需要正确嵌套。此外,XML文档需要有根元素,所有的其他元素都是根元素的子元素。 XML文档可以与...
很全的xml学习资料 很全的xml学习资料 很全的xml学习资料