数据交换格式之 - XML
XML简介
XML是一种可扩展的标记语言,被设计用来传输和存储数据、传输数据。
需要自定义标签,自我描述性,XML是W3C的推荐标准;
XML的特点与作用
特点:
- xml与操作系统、编程语言的开发平台无关
- 实现不同系统之间的数据交互
作用:
- 配置应用程序
- 数据交互Ajax
XML格式:一个xml文档必须要有第一行的声明和它的文档元素的描述信息
xml声明:一般是xml文档的第一行
- <?xml version="1.0" encoding="字符集编码集" standalone="[ yes | no ]"?>
- version定义版本号1.0,encoding定义编码格式,standalone定义独立声明
根元素
- 它是xml文档里面唯一的;它的开始是在最前面,结束是放在最后面
元素
- 所有的xml元素都必须有一个关闭标签,<p></p><br />
- xml标签对大小写敏感
- xml必须正确地嵌套
- 元素命名:可以包含字母,数字,或其它的字符;不能以数字或者标点符号开始;不能包含空格;
- 空元素
属性:属性值用双引号包裹;一个元素可以有多个属性
- 语法:<元素名 属性名=“属性值” 属性名=“属性值”></元素名>;
- <Student ID=“S100”><Name>Tom</Name></Student>
实体:实体引用来代替产生错误的字符
- 在xml中,一些字符拥有特殊的意义。如果把字符“<”放在xml元素中,会发生错误,解析器会把它当作新元素的开始
| < | < | 小于 | less than |
| > | > | 大于 | greater than |
| & | & | 与 | ampersand |
| ' | ' | 单引号 | apostrophe |
| " | " | 双引号 | quotation |
注释:注释内容中不要出现”--”;不要把注释放在标签中间;注释不能嵌套。
命名空间(xml Namespaces):命名空间是在元素的开始标签的 xmlns 属性中定义的。
- 命名空间提供避免元素名冲突的方法
- 在xml中,元素名是开发者定义的,当两个不同的文档使用相同的元素名,就会发生冲突
- 为标签添加了一个xmlns属性,这样就以前缀赋予了一个与某命名空间相关联的限定名称
- 语法:xmlns:前缀="URL" ;
- 默认命名空间:xmlns="namespaceURL";为元素定义默认的命名空间可以让我们省去在所有的子元素中使用前缀的工作
XML验证(约束):
DTD 与 Schema 建议使用Schema因为功能强大
DTD:文档类型定义 Document Type Definition
DTD用来描述xml文档的结构,一个DTD文档包含: ① 元素的定义规则;② 元素之间的关系规则;③ 属性的定义规则;
关联方式:使用内部DTD、使用外部DTD、使用公共DTD)
内部关联:将约束文档书写在XML内部
<!DOCTYPE 根元素 [...具体规范内容...] >
<?xml version="1.0" ?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<message>Don't forget me this weekend!</message>
</note>
外部关联模式:<!DOCTYPE 文档根节点 SYSTEM "DTD文件的URL">
<DOCTYPE note SYSTEM "book.dtd">
公共关联模式:<!DOCTYPE 文档根节点 PUBLIC "DTD名称" "DTD文件的URL">
<!-- 引用的文件是一个网络上的公共文件-->
<!DOCTYPE note PUBLIC "-//Sun Microsystems,inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
Schema:W3C 支持一种基于 XML 的 DTD 代替者,它名为 XML Schema
xml Schema是用一套预先规定的xml元素和属性创建的,这些元素和属性定义了xml文档的结构和内容模式。Xml Shema规定xml文档实例的结构和每个元素/属性的数据类型。
shema类似表结构,在表结构里,定义一些数据的限制要求。然后我们xml文档呢就相当于是数据表将来要存储的数据,也就是数据库里面的数据表数据了,所以整体来讲的话schema它就是用于验证xml文档的。
<?xml version="1.0"?>
<!-- xsd约束-->
<xs:schema
xmlns:xs="http://www.w3.or/2001/XMLSchema"
targetNamespace="http://www.w3cschool.com.cn"
xmlns="http://www.w3cschool.com.cn"
elementFormDefault="qualified"
>
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
<?xml version="1.0" encoding="UTF-8">
<note
xmlns="http://www.w3cschool.com.cn"
xmlns:w3="http://www.w3school.com.cn"
xmlns:se="http://www.sikiedu.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3school.com.cn note.xsd"
http://www.sikiedu.com http://www.sikiedu.com/xx/xx/xx.xsd
>
<!-- note.xsd为本地路径xsd文件,http://www.sikiedu.com/xx/xx/xx.xsd为网络上的xsd路径-->
<to></to>
<w3:from></from>
<heading></heading>
<body></body>
</note>
数据交换格式之 - XML的更多相关文章
- 常用两种数据交换格式之XML和JSON的比较
目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生: 相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你 ...
- 两种常用的数据交换格式:XML和JSON
不同编程语言之间的数据传输,需要一种通用的数据交换格式,它需要简洁.易于数据储存.快速读取,且独立于各种编程语言.我们往往传输的是文本文件,比如我们都知道的csv(comma seperated va ...
- XML和JSON两种数据交换格式的比较
在web开发领域,主要的数据交换格式有XML和JSON,对于在 Ajax开发中,是选择XML还是JSON,一直存在着争议,个人还是比较倾向于JSON的.一般都输出Json不输出xml,原因就是因为 x ...
- Java 常见数据交换格式——xml、json、yaml
目录 数据交换格式介绍 XML 使用DOM方式解析 使用SAX方式解析 使用DOM4J方式解析 使用JDOM方式解析 JSON 使用JSONObject方式将数据转换为JSON格式 利用JSONObj ...
- 数据交换格式XML和JSON对比
1.简介: XML:extensible markup language,一种类似于HTML的语言,他没有预先定义的标签,使用DTD(document type definition)文档类型定义来组 ...
- 数据交换格式Json与XML
什么是数据交换格式: 主流的有Json.XML.HTML. 数据交换格式的应用场景: 移动端(安卓,IOS)通讯方式采用http协议+Json格式的restful风格. 很多互联网公司都是用Http协 ...
- Atitit.常见软件 数据 交换格式 标准
Atitit.常见软件 数据 交换格式 标准 1. 常见的数据格式txt ,doc ,pic,music ,vodio1 2. 通用格式json yaml phpstr1 3. 专用格式1 4. 用户 ...
- 在.NET使用JSON作为数据交换格式
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhoufoxcn.blog.51cto.com/792419/517093 我们 ...
- 数据交换格式与SpringIOC底层实现
1.数据交换格式 1.1 有哪些数据交换格式 客户端与服务器常用数据交换格式xml.json.html 1.2 数据交换格式应用场景 1.2.1 移动端(安卓.iOS)通讯方式采用http协议+JSO ...
随机推荐
- HTML5: 实现调用系统拍照或者选择照片并预览
ylbtech-HTML5: 实现调用系统拍照或者选择照片并预览 1.返回顶部 1. <!DOCTYPE html> <html> <head> <meta ...
- 理解云计算三种服务模式——IaaS、PaaS和SaaS
云计算的服务模式仍在不断进化,但业界普遍接受将云计算按照服务的提供方式划分为三个大类: SaaS(Software as a Service–软件即服务) PaaS(Platform as a Ser ...
- vue中的data用return返回
为什么在大型项目中data需要使用return返回数据呢? 答:不使用return包裹的数据会在项目的全局可见,会造成变量污染:使用return包裹后数据中变量只在当前组件中生效,不会影响其他组件. ...
- Django的日常-模型层(1)
目录 Django的日常-模型层(1) 模型层 django测试环境 ORM查询 Django的日常-模型层(1) 模型层 模型层其实就是我们应用名下的models.py文件,我们在里面写入想要创建的 ...
- java-day06
面向过程 每一个具体的步骤都亲力亲为,详细处理每一个细节 面向对象 不关心具体步骤,而是找一个已经具有该功能的人来帮我做事 特点 封装性 继承性 多态性 类 是一组相关属性和行为的集合 成员变量(属性 ...
- java_Properties集合
package propertiesTest; import java.io.FileReader; import java.io.FileWriter; import java.io.IOExcep ...
- CSS选择器及优先级
转自CSS优先级的计算公式:http://wyz.67ge.com/css-selector-priority/ 通常我们可以将CSS的优先级由高到低分为六组: 无条件优先的属性只需要在属性后面使用 ...
- SG函数模板(洛谷2197nim游戏
#include <iostream> #include <cstdio> #include <queue> #include <algorithm> ...
- NOIP 2017 提高组 day1t2 时间复杂度
P3952 时间复杂度 标签 NOIp提高组 2017 时空限制 1000ms / 128MB 小明正在学习一种新的编程语言 A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂 ...
- python网络框架Twisted
什么是Twisted Twisted是一个用python语言写的事件驱动网络框架,它支持很多种协议,包括UDP,TCP,TLS和其他应用层协议,比如HTTP,SMTP,NNTM,IRC,XMPP/Ja ...