xml DTD

定义元素<!ELEMENT 元素名 元素类型描述 >

(1)元素类型描述:任意类型,字符串型,空元素,包含子元素,混合类型

任意类型:

<?xml version="1.0" encoding="GB2312" standalone="yes"?>
<!DOCTYPE 书籍列表[
<!ELEMENT 书籍列表 ANY>
]>
<书籍列表>
书籍列表
</书籍列表>
<?xml version="1.0" encoding="GB2312" standalone="yes"?>
<!DOCTYPE 书籍列表[
<!ELEMENT 书籍列表 ANY>
]>
<书籍列表/>

字符串类型:

<?xml version="1.0" encoding="GB2312" standalone="yes"?>
<!DOCTYPE 书籍列表[
<!ELEMENT 书籍列表 (#PCDATA)>
]>
<书籍列表>描述</书籍列表>

空类型

<?xml version="1.0" encoding="GB2312" standalone="yes"?>
<!DOCTYPE 书籍列表[
<!ELEMENT 书籍列表 EMPTY>
]>
<书籍列表/>

混合类型

<?xml version="1.0" encoding="GB2312"?>
<!ELEMENT 喜欢的游戏 (#PCDATA | 游戏)*>
<!ELEMENT 游戏 (#PCDATA | 游戏名称 | 游戏类型)*>
<!ELEMENT 游戏名称 (#PCDATA)>
<!ELEMENT 游戏类型 (#PCDATA)>
<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE 喜欢的游戏 SYSTEM
"mixed.dtd">
<喜欢的游戏>
游戏和编程是类似的,都是一种兴趣
<游戏>
<游戏类型>动作格斗</游戏类型>
<游戏名称>侍魂</游戏名称>
适合释放紧张的、沉闷的感觉
</游戏>
<游戏>
放松、舒缓心情的好游戏。
<游戏名称>雷电</游戏名称>
<游戏类型>飞行射击</游戏类型>
</游戏>
<游戏>
<游戏名称>雷电</游戏名称>
</游戏>
<游戏>
<游戏名称>雷电</游戏名称>
<游戏名称>侍魂</游戏名称>
</游戏>
</喜欢的游戏>

(2)定义子元素

有序子元素-----使用英文(,)作为子元素之间的分割符

<?xml version="1.0" encoding="GB2312"?>
<!ELEMENT 书籍列表 (计算机书籍)*>
<!ELEMENT 计算机书籍 (书名,作者,价格,简要介绍)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 价格 (#PCDATA)>
<!ELEMENT 简要介绍 (#PCDATA)>

互斥------使用(|)隔开

<?xml version="1.0" encoding="GB2312"?>
<!ELEMENT 书籍列表 (计算机书籍)*>
<!ELEMENT 计算机书籍 (书名|作者|价格)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 价格 (#PCDATA)>

子元素出现的频率

+:可以出现一次货多次

*:可以出现零次或多次

?:可以出现零次或一次

<?xml version="1.0" encoding="GB2312"?>
<!ELEMENT 书籍列表 (计算机书籍)*>
<!ELEMENT 计算机书籍 (书名|作者*|价格+|简要介绍?)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 价格 (#PCDATA)>
<!ELEMENT 简要介绍 (#PCDATA)>

组合子元素

<?xml version="1.0" encoding="GB2312"?>
<!ELEMENT 书籍列表 (计算机书籍)*>
<!ELEMENT 计算机书籍 ((书名+,作者)|(价格,简要介绍))>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 价格 (#PCDATA)>
<!ELEMENT 简要介绍 (#PCDATA)>

无序子元素

<?xml version="1.0" encoding="GB2312"?>
<!ELEMENT 书籍列表 (计算机书籍)*>
<!ELEMENT 计算机书籍 (书名|作者|价格)+>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 价格 (#PCDATA)>

(3)定义属性

<!ATTLIST 属性所属的元素 属性名 属性类型 [元素对属性的约束] [默认值]>

属性约束:

->#REQUIRED:必须为该元素提供该属性

->#IMPLIED:该属性值可有可无

->#FIXED:必须为该属性值指定默认值

属性类型:

CDATA ------------------属性值只能是字符串数据

(en1|en2)--------------枚举类型

ID------------------------属性的有效标示符(唯一)

IDREF--------------------引自另一个已有的ID属性值

IDREFS-------------------引自多个ID,之间用空格分隔

ENTITY-------------------一个外部实体,例如图片文件

ENTITIES-----------------多个外部实体,多实体之间用空格隔开

XML:--------------------预定义的XML值

 

xml学习总结(一)的更多相关文章

  1. XML 学习介绍 收藏

    XML学习总结(一)——XML介绍 一.XML概念 Extensible Markup Language,翻译过来为可扩展标记语言.Xml技术是w3c组织发布的,目前推荐遵循的是W3C组织于2000发 ...

  2. XML学习笔记

    XML学习笔记 第一部分:XML简介 我们经常可以听到XML.HTML.XHTML这些语言,后两者比较清楚,一直不是很明白XML是什么,这里做一个总结. XML(eXtensible Markup L ...

  3. SQL SERVER XML 学习总结

    SQL  SERVER  XML  学习总结 最新的项目任务要做一个数据同步的功能,这些天都在做技术准备,主要是用到了微软的Service Broker技术,在熟悉使用该技术的同时,又用到了Sql s ...

  4. XML学习笔记(2)--dom4j操作XML

    1. 介绍(四种方式的比较这部分转载自:http://www.blogjava.net/xcp/archive/2010/02/12/312617.html) 1)DOM(JAXP Crimson解析 ...

  5. XML学习笔记(1)--XML概述

    XML基本概念 XML—extensible Markup Language(可扩展标记语言) XML最基本的三个概念 1)XML语言---描述事物本身(可扩展) 2)XSL语言---展现事物表现形式 ...

  6. XML学习总结(二)——XML入门

    XML学习总结(二)——XML入门 一.XML语法学习 学习XML语法的目的就是编写XML 一个XML文件分为如下几部分内容: 文档声明 元素 属性 注释 CDATA区 .特殊字符 处理指令(proc ...

  7. XML学习教程

    XML学习进阶1-- 什么是XML. 为什么使用 XML?... 什么是 XML?... 数据的结构表示... XML 文档... 数据是从表示和处理中分离出来的... 使XML数据自描述... XM ...

  8. Robot framework--内置库xml学习(一)

    Using lxml By default this library uses Python's standard ElementTree module for parsing XML, but it ...

  9. Java第三阶段学习(十、XML学习)

    一.XML学习 1.模拟Servlet执行 在学习完前端及java与数据库后,将进行WEB编程阶段的学习.在WEB编程中,可以通过浏览器访问WEB服务器上的数据.这时WEB服务器就相当于另一台计算机. ...

  10. [python xml 学习篇][0]

    tree = ET.parse("Result.xml")root = tree.getroot()print type(root)print root.tag # 得到root ...

随机推荐

  1. 实现JavaScript的组成----BOM和DOM

    我们知道,一个完整的JavaScript的实现,需要由三部分组成:ECMAScript(核心),BOM(浏览器对象模型),DOM(文档对象模型). 今天主要学习BOM和DOM. BOM: BOM提供了 ...

  2. VMware系统运维(一)安装Esxi

    1.下载ISO文件,开始安装,如图1,直接按回车进行安装. 图1 2.按回车键继续安装,如图2所示 图2 3.选择要安装系统的磁盘,按回车继续,如图3所示 图3 4.选择对应的键盘语言,按回车继续,如 ...

  3. BZOJ 3505

    3505: [Cqoi2014]数三角形 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1171  Solved: 703[Submit][Statu ...

  4. 自己改写的asp.net MVC EF Respoistory 仓储模式

    之前改写网上收集的Respoistory 模式感觉很多地方都是不可取的,这里经过这段时间的充电重新改写一版,当然注释已加,还有不懂的,可以留言我. 首先还是拿出IRespoistory的接口层代码 u ...

  5. ECharts地图详解 【转】

    $(function() { // 路径配置 require.config({ paths : { // echarts: 'http://echarts.baidu.com/build/dist' ...

  6. Servlet & JSP - Filter

    过滤器可以对用户的请求拦截,进行预处理操作,接着将请求交给 Servlet 处理并生成响应,最后再对响应拦截,进行后处理操作.过滤器应用的场景有:用户登录.加密解密.会话校验等. Filter API ...

  7. SparkSQL之数据源

    准备json文件: cat /root/1.json {"name":"Michael"} {"name":"Andy" ...

  8. NAT地址转换原理全攻略

    NAT转换方式及原理 在NAT的应用中,可以仅需要转换内部地址(就是“内部本地址”转换成“内部全局地址”),这是最典型的应用,如内部网络用户通过NAT转换共享上网:也可以是仅需要转换外部地址(就是“外 ...

  9. 一段C程序分析

    #include <stdio.h> #include <stdlib.h> void main() { int i; ; char ch; printf("请输入一 ...

  10. 牢记!SQL Server数据库开发的二十一条注意点

    如果你正在负责一个基于SQL Server的项目,或者你刚刚接触SQL  Server,你都有可能要面临一些数据库性能的问题,这篇文章会为你提供一些有用的指导(其中大多数也可以用于其它的DBMS). ...