选择显示字体大小

xml基础入门

     我摘 365key vivi niu.la 加加文摘 狐摘 博彩 人人网摘 亿友响享 天极网摘
  
  
  
  
  讨论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一样,比如&我们使用& ,双引号”使用&quot;等。
  
  再看看注释,方法和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.没有<或者&等类似的字符出现在元素值或者属性值里面
  
    


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons