关于XML,你了解哪些呢?(XML简介,dtd)

3 篇文章 0 订阅
2 篇文章 0 订阅

目录

一,XML的概念

二,XML的作用

三,XML语法规则

XML 文档采用树形结构

语法规则 

四,XML属性定义

元素与属性的区别

XML 元素 vs 属性 

XML 元素命名规则

 XML 验证

属性类型

属性描述 

案例:

 五,XML的元素定义

1、DTD定义

DTD简介

DTD的规范示例

2.元素的定义

 元素的分类

元素个数的限制

示例:

 ​编辑


一,XML的概念

  • XML 指可扩展标记语言(EXtensible Markup Language)
  • XML 是一种标记语言,类似 HTML
  • XML 的设计宗旨是传输数据,而非显示数据
  • XML 标签没有被预定义。您需要自行定义标签。
  • XML 被设计为具有自我描述性。
  • XML 是 W3C 的推荐标准

在学习了 HTML 之后,理解 XML 语法其实是很简单的,两者在语法上很像。

  1. 设计宗旨:XML 被设计为传输和存储数据,其焦点是数据的内容;HTML 被设计用来显示数据,其焦点是数据的外观。HTML 旨在显示信息,而 XML 旨在传输信息。


  2. XML 标签没有被预定义:HTML 的标签是被预定义了的,比如所有的 HTML 文档的<p>标签都是表示一个段落,就是因为 HTML 的标签是被预定义的。而 XML 标签则没有,单纯的 XML 标签则是没有任何意义的,需要搭配一些定义的 XML 标签规则(验证)来使用,才会有意义。

二,XML的作用

  1. 作为项目或者模板的配置文件
  2. 作为网络传输数据的格式(现在已JSON为主)
  3. 用来保存数据,而且这些数据具有自我描述性

三,XML语法规则

XML 文档采用树形结构

XML 文档必须包含根元素,该元素是所有其他元素的父元素。XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端,所有元素均可拥有子元素。 

<persons>
  <child>
    <subchild>.....</subchild>
  </child>
</persons>

语法规则 

  1. 所有 XML 元素都须有关闭标签。可以是 <label></lable>,也可以是<label />,但不能是 <label>
  2. XML 标签对大小写敏感。因此必须使用相同的大小写来编写开始标签和结束标签;
  3. 在 XML 中,所有元素都必须彼此正确地嵌套;
  4. XML 文档必须有根元素;
  5. XML 的属性值须加引号;与 HTML 类似,XML 也可拥有属性(属性名/属性值的对),在 XML 中,XML 的属性值须加引号;
  6. 在 XML 中,一些字符有特殊意义,需要使用时,要是用转义字符;
  7. 注释和 HTML 文件一样,<!-- -->

四,XML属性定义

元素与属性的区别

  1. XML 元素指的是从开始标签直到结束标签的部分。
  2. 元素可包含其他元素、文本、属性或者前面的混合。

XML 元素 vs 属性 

<student code="89757">
  <name>youka</name>
  <sex>femal</sex>
</student > 

<student>
  <code>89757</code>
  <name>youka</name>
  <sex>femal</sex>
</student > 

在第一个例子中,code 是一个属性;在第二个例子中,code 则是一个子元素。这两个例子提供相同的信息。

没有什么规矩可以告诉我们什么时候该使用属性,而什么时候该使用子元素。

在 HTML 中,属性用起来很便利,但是在 XML 中,应该尽量避免使用属性。因为使用属性会有一些局限性:

  1. 属性无法包含多重的值(元素可以)
  2. 属性无法描述树结构(元素可以)
  3. 属性不易扩展
  4. 属性难以阅读和维护

因此请尽量使用元素来描述数据,而仅使用属性来提供与数据无关的信息。 

XML 元素命名规则

  1. 名称可以含字母、数字以及其他的字符
  2. 名称不能以数字或者标点符号开始
  3. 名称不能以字符 “xml”(或者 XML、Xml)开始
  4. 名称不能包含空格

 XML 验证

拥有正确语法的 XML 被称为"形式良好"的 XML,通过 DTD 验证的XML是"合法"的 XML。
XML 验证文档有:DTD(文档类型定义)、XML Schema

 < !ATTLIST element-name att_name type desc > 

属性类型

  1. ID:写在元素中则元素必须具备ID这个属性
  2. ( 男 | 女 ):属性只能写男或者女,写别的报错
  3. CDATA:文本属性
  4. IDREF:引用别人ID标签的值
  5. reference(少用)

属性描述 

  1. #REQUIRED:表示必填
  2. #IMPLIED:表示非必填
  3. '默认值':只有type为男或女类型时,desc才可以使用默认值的方式

案例:

 

 五,XML的元素定义

1、DTD定义

DTD简介

DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块

DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用

DTD的标签:< !DOCTYPE root[ ] >

DTD的规范示例

<!DOCTYPE NEWSPAPER [
 
<!ELEMENT NEWSPAPER (ARTICLE+)>
<!ELEMENT ARTICLE (HEADLINE,BYLINE,LEAD,BODY,NOTES)>
<!ELEMENT HEADLINE (#PCDATA)>
<!ELEMENT BYLINE (#PCDATA)>
<!ELEMENT LEAD (#PCDATA)>
<!ELEMENT BODY (#PCDATA)>
<!ELEMENT NOTES (#PCDATA)> 
 
<!ATTLIST ARTICLE AUTHOR CDATA #REQUIRED>
<!ATTLIST ARTICLE EDITOR CDATA #IMPLIED>
<!ATTLIST ARTICLE DATE CDATA #IMPLIED>
<!ATTLIST ARTICLE EDITION CDATA #IMPLIED>
 
]>

2.元素的定义

 元素的分类

< !DOCTYPE element-name EMPTY>//空元素
< !DOCTYPE element-name (#PCDATA)>//文本元素
< !DOCTYPE element-name (e1,e2)>//混合元素 

元素个数的限制

  • 与:用 .  表示
  • 非:用 | 表示

次数:

  • 0或1:用 ?表示
  • 0或N:用 * 表示
  • 1或N:用 + 表示

示例:

 


 今天的分享就到此为止啦,精彩下期继续!!

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值