XML程序设计

第一章

1.1 XML技术简介

  • SGML具备HTML所没有的三种优势:可扩展性、结构化和灵活性

第二章

2.4 HTML的制表

table元素

使用:

1
<table border="1" bordercolor="#0000FF">
  • table元素的属性:
  1. border和bordercolor属性
  2. cellpadding和cellspacing属性
  3. width和height属性
  4. bgcolor和background属性
  • caption元素
  • thead元素和tbody元素
  • tr元素
  • td和th元素

更多详情:

课本P27页

网页设计笔记第六章:https://www.murasame.top/articles/2020/06/17/1592402065069.html

第三章

3.1 XML语法基础

  • 结构良好性,xml文档的书写必须满足“结构良好性”的原则。所谓结构良好的必要条件是:
  1. 它总体是一个XML文档
  2. 它满足所有在XML1.0规范中提出的关于结构良好性的约束
  3. 在xml文档中被直接或间接引用的每一个解析实体也是结构良好的
  • 关于xml文档的定义如下:
  1. 它包含至少一个元素
  2. 有一个叫做根或文档的元素,它不能作为任何其他元素的内容出现。
  • xml声明

xml文档的默认字符系统是UTF-8

格式:

1
<?xml version="1.0" encoding="" standalone=""?>

其中encoding和standalone可以省略

1
<?xml version="1.0"?>
  • 元素命名规则
  1. 首字符是英文、汉字字符或其他字符,后跟数字或其他符号;首字符不能用数字、语音符号、英文句号“.”和连字符“-”开头,但可以用英文冒号“:”和下划线“_”。
  2. 严格区分英文字母的大小写
  3. 不能使用“X”“M”“L”三个字母的任意大小写搭配的字符串
  4. 不能独立使用数字作为元素名
  5. 元素名中可以使用英文“”“.”“:”“”等符号,但避免使用空格字符,除用于名称空间描述外,最好不用冒号作为元素名,因为xml名称空间赋予冒号特殊的用途。
  6. 不能使用英文“<、>、?、/、&、+、*”等符号作为元素名

非法标记示例

1
2
3
4
5
6
7
8
9
10
<3ab></3ab>			首字符是数字
<123></123> 数字串
<Name></name> 首字母大小写不匹配
<person></PERSON> 大小写不匹配
<xml-author></xml-author> 使用保留字符串xml开头
<STUDENT?NO></STUDENT?NO> 使用非法字符?
<press><press> 没哟结束标签“/”
<.student></.student> 用“.”作首字符
<-teacher></-teacher> 用“-”作首字符
<aut hor></aut hor> 元素名含空格符
  • 实体声明

(1)预定义实体

预定义实体有:

实体 引用方式
< lt
> gt
& amp
apos
quot

声明预定义实体,声明时,实体<和&用爽转义字符,实体>,’,”用单转义字符。

(2)普通实体

普通实体的声明格式:<ENTITY 实体名 实体定义>

例如:

1
2
<!ENTITY qhpress "清华大学出版社">
<!ENTITY hepress "高等教育出版社">
  • 实体引用

普通实体引用:&实体名;

参数实体引用:%实体名;

参数实体引用举例:

1
2
3
<!ENTITY % datatype "(#PCDATA)">
<!ELEMENT name %datatype;>
<!ELEMENT author %datatype;>
  • 注释的书写规则:
  1. 注释可以出现在其他标记外部的任何地方,但不能出现在xml文档的第一行。(第一行必须为声明)
  2. 注释可以出现在元素标签(“<”与“>”)外的任何地方。
  3. 为了保持兼容性,注释中不能出现连续两个连字符“–”。
  4. 注释不能嵌套注释。
  5. 在注释中不识别参数实体引用

注意:不允许使用“—>”作为注释的结束符

P79 T11类似题,根据二维表设计dtd文档

还有P102 T7

记忆dtd的声明方法

第四章

4.1 概述

  • 案例4.1 xml文档的DTD定义
1
2
3
4
5
6
7
8
<!ELEMENT booklist(book*)>
<!ELEMENT book(name,author,press,pubdate,price)>
<!ATTLIST book isbn CDATA #REQUIRED>
<!ELEMENT name(#PCDATA)>
<!ELEMENT author(#PCDATA)>
<!ELEMENT press(#PCDATA)>
<!ELEMENT pubdate(#PCDATA)>
<!ELEMENT price(#PCDATA)>

4.2 元素

  • 元素声明

格式:<!ELEMENT 元素名 内容说明(量词)

规则:

  1. 元素声明由符号“<!”和“>”括起来
  2. ELEMENT是元素声明的关键词。不能写错,忽略,习惯上大写。
  3. 元素名确定被声明的元素类型(应与xml文档中的元素同名),并具有唯一性。
  4. 内容说明包括EMPTY、ANY、Mixed、Children。
  5. 当内容说明包括子元素时,可以用量词*、+、?限定元素在xml文档中出现的次数

*:表示元素可能出现0到无限次

+:表示元素可以出现1到无限次

?:表示元素可以是0或1个

4.3 属性

  • 属性的声明

格式:<!ATTLIST 元素名 属性名 类型 默认值

规则:

  1. 属性表声明由符号“<!”和“>”括起来
  2. ATTLIST是属性声明中的关键字,不能缺少
  3. 元素名是与要定义属性的相关联的那个元素名称
  4. 属性名是标识和使用属性的记号,具有与xml元素名相同的命名规则
  5. 类型包括三类:字符串类型、标记化类型和枚举类型
  6. 默认值规定属性在没有具体赋值时的替代值。在没有定义的情况下,解析器自动用默认值代替该属性
  • 默认声明
  1. REQUIRED。被设置为REQUIRED的属性,每次书写元素时必须完整地写上该属性

格式:<!ATTLIST 元素名 属性名 类型 #REQUIRED>

实例:<!ATTLIST book isbn CDATA #REQUIRED>

  1. IMPLIED。每一次书写元素时属性值是任选的,即该属性可写可不写

格式:<!ATTLIST 元素名 属性名 类型 #IMPLIED>

实例:<!ATTLIST book isbn CDATA #IMPLIED>

  1. FIXED。该属性应该包含一个默认值声明,表明该元素必须永远有这个默认的属性值,不允许更改。

格式:<!ATTLIST 元素名 属性名 类型 #FIXED 默认值>

实例:

1
2
3
4
5
<price currency="RMB" unit="Yuan">22.00</price>

<!ELEMENT price #PCDATA>
<!ATTLIST price currency NMTOKEN #FIXED "RMB"
unit NMTOKEN #FIXED "Yuan">

第五章

P104例5.1 Schema文档结构