XML文件编写详细过程
xml简介
xml语言是具有结构性的标记语言, 可以灵活的存储一对多的数据关系.
举例
以上这种数据, 如果通过我们学习的集合来存储的话, 需要通过多个集合的嵌套使用,那么很显然, 数据存储的过程就非常麻烦, 但是xml文件就可以很简单的存储这种一对多的数据,
另外xml还可以用来当做配置文件存储数据
Xml文件的组成部分
文档声明
元素
元素的属性
注释
CDATA区
特殊字符
处理指令(PI:Processing Instruction)
文档声明: 在编写XML文档时,需要先使用文档声明来声明XML文档。且必须出现在文档的第一行。这就好比我们在写java文件的时候需要声明class一样, 就是个硬性的规定。
例如:
<?xml version='1.0' encoding='UTF-8'?>
xml表示标签的名字
version表示当前文件的版本号
encoding表示当前编码, 需要跟文件的编码产生对应关系
ps: standalone表示标记此文档是否独立
xml的元素: xml中的元素其实就是一个个的标签
标签分为两种
a: 包含标签体: 简括号全部成对儿出现, 所有的数据都用一对儿简括号存储
<student><name>zhangsan</name><age>18</age></student>
b: 不包含标签体: 只有最外层的一个简括号,括号用/标识结束, 内部的数据都用属性来编写
<student name="zhangsan" age="18" />
标签(元素的书写规范):
严格区分大小写;<p><P>
只能以字母或下划线开头;abc _abc
不能以xml(或XML、Xml等)开头;
名称字符之间不能有空格或制表符;
名称字符之间不能使用冒号 :
元素中属性的注意事项:
一个元素可以有多个属性,每个属性都有它自己的名称和取值。
属性值一定要用引号(单引号或双引号)引起来。
属性名称的命名规范与元素的命名规范相同
元素中的属性是不允许重复的
在XML技术中,标签属性所代表的信息也可以被改成用子元素的形式来描束
xml的注释:<!—被注释的内容 -- > 注意: 注释不能嵌套定义
CDATA区:如果我们在标签中写入的内容, 想要带有标签的标记符号的话, 就需要对这段内容进行转义,想要将<name>当做内容存储的话, 就需要对他进行转义。这种转移可以达到效果, 但是如果操作的数据过多, 编写起来会非常痛苦, 所以, 可以使用CDATA区来解决此问题。
示例:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 如果有一个包含标签体的标签,他的标签体是一个普通文本,不是子标签,而普通文本中包含了一个标签,那这样可以吗?
--><students><student><name>zhangsan</name><url><![CDATA[<itheima>www.itheima.com</itheima><itcast>www.itcast.cn</itcast>]]></url></student><student><name>zhangsan</name><url><itheima>www.itheima.com</itheima></url></student>
</students>
DTD约束:
XML都是用户自定义的标签,若出现小小的错误,软件程序将不能正确地获取文件中的内容而报错。(如:Tomcat)
XML技术中,可以编写一个文档来约束一个XML的书写规范,这个文档称之为约束
1.编写DTD文件
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT 书架(书+)><!ELEMENT 书 (书名,作者,售价)><!ELEMENT 书名 (#PCDATA)><!ELEMENT 作者 (#PCDATA)><!ELEMENT 售价 (#PCDATA)>
2.在xml文件中引入DTD文件: 引入了写好的DTD文件后, 格式就必须跟DTD文件保持一致
<!DOCTYPE 书架 SYSTEM "book.dtd">
3.DTD语法规则:
在DTD文档中使用ELEMENT关键字来声明一个XML元素。
•语法:<!ELEMENT 元素名称 使用规则>
使用规则:
•(#PCDATA):指示元素的主体内容只能是普通的文本.(Parsed Character Data)
•EMPTY:用于指示元素的主体为空。比如<br/>
•ANY:用于指示元素的主体内容为任意类型。
•(子元素):指示元素中包含的子元素
•定义子元素及描述它们的关系:
–如果子元素用逗号分开,说明必须按照声明顺序去编写XML文档。
•如: <!ELEMENT FILE (TITLE,AUTHOR,EMAIL)
–如果子元素用"|"分开,说明任选其一。
•如:<!ELEMENT FILE (TITLE|AUTHOR|EMAIL)
–用+、*、?来表示元素出现的次数
•如果元素后面没有+*?:表示必须且只能出现一次
•+:表示至少出现一次,一次或多次
•*:表示可有可无,零次、一次或多次
•?:表示可以有也可以无,有的话只能有一次。零次或一次
定义属性:
•在DTD文档中使用ATTLIST关键字来为一个元素声明属性。
•语法:
<!ATTLIST 元素名
属性名1 属性值类型 设置说明
属性名2 属性值类型 设置说明
…
>
•属性值类型:
–CDATA:表示属性的取值为普通的文本字符串
–ENUMERATED (DTD没有此关键字):表示枚举,只能从枚举列表中任选其一,如(鸡肉|牛肉|猪肉|鱼肉)
–ID:表示属性的取值不能重复
•设置说明
–#REQUIRED:表示该属性必须出现
–#IMPLIED:表示该属性可有可无
–#FIXED:表示属性的取值为一个固定值。语法:#FIXED "固定值"
直接值:表示属性的取值为该默认值
示例:
<!ATTLIST 商品类别 CDATA #REQUIRED颜色 CDATA #IMPLIED
>
<?xml version = "1.0" encoding="GB2312" standalone="yes"?><商品 类别="服装"颜色="黄色" />
<?xml version = "1.0" encoding="GB2312" standalone="yes"?>
<!DOCTYPE 购物篮 [<!ELEMENT 购物篮 (肉+)><!ELEMENT 肉 EMPTY><!ATTLIST 肉 品种 ( 鸡肉 | 牛肉 | 猪肉 | 鱼肉 ) "鸡肉">
]>
<购物篮><肉 品种="鱼肉"/><肉 品种="牛肉"/><肉/>
</购物篮>
Schema约束:自身就是一个XML文件,但它的扩展名通常为.xsd
一个XML Schema文档通常称之为模式文档(约束文档),遵循这个文档书写的xml文件称之为实例文档。
XML Schema对名称空间支持得非常好
理解:
名称空间: 相当于package
约束文档: 编写好的Person类
实例文档: 通过Person类创建对象
实例代码
约束文档:
<?xml version='1.0' encoding='UTF-8' ?>
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' //标准的名称空间targetNamespace='http://www.itheima.com'//将该schema文档绑定到http://www.itheima.com名称空间><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 version="1.0" encoding="UTF-8"?>
<itheima:书架 xmlns:itheima="http://www.itheima.com"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.itheima.com book.xsd"><itheima:书><itheima:书名>JavaScript网页开发</itheima:书名><itheima:作者>张孝祥</itheima:作者><itheima:售价>28.00元</itheima:售价></itheima:书>
</itheima:书架>
名称空间:
<itheima:书架 xmlns:itheima="http://www.itheima.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.itheima.com book.xsd">
使用默认名称空间
•基本格式:
xmlns="URI"
•举例:
<书架 xmlns="http://www.it315.org/xmlbook/schema"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.it315.org/xmlbook/schema book.xsd"><书><书名>JavaScript网页开发</书名><作者>张孝祥</作者><售价>28.00元</售价></书><书架>
XML文件编写详细过程相关推荐
- java spring bean配置文件_Spring基于xml文件配置Bean过程详解
这篇文章主要介绍了spring基于xml文件配置Bean过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 通过全类名来配置: class:be ...
- Tomcat中web.xml文件的详细说明
Tomcat中web.xml文件的详细说明 <?xml version="1.0" encoding="GB2312"?> <!-- We ...
- c语言创建一个bat文件内容,BAT(批处理)文件编写详细手册
<BAT(批处理)文件编写详细手册>由会员分享,可在线阅读,更多相关<BAT(批处理)文件编写详细手册(41页珍藏版)>请在人人文库网上搜索. 1.BAT(批处理)文件编写详细 ...
- ANT 发布项目中 build.xml 文件的详细配置
xml 代码 <?xml version="1.0" encoding="UTF-8"?> <!-- name:对应工程名字 default: ...
- Android --- AndroidManifest.xml文件内容详细介绍
文章目录 1.android:label="@string/app_name" 2. android:icon="@mipmap/ic_launcher"与an ...
- web.xml加载详细过程(步骤)
转载自:http://blog.csdn.net/believejava/article/details/43229361 这篇文章主要是综合网上关于web.xml的一些介绍,希望对大家有所帮助,也欢 ...
- DOM4J解析XML文档、Document对象、节点对象节点对象属性、将文档写入XML文件(详细)...
Dom4j是一个简单.灵活的开放源代码的库.Dom4j是由早期开发JDOM开发的.与JDOM不同的是,dom4j使用接口和抽象的人分离出来而后独立基类,虽然Dom4j的API相对要复杂一些,但它提供了 ...
- xml文件的解析过程详解
XML项目工程展示图如下图: student.xml 文件展示:<?xml version="1.0" encoding="utf-8" ?> &l ...
- Oracle:使用Impdp导入dmp文件的详细过程
完全转载自:https://www.cnblogs.com/afei1013/p/13123784.html 这一天为了导入这个Oracle的dmp文件,简直就是血泪史,因本人对Oracle并不是很会 ...
最新文章
- 总结:SQL的优缺点及与NoSQL对比
- mysql的安全管理工具_最安全mysql管理工具
- UA MATH574M 统计学习V Variable Selection: LASSO
- iqn怎么查 linux_程序员必备:46个Linux面试常见问题!收藏!
- com.fasterxml.jackson将对象序列化成json时,出现在json里的属性名称是怎么来的
- 共同体不是c语言中的一个数据类型,《c语言程序设计教学资料》第12章---构体和共同体.ppt...
- JDBC之用元数据将结果集封装为List对象
- 2016年 1月15号 cocoapods的导入
- 斐波那契数列(Fibonacci)递归和非递归实现
- 基于机器视觉的IC表面字符检测
- volist 自增序号 分页如何实现?
- [HTML+CSS]电商网站模板
- dtu MySQL_DTU-DATACENTER
- java实现 poi XWPFDocument 读取word文档
- 下载各种离线地图(包括高德英文版地图)
- 中国浙江省动漫产业发展方向探析及投资决策建议报告2021-2027年
- (解决)PHP GD 插入PNG图片后透明背景变灰色
- Exe文件开机启动,隐藏运行窗口运行
- arm 中的nor flash 和 nand flash
- 计算机网络与协议实验VLAN配置,计算机网络实验三虚拟局域网vlan划分与配置