[学习笔记]XML基础及约束
发布时间:2020-12-16 06:13:38 所属栏目:百科 来源:网络整理
导读:XML概述 定义 XML(eXtensible Markup Language,可扩展标记语言),也是一种标记语言,类似HTML,但是其一般用于描述数据,而非显示数据。 XML没有预定义标签,需要用户自行定义标签。 XML技术是W3C组织(World Wide Web Consortium万维网联盟)发布的,目前
XML概述定义
作用
XML语法XML文档的组成
文档声明:<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
注释:<!--注释-->
元素:
元素的属性:
CDATA区
特殊字符
处理指令(PI,Processing Instruction)
XML约束
XML约束之DTD概述
DTD(文档类型定义,Document Type Definition):用于定义XML的书写规范。
验证
根据能否对XML文档进行约束模式校验,可以将解析器分为两类:
定义DTD的方式
DTD约束文档可以在XML文档中直接定义,也可以作为单独的文档进行编写(单独的文档必须以UTF-8编码进行保存)。
方式1
在文档中直接定义DTD:
方式2
XML文档中引入外部约束,DTD约束文件扩展名为“.dtd”:
DTD语法元素
DTD文档中使用ELEMENT关键字来声明一个XML元素:<!ELEMENT 元素名称 使用规则>
其中使用规则如下:
子元素的规则如下:
属性
<!ATTLIST 元素名 属性名1 属性值类型 设置说明 属性名2 属性值类型 设置说明 …>
DTD文档中使用ATTLIST关键字来为一个元素声明属性:
如:
属性值类型:
设置说明:
示例
xml version = "GB2312" ?><!DOCTYPE 联系人列表[ <!ELEMENT 联系人列表 ANY> <!ELEMENT 联系人(姓名,EMAIL)> <!ELEMENT 姓名(#PCDATA)> <!ELEMENT EMAIL(#PCDATA)> <!ATTLIST 联系人 编号 ID #REQUIRED><联系人列表> <联系人 编号=“a"> <姓名>张三</姓名> <EMAIL>zhang@it315.org</EMAIL> </联系人> <联系人 编号=“b"> <姓名>李四</姓名>li@it315.org</联系人列表>
实体概述
引用实体
在DTD中定义,在XML中使用。
语法:
DTD:<!ENTITY 实体名称 "实体内容">
XML:&实体名称;
参数实体
<书架 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"><书架>
在DTD中定义,在DTD中使用。
DTD:<!ENTITY %实体名称 "实体内容">
DTD:%实体名称;
XML约束之Schema
概述
XML Schema 也是一种用于定义和描述 XML 文档结构与内容的模式语言,其出现是为了克服 DTD 的局限性。
特点
名称空间
Schema约束的引用1. XML Schema文档中声明名称空间
示例
2. 使用名称空间引入Schema
?><it:书架 xmlns:it="http://www.it.com" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://www.it.com books.xsd">:书:书名Think in Java</it:作者杨旗:售价90>:书架>
3. 使用默认名称空间引入Schema4. 使用名称空间引入多个Schema约束<书架 xmlns="http://www.it1.com" xmlns:demo="http://www.it2.com" xsi:schemaLocation="http://www.it1.com xmlbook.xsd http://www.it2.com demo.xsd"> 5. 不使用名称空间引入Schema
<书架 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xmlbook.xsd"></书架>
Schema语法
示例:
targetNamespace="http://www.itheima.com"<xs:element name'书架'><!-- 是根元素,元素名称:书架 --><xs:complexType><!-- 复杂类型(有子元素) --><xs:sequence maxOccurs"unbounded"<!-- 有序的,最大出现次数:无限制 -->"书"<!-- 元素名称是:书 --><!-- 复杂类型 --><xs:sequence><!-- 有序的 -->"书名" type"xs:string"/><!-- 元素名称和类型 -->"作者"/>"售价"</xs:sequence></xs:complexType></xs:element></xs:element></xs:schema>
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – 如何在黄瓜测试中集成parallel_test和思考
- ruby-on-rails – compass-rails gem不能在heroku中运行?
- VB6给MDI窗口(父窗口)动态绘制背景的种种方法
- SQLite使用小结
- ruby-on-rails – 如何使用Tim Pope的cuc.vim vim插件?
- c# – GridView在按钮单击更新数据时刷新
- ruby-on-rails – Postgres随机停止工作(Rails,PGSQL.5432)
- dart – 根据条件添加小部件
- c – 我可以使用哪些库来简单,轻量化的消息传递?
- postgresql图片等二进制数据的存储(copy命令,bytea类型)