黑马day01(一)笔记

一、xml语法

1.文档声明

用来声明xml的基本属性,用来指挥解析引擎如何去解析当前xml

通常一个xml都要包含并且只能包含一个文档声明

xml的文档必须在整个xml的最前面,在文档声明之前不能有任何内容

<?xml version="1.0" ?>--version是必须存在的属性,表明当前xml所遵循规范的版本,目前位置都写1.0就可以了

<?xml version="1.0" encoding="utf-8" ?>--encoding用来只会解析引擎在解析xml时使用的编码,一定要保证xml格式的数据在保存时使用的编码和解析时使用的编码必须一致,才不会有乱码问题

<?xml version="1.0" encoding="utf-8" standalone="yes" />--standalone属性用来指明当前xml是否是一个独立的xml,默认值是yes表明当前文档不需要依赖于其他文档,如果当前文档依赖其他文档而存在则需要将此值设置为no

2.元素

一个xml标签就是一个元素

一个标签分为开始标签和结束标签

在开始标签和结束标签之间可以包含文本内容,这样的文本内容叫做标签体

如果标签的开始标签和结束标签之间不包含标签和子标签则可以将开始标签和结束标签进行合并,这样的标签就叫做自闭标签

一个标签中也可以包含任意多个子标签,但是一定要注意标签一定要合理嵌套

一个格式良好的xml要包含并且只能包含一个根标签,其他的标签都应该是这个标签的子孙标签

区分大小写,例如,<P>和<p>是两个不同的标记。

不能以数字或标点符号或"_"开头。

不能以xml(或XML、或Xml 等)开头。

不能包含空格

名称中间不能包含冒号(:)。

3.属性

一个标签可以有多个属性,每个属性都有它自己的名称和取值,例如:

<china capital="beijing"/>

属性的名在定义时要遵循和xml元素相同的命名规则

属性的值需要用单引号或双引号括起来

4. 注释

<!-- 注释内容 -->

注释可以出现在xml文档的任意位置除了整个文档的最前面.不能出现在文档声明之前

注释不能嵌套注释

5.CDATA区/转义字符

<![CDATA[转义的内容]]>:

当XML中一段内容不希望被解析器解析时可以使用CDATA区将其包住

当解析器遇到CDATA区时会将其内容当作文本对待,不会进行解析

语法:<![CDATA[ 内容 ]]>

转义字符:

&  --> &amp;

<  --> &lt;

>  --> &gt;

"  --> &quot;

‘  --> &apos;

6.处理指令

处理指令,简称PI (processing instruction)。处理指令用来指挥解析引擎如何解析XML文档内容。

<?xml-stylesheet type="text/css" href="1.css"?>

二、dtd语法 --- 了解语法,看得懂dtd就可以

1.如何在xml中引入dtd

(1)外部引入

可以将dtd的约束内容写在外置的dtd文件中,这个文件后缀必须为.dtd而文件保存时必须用utf-8编码保存.

再在xml文件中使用

<!DOCTYPE 根元素名称  SYSTEM 文件的位置>

如果写的是SYSTEM表明当前引入的dtd在当前文件系统中,后面制定的文件位置是当前硬盘中的位置

<!DOCTYPE 文档根结点 PUBLIC "DTD名称" "DTD文件的URL">

如果写的是PUBLIC表明当前引入的dtd在网络公共位置中,后面要指明dtd的名字和dtd所在网络位置URL地址

(2)内部引入

直接在xml中书写dtd

<!DOCTYPE 根元素名称[

dtd约束....

]>

2.dtd语法

(1)元素

<!ELEMENT 元素名称 元素约束>

元素约束:

存放类型:ANY/EMPTY

元素约束:子元素的列表,将可以包含的子元素用小括号括起来

子元素之间可以使用逗号进行分割,表明子元素必须按照顺序出现

子元素之间可以使用竖线进行分割,表面子元素出现其中之一

#PCDATA 表明包含标签体

+ 表示一次或多次

* 0次或多次

? 0次或一次

也可以使用小括号进行组的操作

(2)属性

<!ATTLIST 元素名

属性名 属性类型 属性约束

属性名2 属性类型  属性约束

......

>

属性类型:

CDATA:表示属性的值是一个普通字符串

ENUMERATED : 属性的值是一个枚举列表中的值

ID: 表明属性的值必须在整个文档中都是唯一的,如果有重复的id则校验不通过,ID 属性的值只能由字母,下划线开始,不能使用数字,不能出现空白字符

属性约束:

#REQUIRED  ---
表明当前属性是一个必须存在的属性,如果这样的属性不存在则在校验时会报错

#IMPLIED --- 表明当前属性是一个可选的属性,可以有也可以没有

#FIXED ‘固定值‘ --- 表明当前属性具有一个固定值,这样的属性不需要进行赋值,自动就会取这个固定值为值.如果这样的属性指定了一个不是固定值的值则校验报错

‘默认值‘  ---  表明当前属性具有一个默认值,如果给了其他的值就用其他值,如果没有给值则取这个默认值

(3)ENTITY(实体)

<!ENTITY >,就是对一大段内容的引用,可以简化代码的复用

引用实体:在xml中引用的实体叫做引用实体

<!ENTITY 实体名称 “实体内容” >

&实体名称;

参数实体:在dtd中引用的实体叫做参数实体

<!ENTITY % 实体名称 "实体内容">

%实体名称;

三、XML编程:利用java程序去增删改查(CRUD)xml中的数据

解析思想:

dom解析

sax解析

基于这两种解析思想市面上就有了很多的解析api

sun jaxp既有dom方式也有sax方式,并且这套解析api已经加入到j2se的规范中,意味这不需要导入任何第三方开发包就可以直接使用这种解析方式.但是这种解析方式效率低下,没什么人用.

dom4j 可以使用dom方式高效的解析xml.

pull

!!dom4j

导入开发包,通常只需要导入核心包就可以了,如果在使用的过程中提示少什么包到lib目录下在导入缺少的包即可

四、Schema -- xml的约束技术  --- 需要掌握名称空间的概念,会读简单的Schema就可以了,不需要大家自己会写

Schema是xml的约束技术,出现的目的是为了替代dtd

本身也是一个xml,非常方便使用xml的解析引擎进行解析

对名称空间有非常好的支持

支持更多的数据类型,并且支持用户自定义数据类型

可以进行语义级别的限定,限定能力大大强于dtd

相对于dtd不支持实体

相对于dtd复杂的多,学习成本比较的高

如何在xml中引入Schema --- !!!!!名称空间的概念:全世界独一无二的名字,用来唯一的标识某个资源,通常是公司的域名,只是名字而已并不真的表示资源的位置.

~~~ Schema的语法---参照Schema的文档,了解即可

时间: 2024-11-09 01:31:48

黑马day01(一)笔记的相关文章

黑马day01 笔记

一.xml语法 1.文档声明 用来声明xml的基本属性,用来指挥解析引擎怎样去解析当前xml 通常一个xml都要包括而且仅仅能包括一个文档声明 xml的文档必须在整个xml的最前面,在文档声明之前不能有不论什么内容 <?xml version="1.0" ?>--version是必须存在的属性,表明当前xml所遵循规范的版本号,眼下位置都写1.0就能够了 <?xml version="1.0" encoding="utf-8"

JAVA_SE基础新版day01学习笔记总结

###01.01_计算机基础知识(计算机概述)(了解) * A:什么是计算机?计算机在生活中的应用举例 * 计算机(Computer)全称:电子计算机,俗称电脑.是一种能够按照程序运行,自动.高速处理海量数据的现代化智能电子设备.由硬件和软件所组成,没有安装任何软件的计算机称为裸机.常见的形式有台式计算机.笔记本计算机.大型计算机等. * 应用举例 * 1:科学计算 * 2.数据处理 * 3.自动控制 * 4.计算机辅助设计 * 5.人工智能 * 6.多媒体应用 * 7.计算机网络 * ...

黑马day01(三)xml 的解析方式

XML编程:利用java程序去增删改查(CRUD)xml中的数据 解析思想: dom解析 sax解析 基于这两种解析思想市面上就有了很多的解析api sun jaxp既有dom方式也有sax方式,并且这套解析api已经加入到j2se的规范中,意味这不需要导入任何第三方开发包就可以直接使用这种解析方式.但是这种解析方式效率低下,没什么人用. dom4j 可以使用dom方式高效的解析xml. pull !!dom4j 导入开发包,通常只需要导入核心包就可以了,如果在使用的过程中提示少什么包到lib目

JavaWeb-01(HTML入门)

JavaWeb-01 JavaWeb-HTML入门 一.HTML的概述 a.html是什么 : hypertext markup language 超文本标记语言 超文本:音频,视频,图片称为超文本. 标记 :<英文单词或者字母>称为标记. 一个HTML页面都是由各种标记组成. b.作用:编写HTML页面. c.HTML语言不是一个编程语言(有编译过程),而是一个标记语言(没有编译过程).HTML页面直接由浏览器解析执行. 二.HTML的历史 Web标准: 不是某一个标准,而是一系列标准的集合

黑马程序员_JAVA 基础加强学习笔记

一.面向对象 (一)继承  1.继承的好处: (1) 提高了代码的复用性. (2) 让类与类之间产生了关系,提供了另一个特征多态的前提. 注意: 子类中所有的构造函数都会默认访问父类中的空参数的构造函数,因为每一个子类构造内第一行都有默认的语句super();  如果父类中没有空参数的构造函数,那么子类的构造函数内,必须通过super语句指定要访问的父类中的构造函数. 如果子类构造函数中用this来指定调用子类自己的构造函数,那么被调用的构造函数也一样会访问父类中的构造函数. 2.final特点

黑马程序员学习笔记_OC之给NSString增加分类

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>.<a href="http://www.itheima.com"target="blank">.Net培训</a>.期待与您交流! ---------------------- 黑马程序员学习笔记_OC

黑马程序员学习笔记2014/7/5

观看视频:011_标识符_黑马程序员_Java基础视频.avi Java语言的基础组成 关键字.标识符.注释.常量和变量.运算符.语句.函数.数组.   关键字     标识符 1.在程序中自定义的一些名称 2.由26个英文字母大小写,数字,0-9符号 :_ $ 组成 3.定义合法标识符的规则: a.数字不可以开头 b.不可以使用关键字 4.Java中严格区分大小写 5.注意:在起名的时候尽量起一个有意义的名称       观看视频:012_常量_黑马程序员_Java基础视频 常量与变量 Jav

黑马程序员_OC学习笔记之Foundation框架集合类

OC--集合类 1.OC集合类包括NSArray,NSSet,NSDictionary都是以面向对象的方式操作数组,而且OC数组不像C语言中的数组只能存放同一种数据类型,它可以存放任意类型的对象,但是不能存放非OC对象类型如基本数据类型int,struct,enum等 2.OC数组是以对象的方式存在,因此在创建的时候需要为创建的对象前面加* 3.NSArray数组一旦创建就决定了是不是可变,而且永远是可变或不可变 4.NSArray数组和子类NSMutableArray的基本操作: 1>使用NS

黑马程序员_OC学习笔记之description方法和sel

OC--description方法 1.Description方法包括类方法和对象方法.(NSObject类所包含) -description(对象方法) 2.使用NSLog和@%输出某个对象时,会调用对象的description方法,并拿到返回值进行输出. +description(类方法) 3.使用NSLog和@%输出某个对象时,会调用类对象的description方法,并拿到返回值进行输出,把整个对象一次性打印出来,打印对象使用%@. 4.使用@%打印对象如(“@%”,P)默认打印输出为<