XML简介

XML是一种可扩展的标记语言,被设计用来传输和存储数据、传输数据。

需要自定义标签,自我描述性,XML是W3C的推荐标准;

XML的特点与作用

特点:

  • xml与操作系统、编程语言的开发平台无关
  • 实现不同系统之间的数据交互

作用:

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元素中,会发生错误,解析器会把它当作新元素的开始
&lt; < 小于 less than
&gt; > 大于 greater than
&amp; & ampersand
&apos; ' 单引号 apostrophe
&quot; " 双引号 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的更多相关文章

  1. 常用两种数据交换格式之XML和JSON的比较

    目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生: 相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你 ...

  2. 两种常用的数据交换格式:XML和JSON

    不同编程语言之间的数据传输,需要一种通用的数据交换格式,它需要简洁.易于数据储存.快速读取,且独立于各种编程语言.我们往往传输的是文本文件,比如我们都知道的csv(comma seperated va ...

  3. XML和JSON两种数据交换格式的比较

    在web开发领域,主要的数据交换格式有XML和JSON,对于在 Ajax开发中,是选择XML还是JSON,一直存在着争议,个人还是比较倾向于JSON的.一般都输出Json不输出xml,原因就是因为 x ...

  4. Java 常见数据交换格式——xml、json、yaml

    目录 数据交换格式介绍 XML 使用DOM方式解析 使用SAX方式解析 使用DOM4J方式解析 使用JDOM方式解析 JSON 使用JSONObject方式将数据转换为JSON格式 利用JSONObj ...

  5. 数据交换格式XML和JSON对比

    1.简介: XML:extensible markup language,一种类似于HTML的语言,他没有预先定义的标签,使用DTD(document type definition)文档类型定义来组 ...

  6. 数据交换格式Json与XML

    什么是数据交换格式: 主流的有Json.XML.HTML. 数据交换格式的应用场景: 移动端(安卓,IOS)通讯方式采用http协议+Json格式的restful风格. 很多互联网公司都是用Http协 ...

  7. Atitit.常见软件 数据 交换格式 标准

    Atitit.常见软件 数据 交换格式 标准 1. 常见的数据格式txt ,doc ,pic,music ,vodio1 2. 通用格式json yaml phpstr1 3. 专用格式1 4. 用户 ...

  8. 在.NET使用JSON作为数据交换格式

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhoufoxcn.blog.51cto.com/792419/517093 我们 ...

  9. 数据交换格式与SpringIOC底层实现

    1.数据交换格式 1.1 有哪些数据交换格式 客户端与服务器常用数据交换格式xml.json.html 1.2 数据交换格式应用场景 1.2.1 移动端(安卓.iOS)通讯方式采用http协议+JSO ...

随机推荐

  1. ASP.NET的底层体系2

    文章引导 1.ASP.NET的底层体系1 2.ASP.NET的底层体系2 引言 接着上一篇ASP.NET的底层体系1我们继续往下走 一.System.Web.HttpRuntime.ProcessRe ...

  2. Berlekamp Massey算法求线性递推式

    BM算法求求线性递推式   P5487 线性递推+BM算法   待AC.   Poor God Water   // 题目来源:ACM-ICPC 2018 焦作赛区网络预赛 题意   God Wate ...

  3. zepto问题

    jq功能对照表 http://jsrun.it/21f/mrCH 不支持 jquery的 ajaxSetup 全局修改ajax的设置 $.ajaxSetup({beforeSend : beforeS ...

  4. Ubuntu 上如何安装Docker

    Docker 是一个开源项目,为开发者和系统管理员提供了一个开放的平台,在任何地方通过打包和运行应用程序作为一个轻量级的容器.Docker 在软件容器内自动部署应用程序.Docker 最开始由 Sol ...

  5. Static 关键字的 5 种用法,你会几种?

    );                      System.out.println(Thread.currentThread().getName()                         ...

  6. 14.data.js

    dict_data = { "_id":1, name:"王五", age:55, gender:true } db.stu.insert(dict_data) ...

  7. 使用Math.random()函数生成n到m间的随机数字

    使用js生成n到m间的随机数字,主要目的是为后期的js生成验证码做准备,Math.random()函数返回0和1之间的伪随机数 讲解: 本文讲解如何使用js生成n到m间的随机数字,主要目的是为后期的j ...

  8. 2019个人计划与Flag与期望

    突然发现写博客是真的好. 希望未来能在其他地方写上日记. 总结2018中的个人缺陷: 1.忘掉了学习方法或者说学习方法不正确 2.偶尔就会去偷下懒,对自己不够严格,自控能力差. 3.心态虽比以前好很多 ...

  9. 在双重for循环内部使用async异步请求axios中遇到的问题

    在methods中的方法 async getPro () { let _this = this let newArr = [] await axios.get(`api/v1/dailyProTbms ...

  10. 廖雪峰Java12maven基础-1maven入门-2依赖管理

    maven 如果我们的项目依赖第三方的jar包: Commons Logging发布的jar包在那里下载? 使用Log4j需要哪些jar包 其他依赖:junit,Javamail,MySQL驱动... ...