当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > Xml文件约束规则使用详解

Xml文件约束规则使用详解 时间:2018-09-26      来源:未知

在开发Android应用程序的时候,我们经常都会操作一些Xml文件用以构建我们的Android工程。例如:用以规划Android界面的布局文件,Android工程中的AndroidManifest.xml清单文件,资源文件等等。有趣的是每次我们在这些Xml文件中添加自己的代码时,都会按照一定的规则进行添加,而我们大多数人都不知道编写Xml文件时所遵循的约束规则是怎么来的。在这里我就来向大家揭秘一下Xml文件的约束规则,以及怎么定义自己的约束规则!

一、XML的概述

* XML即eXtensible Markup Language 可扩展标记语言

* 宗旨是传输数据,而并非显示数据。

* XML标签没有被预定义,需要用户自行定义标签。

* XML技术是W3C组织(World Wide Web Consortium万维网联盟)发布的,目前 遵循的是W3C组织于2000年发布的XML1.0规范。

* 作用:

a. 传输数据

b. 配置文件

二、XML的语法

* 文档开头第一句必须声明

* 一个XML文档必须有且仅有一个根标签

* 一个标签有如下两种书写形式:

包含标签主体:some content

不含标签主体:

* XML中不会忽略出现的空格和换行。

* 严格区分大小写

* 注释语句:

* 如果需要将标签当做普通文本内容那么需要使用CDATA:使用方 式如下:

www.itcast.cn ]]>

三、XML的约束

Xml的约束规则有DTD和Schema下面就来向大家一一解析两种不同的约束规则:

一:DTD约束:

A)分类:

格式良好的XML:遵循XML语法的XML

有效的XML:遵循约束文档的XML

注意:dtd文档必须用utf-8编码格式保存

B)校验XML的有效性

1.非校验解析器

2.校验解析器

C)DTD文件的语法

1.DTD文档中使用ELEMENT关键字声明一个元素。

2.若子元素用逗号分开,说明须按照声明顺序编写XML文档。

3.如果子元素用“|”分开,说明任选其一

4.用+、*、?来表示元素出现的次数

5.定义属性:

<!ATTLIST 元素名

属性名1 属性值类型 设置说明

属性名2 属性值类型 设置说明>

D)DTD 文件的引入:

1.引用本地的DTD文档时:

<!DOCTYPE 根元素 SYSTEM “DTD文档路径”>

2.引用公共网络上的DTD文档时:

<!DOCTYPE 根元素 PUBLIC “DTD名称” “DTD文档的URL”>

E):DTD约束实例:

DTD文件代码:(farsight.dtd)

<!ELEMENT 华清远见 (分中心+)>

<!ELEMENT 分中心 (城市,地址,电话)>

<!ELEMENT 城市 (#PCDATA)>

<!ELEMENT 地址 (#PCDATA)>

<!ELEMENT 电话 (#PCDATA)>

XML文件:

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

<!DOCTYPE 华清远见 SYSTEM "book.dtd">

<华清远见>

<分中心>

<城市>上海</书名>

<地址>徐汇区</作者>

<电话>123</售价>

</分中心>

<分中心>

<城市>北京</书名>

<地址>圆明园校区</作者>

<电话>321</售价>

</分中心>

</华清远见>

二:Schema约束

A)Schema约束是用于定义和描述XML文档结构与内容的模式语言,其出现目的是为了克服DTD的局限性。

B)Schema约束与DTD约束的比较:

1.Schema符合XML语法结构。

2.DOM、SAX等XML API很容易解析出Schema文档中的内容。

3.Schema对名称空间支持很好。

4.Schema比DTD支持更多的数据类型,并支持用户自定义新的数据类型。

5.Schema定义约束的能力强大,可以对XML实例文档作出细致的语义限制。

6.chema不能像DTD一样定义实体,比DTD更复杂,但Schema现在已是w3c组织的标准,它正逐步取代DTD。

C)使用注意事项

1.Schema文件自身就是一个XML文件,但它的扩展名通常为.xsd。

2.一个Schema文档通常称之为模式文档(约束文档),遵循这个文档书写的xml文件称之为实例文档。

3和XML文件一样,一个Schema文档也必须有一个根结点,但这个根结点的名称为Schema。

4编写了一个Schema约束文档后,通常需要把这个文件中声明的元素绑定到一个URI地址上,即把Schema文档声明的元素绑定到 一个名称空间上,以后XML文件就可以通过这个URI(即名称空间)来告诉解析引擎,xml文档中编写的元素来自哪里,被谁约束。

D)Schema约束实例:

Schema文件:(farsight.xsd)

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

<xs:schema xmlns:xs="//www.w3.org/2001/XMLSchema"

targetNamespace="//www.farsight.cn"

elementFormDefault="qualified">

<xs:element name='华清远见' >

<xs:complexType>

<xs:sequence maxOccurs='unbounded' >

<xs:element name='分中心' >

<xs:complexType>

<xs:sequence>

<xs:element name='城市' type='xs:string' />

<xs:element name='地址' type='xs:string' />

<xs:element name='电话' type='xs:string' />

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

xml文件:

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

<!DOCTYPE 华清远见 SYSTEM "book.dtd"> 

<华清远见>

<分中心>

<城市>上海</书名>

<地址>徐汇区</作者>

<电话>123</售价>

</分中心>

<分中心>

<城市>北京</书名>

<地址>圆明园校区</作者>

<电话>321</售价>

</分中心>

</华清远见>

好了,到这里已经将Xml文件的约束规则已经跟大家详细的讲解完了。相信大家再次在android工程中使用Xml时就不会有困惑了!

上一篇:Java中的新IO—NIO

下一篇:STM32F030 Nucleo-开发环境的搭建和工程建立

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部