XML学习笔记三

1、有效的XML文档。首先XML文档是个格式正规的XML文档,然后满足DTD的要求,这样的XML文档成为有效的XML文档。

2、DTD文档的声明及引用

内部DTD文档

<!DOCTYPE 根元素 [定义内容]>

外部DTD文档

<!DOCTYPE 根元素 SYSTEM "DTD文件路径">

内外部DTD文档结合

<!DOCTYPE 根元素 SYSTEM "DTD文件路径"[定义内容]>

3、#PCDATA(Parsed Character Data),可解析的字符数据。

4、DTD示例:

1)内部

<?xml version="1.0" encoding="UTF-8"?>

<!-- DTD begin -->

<!DOCTYPE poem [

<!ELEMENT poem (author, title, content)>

<!ELEMENT author (#PCDATA)>

<!ELEMENT title (#PCDATA)>

<!ELEMENT content (#PCDATA)>

]>

<!-- DTD end -->

<poem>

<author> 王维</author >

<title> 鹿柴</title >

<content> 空山不见人,但闻人语响。

返景入深林,复照青苔上。 </content>

</poem>

5、元素的定义

<!ELEMENT NAME CONTENT>

CONTENT:

EMPTY、ANY、#PCDATA、纯元素类型、混合类型

6、属性的定义

语法:

<!ATTLIST 元素名称

属性名称   类型  属性特点

。。。。

>

类型:CDATA、ID、IDREF/IDREFS、NMTOKEN/NMTOKENS、Enumerated、ENTITY/ENTITIES、NOTATION、NOTATIONS

属性特点:#REQUIRED、#IMPLIED、#FIXED value、 Default value

7、定义实体——内部实体

语法:<!ENTITY 实体名 "实体值">

8、定义实体——外部实体

语法:<!ENTITY 实体名 SYSTEM "URI/URL">

9、关于普通实体与参数实体

1)普通实体实在dtd中定义,xml中使用,使用的时候格式为:&address;

2)参数实体实在dtd中定义,dtd中使用,定义的时候使用%,使用的时候也需要使用%,%address;

3)普通外部实体的定义方式是:

<!ENTITY address SYSTEM "URI/URL"> ,使用时&address

4)外部参数实体:

<!ENTITY %address SYSTEM "URI/URL">,使用时%address

时间: 2024-10-09 21:50:49

XML学习笔记三的相关文章

XML学习笔记(五):使用 jdom和dom4j 解析XML

XML解析的详细分析与jaxp解析XML详见:XML学习笔记(四):使用 DOM和SAX 解析XML 一.JDom 1.创建XML文件: 1)Document类即代表整个XML文档,把生成的 Document 利用 XMLOutputter 类输出即可. 2)映射关系:元素:Element:属性:Attribute:注解:Comment:文本信息:Text: 3)注意:addContent()是追加,setContent()会覆盖. /** * 创建XML * * @throws IOExcep

Spring Batch学习笔记三:JobRepository

此系列博客皆为学习Spring Batch时的一些笔记: Spring Batch Job在运行时有很多元数据,这些元数据一般会被保存在内存或者数据库中,由于Spring Batch在默认配置是使用HSQLDB,也就是说在Job的运行过程中,所有的元数据都被储存在内存中,在Job结束后会随着进程的结束自动消失:在这里我们推荐配置JobRepository去使用MySQL. 在这种情况下,Spring Batch在单次执行或者从一个执行到另外一个执行的时候会使用数据库去维护状态,Job执行的信息包

Ajax学习笔记(三)

三.jQuery库详解 1.使用jQuery之后,javascript操作的不再是HTML元素对应的DOM对象,而是包装DOM对象的jQuery对象.js通过调用jQuery对象的方法来改变它所包装的DOM对象的属性,从而实现动态更新HTML页面. 由此可见,使用jQuery动态更新HTML页面只需以下两个步骤: (1)获取jQuery对象.jQuery对象通常是DOM对象的包装 (2)调用jQuery对象的方法来改变自身.当jQuery对象被改变时,jQuery包装的DOM对象随之改变,HTM

Ninject学习笔记&lt;三&gt;

ASP.NET MVC学前篇之Ninject的初步了解 1.介绍 废话几句,Ninject是一种轻量级的.基础.NET的一个开源IoC框架,在对于MVC框架的学习中会用到IoC框架的,因为这种IoC开源框架有很多,本篇的主题只有一个,就是让阅读过本篇幅的朋友逗知道IoC框架在项目中的作用,以及它的重要性. 这样做的目的是以便在以后的学习工作中选择自己中意的一个IoC框架来学习.使用,或者是自己去实现一个.好了,不废话了. 2.环境准备 1.新建个4.0Framework的一个控制台应用程序项目,

Caliburn.Micro学习笔记(三)----事件聚合IEventAggregator和 Ihandle&lt;T&gt;

Caliburn.Micro学习笔记(三)----事件聚合IEventAggregator和 Ihandle<T> 今天 说一下Caliburn.Micro的IEventAggregator和IHandle<T>分成两篇去讲这一篇写一个简单的例子 看一它的的实现和源码 下一篇用它们做一个多语言的demo 这两个是事件的订阅和广播,很强大,但用的时候要小心发生不必要的冲突. 先看一下它的实现思想 在Caliburn.Micro里EventAggregator要以单例的形式出现这样可以

OpenCV for Python 学习笔记 三

给源图像增加边界 cv2.copyMakeBorder(src,top, bottom, left, right ,borderType,value) src:源图像 top,bottem,left,right: 分别表示四个方向上边界的长度 borderType: 边界的类型 有以下几种: BORDER_REFLICATE # 直接用边界的颜色填充, aaaaaa | abcdefg | gggg BORDER_REFLECT # 倒映,abcdefg | gfedcbamn | nmabcd

NFC学习笔记——三(在windows操作系统上安装libnfc)

本篇翻译文章: 这篇文章主要是说明如何在windows操作系统上安装.配置和使用libnfc. 一.基本信息 1.操作系统: Windows Vista Home Premium SP 2 2.硬件信息: System: Dell Inspiron 1720 Processor: Intel Core 2 Duo CPU T9300 @ 2.5GHz 2.5GHz System type: 32-bit Operating System 3.所需软件: 在windows操作系统上安装软件需要下列

swift学习笔记(三)关于拷贝和引用

在swift提供的基本数据类型中,包括Int ,Float,Double,String,Enumeration,Structure,Dictionary都属于值拷贝类型. 闭包和函数同属引用类型 捕获则为拷贝.捕获即定义这些常量和变量的原作用域已不存在,闭包仍然可以在闭包函数体内引用和修改这些值 class属于引用类型. Array的情况稍微复杂一些,下面主要对集合类型进行分析: 一.关于Dictionary:无论何时将一个字典实例赋给一个常量,或者传递给一个函数方法时,在赋值或调用发生时,都会

加壳学习笔记(三)-简单的脱壳思路&amp;调试思路

首先一些windows的常用API: GetWindowTextA:以ASCII的形式的输入框 GetWindowTextW:以Unicaode宽字符的输入框 GetDlgItemTextA:以ASCII的形式的输入框 GetDlgItemTextW:以Unicaode宽字符的输入框 这些函数在使用的时候会有些参数提前入栈,如这函数要求的参数是字符串数目.还有大小写啦之类的东西,这些东西是要在调用该函数之前入栈,也就是依次push,就是说一般前面几个push接着一个call,那前面的push可能