XML基础与应用

前端之家收集整理的这篇文章主要介绍了XML基础与应用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

??XML

Extensible markup language,可扩展性标记语言,通过信息进行标记,计算机根据标记进行识别处理。XMLHTML便是两种相似而又各有千秋的标记语言,两者有着类似的功能和定义。

??Xml的基本结构

1、创建XML

简单的声明或者加上XML的版本、字符编码,告诉浏览器这个文件应该按照XML规则进行解析。

      <?xml version=”1.0” encoding=”utf-8”?>
2、创建根元素

根元素的开始和结束标记用于包围 XML文档的内容。一个文件只能有一个根元素

     <?xml version=”1.0” encoding=”utf-8”?>
        <flower>
        ……
       </flower>
3、命名元素

flower作为根元素,给元素起好名字,根据名称定义相应的DTD或者schema

    <?xml version=”1.0” encoding=”utf-8”?>
      <flower>
        <flowername>Rose</flowername> 
        <price>10 RMB</price>
      </flower>

??XML的特点

相较于HTML而言,XML可自行创建元素,且大小写区分,精确的表达自己的信息,文档看作仅由标题和段落组成(HTML的结构)。为提高效率,可定义好一定数量的元素,然后统一使用(可在DTD或者schema中定义元素)。

XML主要用于传输和存储信息,焦点是信息的内容,而HTML主要着重于显示信息,焦点是信息的布局和显示在识别信息方面不如XML。由此可以看出XML并不是为取代HTML而生的,两者同为标记语言,好比两姐妹一高一矮,一胖一瘦,但彼此发展目标不同,所以都有各自存在的必要和意义。


??结构良好的XML

DTD的引入:

目的在于对文档的格式进行约束,确定标记、元素、属性和实体等内容,使得发送方和接收方对消息有相同的理解。(为了实现验证,必须在 XML文档的顶部附近包含文档类型(DOCTYPE)。

内部DTD:DTD信息写入XML文档中

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

      <!DECTYPE 花            <!--花为XML根名-->

   [

     <!ELEMENT  花(种类,颜色)>    <!--若包含子元素,则按顺序写好-->

     <!ELEMENT  种类(#PCDATA)>   <!--若不包含子元素,只包含文本内容则用#PCDATA表示-->

     <!ELEMENT  颜色(#PCDATA)>

  ]>

     <花>

       <种类>玫瑰</种类> 

       <颜色>红色</颜色> 

   </花>

外部DTDDTD写好另存档,在需要使用的XML文档中添加引用,便于共享和扩展

    <!DECTYPE 花 SYSTEM “flowerDTD.dtd”    <!--flowerDTD.dtd 为该DTD的地址-->
    [
      <!ELEMENT  花(种类,颜色)>    <!--若包含子元素,则按顺序写好-->
      <!ELEMENT  种类(#PCDATA)>    <!--若不包含子元素,只包含文本内容则用#PCDATA表示-->
      <!ELEMENT  颜色(#PCDATA)>
    ]>

      <花>
         <种类>玫瑰</种类>
        <颜色>红色</颜色> 
     </花>

根元素到底叫<>还是<flower>,是先写种类还是颜色,都是由DTD定义的。如果与DTD定义的顺序、名称不一致,便会报错为不合法XML。

??XML的主要应用

用于传送即携带数据信息:

即说明数据是什么,而非表现或者展示数据。XML定义结构、存储信息、传送信息。下例为Max发送给Jayemail,存储为XML

<?xml version="1.0"?>

<email>

<收件人>Jay</收件人>

<发件人>Max</发件人>

<主题>attend a meeting </主题>

<邮件内容> please attend the meeting on time ! </邮件内容>

</email>

上述例子中使用的仅是纯粹的信息标签,存储了这封邮件的所有相关信息。

编写配置文件

由于xml携带数据方便,非常方便的通过JavaAPI来读取,同时可跨平台传递数据,故常用作配置文件对数据进行包装和传输。所以我们在用vs进行编程时,config文件中的代码有没有似曾相识的感觉?XML无处不在!

应用于数据库

关系数据库对我们而言并不陌生,机房收费系统实践中也初步尝试使用配置文件访问数据库。这样做的好处主要在于当数据库发生改变,比如把sql server数据库改成了oracle,则只需要更改配置文件即可。

另外,还可以完全基于XML来实现对数据库的管理和操作。例如,当我们需要管理的信息是一个学生名单,每个记录是一个学生的基本信息,包含姓名、专业两个字段。这个名单在关系数据库中就是一张再简单不过的表了,而在XML中,我们需要下面这样一个DTD

<!DOCTYPE DOCUMENT [
  	 <!ELEMENT DOCUMENT (Info)*>
   	<!ELEMENT Info(name,major)>
   	<!ELEMENT name(#PCDATA)*>
   	<!ELEMENT major(#PCDATA)*>
  ]>
    
   <Info>
     <name>钟艾伶</name>
     <major>计算机</major>
   </Info>

由此,我们就有了一个存储学生信息的XML文件,类比于数据库中的一张表,也简单的体现了XML数据库之间的交互。

但值得注意的是,XML并不适用于大型数据库,由于XML自身的树结构特点,应用DTD每次都要对文档和使用的DTD进行分析获得数据,这样的操作相对于关系型数据库的处理速度而言,是非常慢的,且系统开销很大。而XML的特点在与它的可读性,由上例子可知,用户可以阅读和编辑XML文件以实现修改数据等操作,但这也造成了它可被不同用户修改并发访问,这一点也会造成问题。

鄙人愚见,欢迎诸位多多批评指教。


原文链接:https://www.f2er.com/xml/297625.html

猜你在找的XML相关文章