XML基础入门

xml

  讨论xml文件以前我们先看一个例子:
  
  <person>
  
  ? Alan Turing
  
  </person>
  
  这就是一个标记完好的xml文件,<person>和</person>分别是开始标记和结束标记。
  
  l开始标记:以<开始,以>结束,中间是标记名称。
  
  l结束标记:以</开始,以>结束,中间是标记名称。
  
  注意:开始标记和结束标记对应的标记名称必须相同,但是具体使用什么作为名称就没有规定,这个和html是不同的(html的标记名是若干个确定的),你可以使用person来标记一个人,使用cat来标记一只猫。
  
  标记中间的Alan Turing就是数据,其中Alan和Turing之间的空格也是数据,也就是说标记里面的数据中的空格不会别忽略。
  
  有时候我们也许需要没有任何数据的元素(元素指开始标记和结束标记之间的内容,包含开始标记和结束标记,比如上面提到的例子就是一个元素),例如下面的:
  
  <person></person>
  
  这是一个空标记,但是我们有另外更简捷的标记表示空标记:
  
  <person/>   注意:xml是区分大小写的,这与html不同。<Person>和<PERSON>是不同标记,比如你有一个元素以<person>开始,那么你就不能使用</ Person >作为结束标记。
  
  上面的例子指含有一个元素,我们现在给出一个复杂点的例子,然后给出xml树的概念。
  
  <person>
  <name>
  
  <first_name>Alan</first_name>
  
  <last_name>Turing</last_name>
  
  </name>
  
  <profession>computer scientist</profession>
  
  <profession>mathematician</profession>
  
  <profession>cryptographer</profession>
  
  </person>
  
  显然上面的例子外层仍然是一个person元素,但是与先前不同的是这个元素含有4个子元素,1个name元素和3个profession元素。我们称person是name的父元素,显然他也是profession的父元素,同样我们可以看到name是first_name和last_name的父元素。
  
  上面的例子我们发现标记进行了嵌套,这是允许的。但是重叠标记是非法的,比如:
  <strong><em>this common example from HTML</strong></em>
  
  应该是:
  
  <strong><em>this common example from HTML</em></strong>
  
  根据上面的例子中父子元素的关系以及注意到任何xml文件只能且只能含有一个根元素(也就是没有父元素的元素)看起来很象一个树.
   
   
  现在我们给出一个混合数据的xml文件的例子,
  
  <biography>
  <name><first_name>Alan</first_name> <last_name>Turing</last_name>
  </name> was one of the first people to truly deserve the name
  <emphasize>computer scientist</emphasize>. Although his contributions
  to the field are too numerous to list, his best-known are the
  eponymous <emphasize>Turing Test</emphasize> and
  <emphasize>Turing Machine</emphasize>.
  
  <definition>The <term>Turing Test</term> is to this day the standard
  test for determining whether a computer is truly intelligent. This
  test has yet to be passed. </definition>
  
  <definition>The <term>Turing Machine</term> is an abstract finite
  state automaton with infinite memory that can be proven equivalent
  to any any other finite state automaton with arbitrarily large memory.
  Thus what is true for a Turing machine is true for all equivalent
  machines no matter how implemented.
  </definition>
  <name><last_name>Turing</last_name></name> was also an accomplished
  <profession>mathematician</profession> and
  <profession>cryptographer</profession>. His assistance
  was crucial in helping the Allies decode the German Enigma
  machine. He committed suicide on <date><month>June</month>
  <day>7</day>, <year>1954</year></date> after being
  convicted of homosexuality and forced to take female
  hormone injections.
  </biography> 
  上面的例子我不作解释,但是你要知道他是一个合法的xml文件,也就是说标记和内容可以混排。但是这样格式的xml文件在程序的处理上就很麻烦,所以不推荐使用。
  
  接着我们谈谈属性(Attributes)。看例子:
  
  <person born="1912-06-23" died="1954-06-07">
  
  Alan Turing
  
  </person>
  
  其中红色标记的born和died就是属性。其中born是属性名,1912-06-23是属性值,属性值是用”筐起来的,当然也可以用单引号’筐起来。
  
  <person died = '1954-06-07'? born = '1912-06-23' >
  
  Alan Turing
  
  </person>
  
  使用单引号的作用是你可以在属性的值里面添加双引号。
  
  到这里我们发现一个问题:
  
  <person>
  
  <name first="Alan" last="Turing"/>
  
  <profession value="computer scientist"/>
  
  <profession value="mathematician"/>
  
  <profession value="cryptographer"/>
  
  </person>
  
  这个例子中我在person元素里面添加了4个子元素,每个元素有自己的属性,以及对应的值,然后这4个元素都是空元素。对照前面我们给出的对应的例子,你觉得是把值限定在属性里面好还是直接放在标记之间好呢?这是一个争论不休的问题,我的看法是由你自己定,看哪个爽就使用哪个。但是要注意对同一个元素,他不能同时含有几个相同名称的属性。
  
  <person born="1912-06-23" born="1954-06-07">
  
  Alan Turing
  
  </person>
  
  上面的是非法的xml文件。
  
  接着我们看看特殊字符带来的问题。由于<和>是作为标记使用的,所以一般情况下我们不能在数据部分直接包含<和>,而是使用<和> ,其实这个问题在html里面就有了,处理方式也是和html一样,比如&我们使用& ,双引号”使用"等。
  
  再看看注释,方法和html是一样的:
  
  <!-- 左边的是注释开始标记,右边的是结束标记 -->
  
  但是注意注释的内容不能包含? -- ,同时注释里面的任何标记都会被忽略!同时需要注意的是注释不能出现在一个元素的标记里面。
  
  
  现在我们从整体上来看xml:
  
  1. xml声明
  
  所有的xml文档可能(也应该!)由一个xml声明(XML Declaration)开始。虽然文档声
  
  明使用的是同指令处理类似的语法,但从技术上讲,根据X M L推荐标准它们并不是一回事,因
  
  为声明是xml中的保留部分。
  
  <?xml version="1.0" encoding="ASCII" standalone="yes"?>
  
  <person>
  
  Alan Turing
  
  </person>
  
  如果包括X M L声明,它必须处在文档最前面—前面不允许有任何空白或注释。严格地讲,
  
  在X M L当中这种声明并不是必须的,但我们后面会看到,当处理文档时,它确实会起到一些优化的作用。
  
  这些属性已经在XML 1.0规范中做出了定义:
  
  version—不能省略;值必须为“1.0”;该属性用来保证对X M L未来版本的支持。
  
  e n c o d i n g—可选;值必须是一种合法的字符编码,例如“ U T F - 8”、“U T F - 1 6”或者
  
  “I S O - 8 8 5 9 - 1”(即L a t i n - 1字符编码)。所有X M L解析器都要求至少支持U T F - 8和U T F - 1 6。
  
  如果没有包含这个属性,就假设是“ U T F - 8”或“ U T F - 1 6”编码,这取决于开始的“< ? x m l”字符串的格式。
  
  s t a n d a l o n e—可选;值必须是“ y e s”或“n o”;如果是“y e s”就意味着所有必须的实体声明都包含在文档中,如果是“ n o”就意味着需要外部的D T D。DTD将在后面介绍。
  
  
  最后给出好的xml的相关要求:
  
  1.每个开始标记必须有一个结束标记匹配
  
  2.标记可以嵌套但是不能重叠
  
  3.每个xml文件只有一个根元素
  
  4.一个元素不能含有两个相同名字的属性
  
  5.注释不能出现在元素标记里面
  
  6.没有<或者&等类似的字符出现在元素值或者属性值里面 

时间: 2024-10-22 02:14:50

XML基础入门的相关文章

XML轻松学习手册(1)XML快速入门

xml|快速入门 前言 XML越来越热,关于XML的基础教程网络上也随处可见.可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章.首先有两点是需要肯定的: 第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会: 第二:新知识肯定会有很多新概念,尝试理解和接受,您才可能提高.不要害怕和逃避,毕竟我们还年轻. 提纲 本文共分五大部分.分别是XM

spring mvc(1):基础入门

spring mvc(1):基础入门 Posted on 2014-08-15 09:39 Lychie Fan 阅读(3815) 评论(1)  编辑  收藏 所属分类: spring mvc  依赖 pom.xml ( maven ) <properties>  <spring.version>3.0.5.RELEASE</spring.version></properties><dependencies>  <dependency>

javascript每日必学之基础入门_javascript技巧

        从今天开始,我将带领新朋友们,从了解javascript开始,一步一步地进阶到大神境界,别的不废话,现在开始,我们就一点一点地从入门阶段开始. 我们还是介绍一下javascript的身世,不然,大家会对javascript存在非常大的误解,它的产生历史,我们就过于多说,我也记不住,上学开始历史也没及过格 js与我们经常用来开发后台程序的java语言不是什么亲戚,他们的使用范围也是相差非常远,js只是用在html,用来对document节点进行增删改查,构建与服务器通讯的一种解释性

XML轻松学习手册(1)XML快速入门_XML/RSS

前言 XML越来越热,关于XML的基础教程网络上也随处可见.可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章.首先有两点是需要肯定的: 第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会: 第二:新知识肯定会有很多新概念,尝试理解和接受,您才可能提高.不要害怕和逃避,毕竟我们还年轻. 提纲 本文共分五大部分.分别是XML快速入门,XML

用到xml文件-大家好,今天学习xml基础,用script检验不了xml,望指教。

问题描述 大家好,今天学习xml基础,用script检验不了xml,望指教. 打开checkDtd.html 后页面是空白的,代码检查了,感觉没有地方写错,高手指点下,谢谢

学习网页制作基础入门教程(3)字体标签

教程|入门教程|网页 相关文章: 学习网页制作基础入门教程(1)网页编写 学习网页制作基础入门教程(2)排版标签 标题标签 1. 使用方法:<H1>标题內容</H1> 2. 标签解释:标题的大小一共有六种,两个标签一组,也就是从 <H1> 到 <H6> , <H1> 最大,<H6>最小.使用标题标签时,该标签会将字体变为粗体字,并会自成一行. 3. 使用范例: 原始碼 呈現結果 <H1>标题1</H1> 标题1

XML新手入门教程:了解学习 XML 属性

xml|教程|入门教程 与HTML类似,XML元素也可以在开始标签中包含属性. 属性被用于提供关于元素的附加信息. XML 属性 XML元素可拥有属性. 回忆一下HTML的这个标签:<IMG SRC="http://www.webjx.com/htmldata/2007-06-20/computer.gif">.SRC属性提供了关于img元素的附加信息. 在HTML(以及XML)中,属性可提供有关元素的附加(额外的)信息: <img src="http://

XML技术入门讲座(1)

xml   XML(eXtensible Markup Language,可扩展置标语言)是由W3C(World Wide WebConsortium,互联网联合组织)于1998年2月发布的一种标准,同HTML一样是SGML(Standard Generalized MarkupLanguage,标准通用置标语言)的一个简化子集.由于它将SGML的丰富功能与HTML的易用性结合到了Web的应用中,自推出以来,迅速得到软件开发商的支持和程序开发人员的喜爱,显示出强大的生命力.  由于XML较好地解

学习网页制作基础入门教程

教程|入门教程|网页 学习网页制作基础入门教程(1)网页编写 学习网页制作基础入门教程(2)排版标签 学习网页制作基础入门教程(3)字体标签 学习网页制作基础入门教程(4)图象标签 学习网页制作基础入门教程(5)背景标签 学习网页制作基础入门教程(6)连接标签 学习网页制作基础入门教程(7)表格标签 学习网页制作基础入门教程(8)框架标签 学习网页制作基础入门教程(9)序列标签 学习网页制作基础入门教程(10)表单标签 学习网页制作基础入门教程(11)注意的问题