XML知识小结1

首先要了解下XML是什么作用,它可以描述数据、传输数据,而且XML文件写法上有着固定的写法,在每个XML文件开头第一句都是<?xml version="1.0"?>,而且前面不允许有空格或者换行或者注释,其中还可以添加属性encoding,不写的话默认为UTF-8。每个XML文件必须有开始和结束标签,而且只能有一个根标签,其中的标签必须合理嵌套。XML不会忽略标签中的空格和回车换行。元素(标签)的名称可以包含字母、数字、减号、下划线和英文句点(区分大小写)。属性值一定要用引号(单引号或双引号)引起来。

写XML文档时要注意格式,所以出现了XML约束来控制,其中介绍两个一个是DTD一个是schema,当然DTD已经快被淘汰了,这里就简单写一下DTD格式,能根据DTD写出XML文件即可。


DTD的语法细节
1DTD的定义
可以将DTD的内容单独定义到一个文档中。但此文档保存时必须使用UTF-8
可以将DTD定义在XML文档中(没有编码要求)
<!DOCTYPE 根元素名称 [
DTD定义的内容
]>
2DTD(DTD作为单独文件存在)在xml中的引入
a、DTD文档在本地
<!DOCTYPE 根元素 SYSTEM "DTD的存放路径">
b、DTD在公共网络上
<!DOCTYPE 根元素 PUBLIC "DTD文档的名称" "DTD的URL">
3定义元素
语法:<!ELEMENT 元素名称 使用规则>
使用规则:
(#PCDATA):标签的主体内容为普通字符串
EMPTY:用于指示元素的主体为空。
(子元素):标签中含有其他的子元素
子元素的细节:
   出现次数:
描述子元素的出现次数
+:至少一次
*:0次、一次或多次
?:0次或一次
什么都不带:必须一次且只能一次
   出现的顺序:
如果各子元素用逗号分开,必须按照顺序出现
如果各子元素用|分开,任选其一
4定义元素属性
语法:<!ATTLIST 元素名
属性名1 属性类型 设置说明
属性名2 属性类型 设置说明
>
语法细节:
属性类型:
CDATA:表示属性的取值为普通的文本字符串
ENUMERATED (DTD没有此关键字):表示枚举,只能从枚举列表中任选其一,如(鸡肉|牛肉|猪肉|鱼肉)
ID:表示属性的取值不能重复
设置说明:
#REQUIRED:表示该属性必须出现
#IMPLIED:表示该属性可有可无
#FIXED:表示属性的取值为一个固定值。语法:#FIXED "固定值"
直接值:表示属性的取值为该默认值
5定义实体
作用:用一个名字引用一段内容
引用实体:
概念:在DTD中定义,在XML中使用
语法:<!ENTITY 实体名称 “实体内容”>
在xml中进行引用:&实体名称;
参数实体:
概念:在DTD中定义,在DTD中使用
语法:<!ENTITY % 实体名称 “实体内容”>
引用方式(注意是在DTD中使用):%实体名称;

shcema约束的优势便在于本身就是一个XML文件,遵循XML书写规范,Schema一般会将定义的约束绑定到一个名称空间上,例如:targetNamespace="http://www.itcast.cn"。

根据schema文档来编写XML文档,查看Schema文档,第一个element就定义了根元素,查看Schema文档,根元素中的targetNamesapce就是定义的名称空间,在xml文档中,可以使用xmlns来声明名称空间,使用schemaLocation来指定该名称空间所对应的xsd文件,他所在的名称空间为一个固定值:http://www.w3.org/2001/XMLSchema-instance,对于来自名称空间的标签,都要加上自定义的名称空间。

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  targetNamespace="http://www.itcast.cn"
  elementFormDefault="qualified">
<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>

根据以上schema文档编写的XML文档为

<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.cn" 
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xs:schemaLocation="http://www.itcast.cn demo1.xsd">
<itcast:书>
<itcast:书名></itcast:书名>
<itcast:作者></itcast:作者>
<itcast:售价></itcast:售价>
</itcast:书>
</itcast:书架>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值