XML(一)-语法 属性 实体 处理指令 样式单 CDATA节

XML介绍

  eXtensible Markup Language,XML是一种元标记语言,用户可以定义自己需要的标记。

  XML描述的是结构、内容和语义,它不描述页面元素的格式化。

  对比:HTML侧重于如何表现信息,内容描述与显示整合为一体。

  XML中的每个元素名都是成对出现的。结束标签前加一个/

  比如:

<?xml version="1.0" encoding="UTF-8"?>
<students>
    <student id="stu01">
        <name>张三</name>
        <age>13</age>
    </student>
</students>

 文档的后缀名是xml,每个文档有且仅有一个根元素

 所谓根元素就是包含了其他所有元素的元素。

XML与HTML的对比

HTML的特点:没有表达内容的含义,并且只能用预定义的标记;HTML标记是“肤浅的”,关心的是外观结构层次过于单调,无法真正实现数据交互,链接机制不完善在网上,有很多类型的信息,但是很难找到你想要的信息片段

xml的特点:

 

 

 

 

 

 

 

 

 

使用XML可以实现异构语言、异构平台之间的交互

XML1.0语法

  XML目前只有一个版本,即1.0.

  XML是自描述数据,使用现有的国际标准。

  XML中有格式正规的XML有效的XML本文讲格式正规的。

  遵循如下规则的XML文档称为格式正规的XML文档

语法规范:

    必须有XML声明语句;

    必须有且仅有一个根元素;

    标记大小写敏感;

    属性值用引号;

    标记成对;

    空标记关闭;

    元素正确嵌套。

元素语法:

  名称中可以包含字母、数字或者其他字符;

  名称不能以数字开头;

  不能以XML/xml/Xml…开头;

  名称中不能含空格;

  名称中不能含冒号(注:冒号留给命名空间使用)。

 

XML解析器(了解即可)

 

  XML解析器是读取XML文档并提供对文档内容的访问的软件模块。

 

  类型:无验证的解释器和验证的解释器。

 

  解析器:MSXML IEIBM XML4JApache XercesOracel XML Parser

XML文档

 

<?xml version="1.0"  encoding="utf-8" standalone="yes"?>
<!--第一行是XML声明-->
<!--这是XML处理指令的例子。处理指令以<?开始,以?>结束-->
<!--在<?后的第一个单词是处理指令名,在本例中是xml-->
<!--处理指令一定要顶格写,前面不能有任何空白-->
<students>
        <student  gender="male">                
                <sid>001</sid>                
                <sname>南京网博</sname>
                <address>南京网博</address>
                <score>100</score>
        </student>
        <student gender="female">                
                <sid>002</sid>                
                <sname>lisi</sname>
                <address>北京</address>
                <score/><!--为空的简写形式-->
        </student>
</students>

 

如其中注释:

  <!--第一行是XML声明-->

  <!--这是XML处理指令的例子。处理指令以<?开始,以?>结束-->

  <!--在<?后的第一个单词是处理指令名,在本例中是xml-->

  <!--处理指令一定要顶格写,前面不能有任何空白-->

  处理指令一定要顶格写,前面不能有任何空白。

  处理指令的?前面后面都不能有空格。

    但元素中的空白是允许的。

  文档注释用<!-- 和-->包围,不允许嵌套,允许多行注释。

  XML里面的元素严格区分大小写。XML文档必须有且只有一个根元素根元素是一个完全包括文档中其他所有元素的元素。

 

XML文档声明

 

  每一个XML文档都以一个XML声明开始,用以指明所用的XML的版本。

 

  XML声明有version 、encoding和standalone特性。

 

  特性是由等号分开的名称-数值对。位于等号左边的是特姓名,而其值位于等号的右边,并用双引号或单引号括起来。

 

  在上例中,version特性表明这个文档符合XML 1.0规范。

 

  XML声明还可以有standalone特性,这告诉我们文档是否在这一个文件里,还是需要从外部导入文件。

 

  encoding 属性指定了编码格式,默认情况下是utf-8,这个属性要放在standalone属性前面。

 

  注意本文文件保存时候默认的编码格式是ANSI,需要利用记事本把它手动改为UTF-8保存。

 

属性

 

  如上所述,

 

  属性(特性)是由等号分开的名称-数值对。

 

  位于等号左边的是特姓名,而其值位于等号的右边,并用双引号或单引号括起来。

 

 

  自定义的元素也可以有一个或多个属性,其属性值使用单引号或者双引号括起来。

 

  如果属性值中有双引号则使用单引号,反之亦然。

 

  属性的形式为:

 

  属性名= "属性值",比如gender="male"。

 

  多个属性值之间用空格隔开(一个或多个空格都可以)。

 

  在一个元素上,相同的属性只能出现一次。

 

  属性值不能包含<, >, &。

 

实体

 

  实体叫ENTITY,实体的作用是避免重复输入。作用相当于宏或者变量。

 

  XML中内置的5种实体:

    &lt;表示 <

    &gt;表示 >

     &amp;表示:&

    &quot;表示:”

    &apos;表示:‘ 

      自定义实体的语法

     <!DOCTYPE 根元素[

             <!ENTITY 实体名 "实体内容">

 

             ]>

 

  引用已定义的实体:

 

    &实体名;

  使用实体的例子

  

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE student[
<!ENTITY wb "南京网博信息技术有限公司">
]>
<student>
    <sid>s01</sid>
    <sname>zhangsan</sname>
    <addr>&wb;</addr>
</student>

 

执行效果如图所示

 

 

 

 

 

可见使用实体和直接写值的效果是一样的,实体所代表的值被浏览器代入。

 

文档类型定义——DOCTYPE

文档类型声明,紧跟XML声明之后,包含所有实体声明。

  语法:

 

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE 根元素标记名[

<!--实体声明-->
                     
]>

处理指令PI

  处理指令用于XML解析器传递信息到应用程序。

  语法:<?目标 指令?>

  PI必须以一个叫做目标的标识符开头,这个标识符遵从如同元素和属性一样的规则,目标是指令所指向的应用的名称,指令是传递给应用程序的信息。

为XML文档编写样式单(了解即可)

  XML允许用户来创建任何所需要的标记。

   当然,由于用户在创建标记上有完全的自由,因而通用的浏览器无法预期用户标记的意义,也无法为显示这些标记而提供规则。

 

   因而,用户必须为文档编写样式单,告诉浏览器如何显示特定的标记。

 

   与标记集类似,用户创建的样式单可由不同的文档不同的人所共享,还可将自己创建的样式单与其他人编写的样式单集成在一起。

 

   比如编写样式hello.css:

 

student{display:block; font-size:24pt; font-weight:bold

 

加入样式的方法,是在XML文档中包括一个处理指令,指定所要使用的样式单

 

<?xml-stylesheet type="text/css" href="hello.css"?>

 

一个完整的xml文档

<?xml version="1.0"  encoding="utf-8" standalone="yes"?>
<!--第一行是XML声明-->
<!--这是XML处理指令的例子。处理指令以<?开始,以?>结束-->
<!--在<?后的第一个单词是处理指令名,在本例中是xml-->
<!--处理指令一定要顶格写,前面不能有任何空白-->

<!--另一个处理指令,表明要采用hello.css定义的样式
     (使用当前目录下的hello.css)-->
<?xml-stylesheet type="text/css" href="hello.css"?>
<students>
        <GREETING><!--开始标记-->
                Hello World<!--元素内容-->
        </GREETING><!--结束标记-->
        <student  gender="male" isHandsome="true">                
                <id>001</id>                
                <name>zhangsan</name>
                <address>Beijing</address>
                <score>50</score>
        </student>
        <student gender="female">                
                <id>002</id>                
                <name>lisi</name>
                <address>北京</address>
                <score/><!--为空的简写形式-->
        </student>
</students>

  通过样式,我们可以实现XML内容与展现形式的分离。

  为XML文档编写样式单可以用CSS或XSL,XSL比CSS复杂。

 

CDATA节

  用于把整段文本解释为纯字符数据而不是标记的情况。

  包含大量的<、>、&、或者"字符。CDATA节中的所有字符都会被当做元素字符数据的常量部分,而不是XML标记。

 

  语法:

<![CDATA[

......

]]>

 

  可以输入任意字符(除]]外),不能嵌套。

  

<?xml version="1.0" encoding="utf-8"?>
<root>
        <![CDATA[

        <hello>
                <world>

                        
            这里放任何内容都是合法的
        
        ]]> 

        <subRoot>
        
        </subRoot>
</root>

 

 

 

 

posted @ 2016-05-14 11:02  Mirindasky  阅读(464)  评论(0编辑  收藏  举报