XML基本语法


1.SGML,XML,XHTML,HTML 概念与联系(主要参考维基百科)

标准通用标记语言(Standard Generalized Markup Language,SGML)是现时常用的超文本格式的最高层次标准,是可以定义标记语言的元语言,甚至可以定义不必采用< >的常规方式。由于SGML的复杂,因而难以普及

HTMLXML同样派生于SGML:XML可以被认为是SGML的一个子集,而HTML是SGML的一个应用。

超文本标记语言英文HyperText Markup LanguageHTML)是为“网页创建和其它可在网页浏览器中看到的信息”设计的一种标记语言,HTML的标签(元素)是固定的.

可扩展超文本标记语言(eXtensible HyperText Markup Language,XHTML),是一种标记语言,表现方式与超文本标记语言HTML)类似,不过语法上更加严格,HTML语法要求比较松散,这样对网页编写者来说,比较方便,但对于机器来说,语言的语法越松散,处理起来就越困难,对于传统的电脑来说,还有能力兼容松散语法,但对于许多其他设备,比如手机,难度就比较大。因此产生了由DTD定义规则,语法要求更加严格的XHTML。

可扩展标记语言英语:eXtensible Markup Language,简称: XML):XML是从标准通用标记语言(SGML)中简化修改出来的

W3C也发现到HTML的问题:

  • 不能解决所有解释数据的问题 - 像是影音档或化学公式、音乐符号等其他形态的内容。
  • 性能问题 - 需要下载整份文件,才能开始对文件做搜索。
  • 扩充性、弹性、易读性均不佳。

为了解决以上问题,专家们使用SGML精简制作,并依照HTML的发展经验,产生出一套使用上规则严谨,但是简单的描述数据语言:XML

XML应用:

  • 配置文档(Configuration Files)- 描述软件设置的参数

2.XML语法:

   1:  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
   2:  <书架>
   3:  <>
   4:      <书名>JavaWeb</书名>
   5:      <作者 姓名="王五"/>
   6:      <售价>50元</售价>
   7:      <页面作者 个人爱好="上网" 网站职务="页面作者" 联系信息=""/>
   8:   </>
   9:  </书架>

第一行:<?xml version="1.0" encoding="UTF-8" standalone="no"?>:

   a.<?xml 语法要求<,?,xml之间不能有空格, ?>之间不能有空格,standalone="no"?两者之间可以有一个或多个空格

   b.encoding=”utf-8”:那么解析器读到该属性,那么会以utf-8解码,如果不写呢?XML解析器通过寻找XML文档开始处的字节序列,能够自动检测出文档中的Unicode编码是UTF-8还是UTF-16.也就是说encoding属性的默认值是Unicode编码,如果文档是以UTF-8/UTF-16编码那么可以不设置该属性.

  c.standalone属性用于说明文档是否独立,该文档没有依赖外面的任何文件而可以单独存在(例如依赖dtd文件)->yes,否则no.standalone属性位于encoding属性之后

针对b的编码,如果文档的编码为GB2312,就是windows记事本默认的编码(ANSI),这时encoding设置为GB2312/GBK(包含GB2312)

解析器读到该属性知道需要以GB2312解码.

例如:在记事本中书写xml文档后直接ctrl+s:

   1:  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
   2:  <书架>
   3:           <>
   4:         <你好></你好>
   5:          </>
   6:  </书架>

在IE10中浏览,这时候看不到任何效果和提示,这时候F12,更改文档模式.

IE11

看到提示:文本内容中发现无效字符.原因:GB2312编码的文档以UTF-8解码,这时候只需要修改encoding=”GB2312”即可.

 

1.XML元素命名规范:

一个XML元素可以包含字母、数字以及其它一些可见字符,但必须遵守下面的一些规范:

区分大小写,例如,<P>和<p>是两个不同的标记。

不能以数字或"_" (下划线)开头。

不能以xml(或XML、或Xml 等)开头。

不能包含空格。

名称中间不能包含冒号(:)

2.XML的注释和HTML一样: <!--注释内容—>

3.关于CDATA(character data)区:

在编写XML文件时,有些内容可能不想让解析引擎解析执行,而是当作原始内容处理。

遇到此种情况,可以把这些内容放在CDATA区里,对于CDATA区域内的内容,XML解析程序不会处理,而是直接原封不动的输出

语法:<![CDATA[ 内容 ]]>:CDATA字母全部大写

 

例如:

   1:  <?xml version="1.0" encoding="GBK" standalone="yes"?>
   2:  <![CDATA[
   3:          <itcast>
   4:              <br/>
   5:              &lt;
   6:          </itcast>
   7:      ]]>
   8:  <书架>
   9:  <>
  10:      <书名>JavaWeb</书名>
  11:      <作者 姓名="王五"/>
  12:      <售价>50元</售价>
  13:      <页面作者 个人爱好="上网" 网站职务="页面作者" 联系信息=""/>
  14:   </>
  15:  </书架>

CDATA

CDATA区不能在根元素(书架)的上面.

换个位置:

   1:  <?xml version="1.0" encoding="GBK" standalone="yes"?>
   2:  <书架>
   3:  <![CDATA[
   4:    <br/>
   5:    &lt;
   6:  ]]>
   7:  <>
   8:      <书名>JavaWeb</书名>
   9:      <作者 姓名="王五"/>
  10:      <售价>50元</售价>
  11:      <页面作者 个人爱好="上网" 网站职务="页面作者" 联系信息=""/>
  12:   </>
  13:  </书架>

CDATA2

posted @ 2014-02-03 20:17  伊秋  阅读(3123)  评论(0编辑  收藏  举报