XML初解与一个包含实例

 

今天的主要内容是XML。

首先我们先来了解一下什么是XML:

      Extensible Markup Language,翻译过来为可扩展标记语言。Xml技术是w3c组织发布的,目前推荐遵循的是W3C组织于2000发布的XML1.0规范。

   可扩展标记语言XML是SGML的子集,其目标是允许普通的SGML在Web上以目前HTML的方式被服务、接受和处理。XML被设计成易于实现,且可在SGML和HTML之间互相操作(W3C XML工作组对XML的定义)。

知道了什么是XML那么我们需要知道它的应用有那些:

XML技术除用于保存有关系的数据之外,它还经常用作软件配置文件,以描述程序模块之间的关系。

   在一个软件系统中,为提高系统的灵活性,它所启动的模块通常由其配置文件决定。例如一个软件在启动时,它需要启动A、B两个模块,而A、B这两个模块在启动时,又分别需要A1、A2和B1、B2模块的支持,为了准确描述这种关系,此时使用XML文件最为合适不过。

      XML文档的分类

格式不良好(malformed)的xml文档:完全没有遵守xml文的基本规范的xml文档。

格式良好(well-formed)的但无效的xml文档: 遵守xml文的基本规范,但没有使用dtd或schema定义语义约束的xml文档。

有效(valid)的xml文档:遵守xml文的基本规范,并使用dtd或schema定义语义约束,而且也完全遵守了dtd或schema定义语义约束的xml文档。

一个XML文件分为如下几部分内容:

文档声明

元素

属性

注释 

CDATA区 、特殊字符

处理指令(processing instruction)

与HTML相比,XML具有以下几个优点:

(1)     可扩展性强。

(2)     遵循严格的语法要求。

(3)     数据内容与数据表达分离。

下面是一个三层包含实例:

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

<!ELEMENT catalogue (common*,commodity*,Administrator*)>

<!ELEMENT common (sname,splace,sclasses)>

<!ELEMENT sname (#PCDATA)>

<!ELEMENT splace (#PCDATA)>

<!ELEMENT sclasses (#PCDATA)>

<!ELEMENT commodity (basic+,putin+,supply+,putout+)>

<!ELEMENT basic (name,univalence,number,classes)>

<!ELEMENT name (#PCDATA)>

<!ELEMENT univalence (#PCDATA)>

<!ELEMENT number (#PCDATA)>

<!ELEMENT classes (#PCDATA)>

<!ELEMENT putin (pitime,pinumber,edate,piagent)>

<!ELEMENT pitime (#PCDATA)>

<!ELEMENT pinumber (#PCDATA)>

<!ELEMENT edate (#PCDATA)>

<!ELEMENT piagent (#PCDATA)>

<!ELEMENT supply (ssname,ssplace)>

<!ELEMENT ssname (#PCDATA)>

<!ELEMENT ssplace (#PCDATA)>

<!ELEMENT putout (potime,ponumber,poagent)>

<!ELEMENT potime (#PCDATA)>

<!ELEMENT ponumber (#PCDATA)>

<!ELEMENT poagent (#PCDATA)>

<!ELEMENT Administrator (id,aname,post,aclasses)>

<!ELEMENT id (#PCDATA)>

<!ELEMENT aname (#PCDATA)>

<!ELEMENT post (#PCDATA)>

<!ELEMENT aclasses (#PCDATA)>

 

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

<!DOCTYPE File SYSTEM "File.dtd">

<catalogue>

<common>

   <sname>河软超市</sname>

   <splace>河软</splace>

   <sclasses>A类</sclasses>

</common>

<commodity>

   <basic>

     <name>面包</name>

     <univalence>1元</univalence>

     <number>11111</number>

     <classes>食品类</classes>

   </basic>

   <putin>

     <pitime>0926</pitime>

     <pinumber>100</pinumber>

     <edate>0930</edate>

     <piagent>王</piagent>

   </putin>

   <supply>

     <ssname>王中王</ssname>

     <ssplace>中国</ssplace>

   </supply>

  

   <supply>

     <ssname>王中王</ssname>

     <ssplace>中国</ssplace>

   </supply>

  

   <putout>

     <potime>0926</potime>

     <ponumber>33</ponumber>

     <poagent>程</poagent>

   </putout>

</commodity>

 

<commodity>

   <basic>

     <name>红茶</name>

     <univalence>3元</univalence>

     <number>11111</number>

     <classes>饮品类</classes>

   </basic>

   <putin>

     <pitime>0926</pitime>

     <pinumber>100</pinumber>

     <edate>0930</edate>

     <piagent>网</piagent>

   </putin>

   <supply>

     <ssname>华龙</ssname>

     <ssplace>中国</ssplace>

   </supply>

   <putout>

     <potime>0926</potime>

     <ponumber>33</ponumber>

     <poagent>程</poagent>

   </putout>

</commodity>

 

<Administrator>

   <id>001</id>

   <aname>张三</aname>

   <post>店主</post>

   <aclasses>食品类</aclasses>

</Administrator>

</catalogue>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值