XML之基本介绍

来源:互联网 发布:最优化文章 编辑:程序博客网 时间:2024/05/21 22:22

           XML是可扩展性标记语言(Extensible Markup Language)的缩写,因为其在描述数据结构、数据共享交换及Web开发方面具有其特有的优势,所以XML越来越被开发人员喜爱,成为一种使用广泛的语言。

        1、XML的基本构成:

            以一个小段XML语句为例:

<?xml version="1.1" encoding="UTF-8" standalong="yes" ?><!-- a simple example--><!DOCTYPE name [  <!ELEMENT name(first,middle,last)>  <!ELEMENT first (#PCDATA)>  <!ELEMENT middle (#PCDATA)>  <!ELEMENT last (#PCDATA)>    ]><name>   <first>A</first>   <middle>B</middle>   <last>C</last></name>
         第一行是序言,它是可选的,即不一定必须存在,但是一旦出现就必须写在最开始的地方。它声明了该版本遵循XML1.1版本,编码为UTF-8,文档为独立的。

standalone只应用于那些定义了DTD文档,并且只在使用添加或者修改内容是才适用,若无DTD,可以设置为yes或者不用管它。【注】DTD(Document Type Definition)文档类型定义是是一套关于标记符的语法规则。它是标准通用标记语言和[1] 可扩展标记语言1.0版规格的一部分,是文档的验证机制。
        第二行标记了一行注释;

        <!DOCTYPE name[ ]>是一个文档类型声明,告诉解析器,该文档需要与一个DTD文件一起使用。在XML文档中使用DTD时,DOCTYPE必须放在文档开头,以“!”开始。在主体中我们可以声明元素ELEMENT、实体ENTITY、属性ARTTLIST。本例中我们声明了根元素为name,first、middle、last为name的子元素,其字符数据是可解析的(Parse Character Data)。

        接来下我们定义了根目录name的主体,与其子元素构成了树形结构。值得注意的是,根目录下的标签不能嵌套使用,如写成<first>A<middle>B</first></middle>。

        2、对于XML,我们需要了解:

            (1)。XML是一种类似于HTML的标记语言,但不同的是,其标签并没有被预定义,需要用户自行定义;

            (2)。XML文档的编写是一种树形结构,必须要有根节点,再从根节点扩展到叶节点;

            (3)。XML中出现的所有元素标签都必须关闭, 否则将会引起语法错误;

            (4)。XML的文本注释与HTML一致,使用<!-- XXX-->标记注释;

            (5)。XML对大小写敏感,故用户在编写时要注意大小写的情况;

            (6)。XML的属性值必须用引号,即使是数值型的属性也必须加引号,否则同样会导致错误

            (7)。XML元素的命名需符合要求:名称不能以数字或者标点符号开始;不能以xml字母开头;不能包含括号等。

            (8)。XML中通过回车符(CR)和换行符(LF)来存储换行;

            

      3、XML实体引用:

           在XML中,有时候实体会包含一些XML的语法字符,在使用时需要对这些字符进行转义,否则将会引起XML解释错误。XML有5个预定义的实体引用,这些字符可以得到实体转换,帮助我们使用一些敏感字符,如标签号"<>",这些预定义的引用包括“

&lt<小于&gt>大于&amp&和号&apos'单引号&quot"双引号

         特别注意的是:“<”和“&”在XML元素中是绝对非法的,“<”会被解释为新标签的开始,“&”会被解释为新的字符实体。
          实体引用个格式为:<!ENTITY 实体引用名 "引用内容">
          实体分为两类:一般实体(&实体引用名)和参数实体(%实体引用名).。一般实体是指在XML文档中的实体,参数实体是指可在DTD(文档类型定义)中引用和扩展的已分析实体。实体可以声明为内部实体或外部实体,外部实体又可以分为SYSTEM(引用本地计算机)和PUBLIC(引用公共计算机)两种,其形式为:<!ENTITY 引用名 SYSTEM(PUBLIC) "URI地址">。
实体引用可以替代常规字符 ,也可以在标签属性中使用,引用后面应加“;”如例:
<?xml version="1.1" encoding="UTF-8"?><!DOCTYPE root[<!ENTITY title "标题" >]><root><title value="&title;">&title;</title></root>
若用浏览器打开,则title元素的属性值及内容均会被转换为“标题”。

      4、XML子元素与属性的取舍
       
          (1)。属性不易扩展,只支持简单数据类型,若需要具有扩展性,则应该选择子元素;
          (2)。当文件需要经常在网络上传输且宽带受限,则使用属性比较好,因为使用属性可以使文档变小。
          (3)。如果数据项可能对应多个值,则使用子元素;
          (4)。若数据项在DTD中被要求作为一个明确的属性类型,如ID、ENTITY,则使用属性
          (5)。若数据项含有空格,应选择子元素
          (6)。鼓励以使用子元素为主,但也应灵活选择。
 
      5、XML处理指令

            处理指令(PI)用来与使用XML的应用进行交互,它明确了哪个应用应该执行指令以及它所需要的数据。处理指令会通过XML解析器传递信息到应用,但不能直接被XML解析器使用。
            语法为:<?处理指令  所需数据 ?>,如:<?xml-stylesheet  type="text/css"  href="mystyle.css"?>,  会调用xml-stylesheet处理指令来为文档添加自定义样式的效果。        


0 0
原创粉丝点击