xml(二)

 

Xml文档结构

<?xml version=”1.0” [遵循的规范为1.0] encoding=”utf-8”[编码集] standalone=”yes”[是否为独立的xml文档]  ?>

<!DOCTYPE 根标记的名称 SYSTEM “dtd1.dtd”>dtd的引用

<根标记>

       <子标记></子标记>

       。。。。。。。

</根标记>

 

dtd1.dtd为了定义能在xml文档中出现的元素有哪些、元素的属性、元素的顺序

<!xml version=”1.0” encoding=”utf-8”?>

<!ELEMENT元素的名称 元素的类型>-------定义元素

<!ATTLIST 元素名 属性名 类型 keyword[是必须选的还是可以不选] “默认值”>--------定义元素的属性

<!ELEMENT br EMPTY>---br不能有内容,可以为<br/>单标记或者<br></br>中间不能有内容

<!ELEMENT 元素名 (#PCDATA)>-------PCDATA定义的元素的里面是文本,不能包含子标签

<!ELEMENT  学生 (学号,姓名)>--------学生里面只能出现学号和姓名这两个子标记

<!ELEMENT  学生 (#PCDATA|学号|姓名)*>--------姓名和学号可以无序的出现多次,要是没有*那么就是互斥

 

定义混合内容元素

<!ELEMENT 父元素名 (#PCDATA|子元素1|子元素2|子元素3…..)*>

<?xml version="1.0" encoding="GB2312"?>

<!ELEMENT 喜欢的游戏 (#PCDATA | 游戏)*>

<!ELEMENT 游戏 (#PCDATA | 游戏名称 | 游戏类型)*>

<!ELEMENT 游戏名称 (#PCDATA)>

<!ELEMENT 游戏类型 (#PCDATA)>

<!xml version=”1.0” encoding=”utf-8”?>

<喜欢的游戏>

       这是我喜欢的游戏

       <游戏>

       <游戏名称>

              这是游戏名称,名称和类型可以互换位置,可以出现多次

       </游戏名称>

       <游戏类型>

              这是游戏类型

       </游戏类型>

 

</游戏>

</喜欢的游戏>

 

<书籍列表>

       <计算机书籍>

              <书名>完全</书名>

</计算机书籍>

<计算机书籍>

              <价格></价格>

</计算机书籍>

 

</书籍列表>

 

ATTLIST 元素名 属性名 类型 keyword “默认值“属性名 类型 keyword “默认值“…>

 

#REQUIRED 该属性是必须的

#IMPLIED 该属性可以没有

#FIXED  该属性有固定值,不论设置或不设置,都为固定值

Eg:

<!ELEMENT 作者 地址 CDATA  #FIXED  “保定市”>

<!ATTLIST  作者 性别 (男|女)  “男”>---------枚举类型,默认为男,只能在男女之间选

<!ELEMENT 读者 EMPTY >

<!ATTLIST  读者  书号  IDREF  #IMPLIED>--------读者所读书的书号

<!ATTLIST  读者  书号  IDREFS  #IMPLIED>-------------在xml中可以写出多本书的书号

<读者 书号=”it0001  it0002 ”>

子元素之间存在的逻辑关系:

1、  有序的子元素

用英文逗号(,)作为子元素之间的分隔符,则子

元素之间必须遵守所定义的顺序。

2、  互斥的子元素

互斥的子元素表明一系列子元素之间只能出现

其中一次。互斥子元素使用竖线(|)分隔,以竖

线(|)分隔的多个元素只能出现其中之一。

 

3、  无序的子元素

<!ELEMENT  学生 (#PCDATA|学号|姓名)*>--------姓名和学号可以无序的出现多次,要是没有*那么就是互斥

 

子元素出现的频率:

+: 表明子元素可以出现1次或多次

*:  表明子元素可以出现0次或多次

?:  表明子元素可以出现0次或1次

 

定义任意类型的元素

<!ELEMENT   元素名   ANY>

定义字符串内容的元素

<!ELEMENT   元素名   #PCDATA>

 

定义属性类型

属性类型

含义

CDATA

值为字符串数据

(en1|en2|..)

此值是枚举列表中的一个值

ID

该属性值必须是有效地标识符,在XML文档时唯一的

IDREF

值为另外一个元素的 id属性值

IDREFS

值必须引用自多个已经有的ID属性值,多个ID属性值用空格隔开

NMTOKEN

值为合法的 XML 名称

NMTOKENS

值为多个合法的 XML 名称的列表

ENTITY

值是一个外部实体,如图片支持

ENTITIES

值是一个实体列表,多个实体之间以空格隔开

NOTATION

该属性值是在DTD中声明过的符号,这个是过期的,不要使用

 

 

定义实体作用

1、提高代码的敷用,方便修改,维护XML文档

2、使用某些特殊的符号,这些特殊的符号可能会使XML解析器混淆

3、减少字符输入量,如果某个字符串特别长,而且需要经常使用,则可以定义为实体

 

content  “详细的内容介绍”

&content;------实体引用,相当于字符串“详细的内容介绍”

 

实体的分类

1、按照实体的具体内容来分类,实体可分为可解析与不可解析两类

2、按照逻辑存储来分类,实体可分为内部实体与外部实体两类

3、按照使用的范围来分类,实体可分为一般实体与参数实体两类。

 

定义普通实体

<!ENTITY  实体名  “实体值”>------内部实体,一般的普通实体

<!ENTITY  title   “所有计算机书籍的列表”>

使用实体的语法:

       &实体名;

       &title;

定义参数实体

<!ENTITY  % 实体名  “实体值”>

使用实体的语法:

       %实体名

外部普通实体

<! ENTITY    实体名  SYSTEM  “实体值所在文件的URI”>

<! ENTITY   实体名  PUBLIC “公用实体标识名”  “实体值所在文件的URI”>

外部参数实体

<!ENTITY %实体名 SYSTEM|PUBLIC[“公用实体标识名”]  “实体值所在文件的URI”>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值