数据交换格式之 - 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 ...
随机推荐
- 【转载】flex布局超过显示省略号
<div class="main"> <div class="content"> <h4 class="name&quo ...
- C++的注释
### 1.2 注释 **作用**:在代码中加一些说明和解释,方便自己或其他程序员程序员阅读代码 **两种格式** 1. **单行注释**:// 描述信息 - 通常放在一行代码的上方,或者一条语句的 ...
- USACO 2007 February Silver The Cow Lexicon /// DP oj24258
题目大意: 输入w,l: w是接下来的字典内的单词个数,l为目标字符串长度 输入目标字符串 接下来w行,输入字典内的各个单词 输出目标字符串最少删除多少个字母就能变成只由字典内的单词组成的字符串 Sa ...
- Oracle批量更改用户下表空间
--查询某个用户下的表,并生成一个修改其命名空间的批处理语句 select 'alter table '|| table_name ||' move tablespace 要迁入的表空间;' from ...
- 【数位DP】[LOJ10168] 恨7不成妻
还是数位DP... 状态:$f[x][val][sum]$表示当前第x位,当前数字为val,当前各位数字和为sum 观察到$val$,$sum$过大,很套路地模7即可... 每个状态存储三个要用到的值 ...
- [JZOJ5355] 【NOIP2017提高A组模拟9.9】保命
题目 描述 题目已经足够清晰了,所以不再赘述题目大意. 思考历程 一眼看下去,好像是一道大水题! 然而,再看几眼,感觉又不是一道水题! 然后想了半天,感觉它特别难转移! 最终打了一个暴力,然后发现样例 ...
- CTO职场解惑指南系列(一)
基于科技能够改变世界的事实,几乎每个公司的程序员都自带闪光灯.程序员的手和普通人的手自然是有区别的,“我们可是用双手改变了世界” .(码农真的是靠双手吃饭,呵呵) 这个世界上但凡靠双手吃饭就会特别不容 ...
- Joomla - 自定义(自定义模块、修改原有模块样式、添加全局JS)
一.自定义模块 自定义模块 参考 Joomla - 模块系统(新建模块.模块类别.自定义模块)第三点 自定义模块部分 自定义模块布局 参考 Joomla - T3模板(非常好用的4屏响应式模板) 的第 ...
- Ajax4Jsf 简单介绍
Ajax4jsf 允许开发人员将 Ajax 功能添加到 JSF 应用程序中,而不需要 JavaScript 或用 Ajax 图形部件替换现有的组件.这个包还允许在使用 Java 2D 库时动态地生成图 ...
- vue-cli2.0+webpack 项目搭建
一:准备工作 安装nodejs + 安装webpack + 配置环境变量 => 确保在dos界面的任何路径都都可直接使用命令 二:搭建项目 1.全局安装vue脚手架 [DOS界面] npm i ...