XML的初始以及约束
2017-09-12 19:33
155 查看
1.XML是一种能与服务器等进行数据交换的,同时也是一种能存储数据的可扩展标记语言。
他与语言,系统,平台的无关性给数据交互带来了很大的方便。仅仅在不同的语言中解析方式不一样而已。
2.XML的定义格式
版本使用1.0 xml有1.1版本但是在发布之后,就因为不向下兼容被淘汰了,
所以至今一直沿用1.0,后边加编码格式
内容定义:用一对自定义标签作为跟标签,内部由成对存在的标签组成,单标签需要是自闭型的
注意:
1.自闭型标签格式
2.在没有约束文件的情况下,标签可以随便定义,只要称对存在就好
3.XML区分大小写
3.属性(attribute)
同HTML一样,标签是可以有自己的属性的
格式:包含在开始标签中 属性=属性值,一个标签可以有多个属性,但是不能重复属性
4.约束
因为XML非常的不规范,标签自定义等等。所以为了开发的方便,便出现了约束,用来规范约束XML中的属性与标签或者值等等之间的关系。
4.1约束分类
DTD约束(Document Type Definition)
Schema约束
4.2DTD约束
格式:(使用步骤,因为约束文件可以说自己不用写,而是去用)
步骤1:创建bean-dtd.xml文档,并将“bean.dtd”拷贝相同目录下
步骤2:从DTD文档开始处,拷贝需要的“文档声明”
步骤3:完成xml内容编写
4.3DTD怎么定义?
格式:
?:可以出现,但只能出现一次
*:允许出现多次,也可以是0次
+:该对象至少出现一次,但可以是多次
,:元素按照指定的顺序出现
事例:
* 4.3使用代码事例(文档声明)*
1. 内部DTD,在XML文档内部嵌入DTD,只对当前XML有效。
2.本地DTD,DTD文档在本地系统上,公司内部自己项目使用。
3.外部DTD—公共DTD,DTD文档在网络上,一般都有框架提供。
需要有网络,当第一次使用之后,则会在本地缓存。
4.4Schema
功能比DTD强大,但是至今DTD仍占有一定市场
命名空间:
默认的命名空间
有很多人这里不理解,其实在我们下载到的Scehma文件中有一句:
他们名字相同,意思就是用的时候用xmlns来引用,至于为什么用域名,那是因为域名全球唯一啊,不重复,只给你们公司用,不冲突。
显式的命名空间 :
4.5注意
在Scehma文件中有如下这些,其实不用太在意,我们下载框架就已经一块下载了,要不就是联网的的时候就一块下载下来了。所以这里就不细讲了。
4.6Schema怎么约束的:
他与语言,系统,平台的无关性给数据交互带来了很大的方便。仅仅在不同的语言中解析方式不一样而已。
2.XML的定义格式
<?xml version="1.0" encoding="utf-8"?>
版本使用1.0 xml有1.1版本但是在发布之后,就因为不向下兼容被淘汰了,
所以至今一直沿用1.0,后边加编码格式
内容定义:用一对自定义标签作为跟标签,内部由成对存在的标签组成,单标签需要是自闭型的
<persons> <person id="p001"> <name>张三</name> </person> <person id="p002"> <name>李四</name> </person> </persons>
注意:
1.自闭型标签格式
2.在没有约束文件的情况下,标签可以随便定义,只要称对存在就好
3.XML区分大小写
3.属性(attribute)
同HTML一样,标签是可以有自己的属性的
格式:包含在开始标签中 属性=属性值,一个标签可以有多个属性,但是不能重复属性
4.约束
因为XML非常的不规范,标签自定义等等。所以为了开发的方便,便出现了约束,用来规范约束XML中的属性与标签或者值等等之间的关系。
4.1约束分类
DTD约束(Document Type Definition)
Schema约束
4.2DTD约束
格式:(使用步骤,因为约束文件可以说自己不用写,而是去用)
步骤1:创建bean-dtd.xml文档,并将“bean.dtd”拷贝相同目录下
步骤2:从DTD文档开始处,拷贝需要的“文档声明”
步骤3:完成xml内容编写
4.3DTD怎么定义?
格式:
<!ELEMENT 元素名 元素描述>
?:可以出现,但只能出现一次
*:允许出现多次,也可以是0次
+:该对象至少出现一次,但可以是多次
,:元素按照指定的顺序出现
事例:
<!ELEMENT beans (bean*,import*) > 在beans标签中只可以有bean+import的标签,可以有0到无限个。 <!ELEMENT bean (property*)> //在bean标签中有0到无限个propertry标签 <!ELEMENT property (#PCDATA)> //在property中不能有标签,但可以有字符串 <!ATTLIST bean id ID #REQUIRED className CDATA #REQUIRED type CDATA #IMPLIED > //上边这个则是bean有参数三个,id与className必须存在,type则是可选
* 4.3使用代码事例(文档声明)*
1. 内部DTD,在XML文档内部嵌入DTD,只对当前XML有效。
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE beans [ ... //具体的语法 ]> <beans> </beans>
2.本地DTD,DTD文档在本地系统上,公司内部自己项目使用。
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE beans SYSTEM"bean.dtd"> <beans> </beans>
3.外部DTD—公共DTD,DTD文档在网络上,一般都有框架提供。
需要有网络,当第一次使用之后,则会在本地缓存。
<?xml version="1.0" encoding="UTF-8"?> <!-- DTD的名字--> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" <!-- DTD的网络位置--> "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> <beans>
4.4Schema
功能比DTD强大,但是至今DTD仍占有一定市场
命名空间:
默认的命名空间
xmlns="http://www.XXXXX.cn/bean"
有很多人这里不理解,其实在我们下载到的Scehma文件中有一句:
targetNamespace="http://www.XXXXX.cn/bean"
他们名字相同,意思就是用的时候用xmlns来引用,至于为什么用域名,那是因为域名全球唯一啊,不重复,只给你们公司用,不冲突。
显式的命名空间 :
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 使用标签时,必须加前缀 xsi:xxx 必须指定xsd文件的位置 //命名空间 约束文件的名字 xsi:schemaLocation="http://www.XXXXXX.cn/bean bean-schema.xsd">
4.5注意
在Scehma文件中有如下这些,其实不用太在意,我们下载框架就已经一块下载了,要不就是联网的的时候就一块下载下来了。所以这里就不细讲了。
xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.XXXXX.cn/bean" xmlns:tns="http://www.itheima.cn/bean" elementFormDefault="qualified">
4.6Schema怎么约束的:
直接上代码:<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.XXXXX.cn/bean" xmlns:tns="http://www.itheima.cn/bean" elementFormDefault="qualified">
<!-- 声明根标签
1. <element> 声明元素(标签)
2. 每一个元素必须确定类型:
complexType 复杂类型
simpleType 简单类型,一般不用,大部分都是复杂类型
3. 需要继续明确子标签出差顺序
<choice> 选择, ()XML Schema 的 choice 元素仅允许包含在 <choice> 声明中的元素之一出现在包含元素中
<sequence> 顺序 ,
<all> 任意
minOccurs 最少出现次数
maxOccurs 最大出现次数,unbounded 不限制(没有边)
4.<attribute>用于给元素声明属性的
use 设置属性使用, optional可选、required必选
-->
<element <
d0b1
span class="hljs-attribute">name="beans">
<complexType>
<choice minOccurs="0" maxOccurs="unbounded">
<element name="bean">
<complexType>
<sequence minOccurs="0" maxOccurs="unbounded">
<element name="property">
<complexType>
<attribute name="name" use="optional"></attribute>
<attribute name="value" use="required"></attribute>
</complexType>
</element>
</sequence>
<attribute name="id" use="required"></attribute>
<attribute name="className" use="required"></attribute>
</complexType>
</element>
<element name="import">
<complexType>
<attribute name="resource" use="required"></attribute>
</complexType>
</element>
</choice>
</complexType>
</element>
</schema>
相关文章推荐
- XML文件约束之DTD详解以及xml文件的dtd描述文件本地化
- xml简单介绍以及dtd约束
- XML_DTD约束和XML_Schema约束以及使用dom4j解析
- xml DTD的约束以及校验
- 电商网站开发记录(四) logback.xml配置以及初始代码提交
- javaweb之xml以及其约束
- 使用JAXB时,xml与java对象互转以及初始情况下直接由模板xml生成javabean
- asp中读取xml以及Utf-8和Gb2312乱码问题
- J2EE进阶之XML DTD约束和JAXP的DOM解析 六
- xml和web Server以及Remoting
- JavaWeb之XML语法、XML约束、XML解析
- 心得2--XML约束--DTD精讲
- XML简介之XML的Schema约束
- XML解析以及增删改查的操作6
- Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(上)
- Java Web Xml的DTD约束
- hibernate映射文件生成数据库脚本过程,sequence 设定初始值 以及自定义增量问题
- 约束以及修改数据表
- XML配置DTD约束文件
- XML约束---DTD,Schema