XML语法

概述

XML(eXtensible markup Language),DTD(文档类型定义)

 

XML是一种元标记语言

 

XML描述的是内容结构和内容语义,而不是格式(HTML);拆分了内容和显示(HTML是内容与显示相结合的)

 

 XML是一种树形结构的面向对象编程,我们可以去解析这个树中我们需要的元素来获取信息。

 

总而言之,XML是棵树,DTD是对XML的规范

 

元素(成对出现,可以嵌套),根元素(有且只有一个根元素)

 

 

<?xml version="1.0"?>
<students>
  <student>
     <id>112</id>
  <student>
  
  <student>
     <id>123</id>
  </student>
</students>

 

<students>就是根元素标签,从上面的xml代码可以看出xml表达的结构和语义

1内容结构:学生们中有两个学生,每个学生有id

2内容语义:112,,123

 

XML的祖先是GML

 

XML解析器:读取XML并提供对文档内容的访问的软件模块。XML编写,解析,验证

XML样式单:可用CSS或XSL写

 

我们极力向您传递的理念是:元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。 

 

 

构成

所有的 XML 文档(以及 HTML 文档)均由以下简单的构建模块构成:

  • 属性
  • 实体(a user-defined Entity is avaliable)

 

 内部外部
规范在DTD中,在xml可解析段中使用<!ENTITY 实体名称 实体值><!ENTITY 实体名称 SYSTEM 路径>
定义在DTD中,在DTD中使用<!ENTITY %实体名称 实体值><!ENTITY %实体名称 SYSTEM 路径>
  • PCDATA   (parsed character data)
  • CDATA     (character data),并不被解析
  • 注释          <!--   -->
  • 处理指令

        

 

Vaild XML有两个条件  

1格式良好(well-formed)  

2满足DTD的限制(可以类比类与对象,对象:具体XML文档,类:DTD文档,也可类比表结构和具体表)

 

 

 

 

 

DTD

元素:<!ELEMENT NAME (TYPE(EMPTY,ANY)  | ()) >

属性:<!ATTLIST EleName AttName TPYE DefaultValue>

 

  

 

 XML命名空间(Namespace)

 

命名空间出现的原因:由于XML文档元素是自定义的,所以两个不同的文档使用相同的名称描述两个不同类型的元素的时候,就会发生命名冲突。命名空间可以解决种冲突

 

XML Schema

(XML Schema 是基于 XML 的 DTD 替代者)

Schema用于验证xml文档,而Schema由一个特别定义的DTD来验证

 

 Schema数据类型:

1简单类型 built-in data type,通过simpleType自定义的数据类型

2复杂类型 通过complexType自定义的数据类型

 

ref,group(group,attributeGroup),substitionGroup

 

Schema中的element(name,type)

Schema中的attribute(name,type,use)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 simpleType and complexType

 

 simpleType类型的元素没有子元素,也没有属性;当定义的元素有子元素或者是属性的时候必须用complexType

 

simpleContext,用于complexType元素上,用于限定该complexType的内容类型,表示该complexType没有子元素,那么同时该complexType就需要有属性了。

 

 

  

 怎么判断Schema的根元素?

 

 

 

  

 

  

    

 

 

 

 

 

 

  

 

 

 

  

 

 

  

 

  

    

 

 

 

 

 

 

  

 

 

 

  

 

 

  

 

  

    

 

 

 

 

 

 

  

 

 

 

  

 

 

  

 

  

    

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值