目录
表单提交方式(重要)
使用submit提交
<form>
<input type="submit" value="提交"/>
</form>
使用图片提交
<form>
<input type="image" src="图片路径"/>
</form>
使用button提交
<input type="button" onclick="form1()"/>
<script type="text/javascript">
function form1(){
var form1=document.getElementById("form1")//获取form
form1.action="提交到的页面";//设置提交地址
form1.submit();}//提交
</script>
function form
使用超链接提交
//提交地址和内容都设置好
<a href="提交地址?key=value">超链接提交</a>
事件
onclick:鼠标点击事件
onchange:改变内容(一般和select一起使用)
onfocus:得到焦点
onblur:失去焦点
<input type="text" value="请输入" id="id1" onfocus="focus" onblur="blur">
<script type="text/javascript">
function focus(){
var text1=document.getElementById("id1");
text1.value="";
}
function blur(){
var text1=document.getElementById("id1");
text1.value="请输入";
}
</script>
xml简介
extensible markup languange 可扩展标记型语言
标记型:如html也是标记型语言。使用标签来操作。
可扩展:html标签是固定的,每个标签都有特定的含义。xml标签可以自己定义,可以是中文的标签。
用途:
- html用于显示数据。xml也可以显示数据,但不是主要功能。
- xml主要功能是存储数据。
版本:主要使用1.0。1.1不能向下兼容。
应用:
- 不同的系统之间传输数据,如qq消息的传输
//早期使用字符串
string str="qq1:qq2:hello";
//后来使用xml,这种方式利于系统维护
string str="
<message id="1">
<sender>10000</sender>
<getter>20000</getter>
<content>hello</content>
</message>
"
- 表示生活中有关系的数据
<北京市>
<海淀区></海淀区>
<朝阳区></朝阳区>
- 用在配置文件中
如在配置文件中保存用户名和密码,避免反复修改源代码
xml语法
xml文档声明
创建一个文件,后缀是.xml
第一步写文档声明,表示xml文件的内容
- 格式:
<?xml version="1.0" encoding="gbk"?>
注意:必须写在第一行第一列 - 属性:
version 1.0 1.1
encoding:xml编码 gbk utf-8 iso8859-1(不含中文)
standalone:是否依赖于其他文件yes/no - 中文乱码问题:保存xml文件使用的码表和xml设置的码表(浏览器打开时使用)不一致。
定义元素(标签)
- 有开始有结束:
<mytag></mytag>
- 标签没有内容,可以在标签内结束:
<mytag/>
- 可以嵌套,必须合理嵌套:
<taga><tagb></tagb></taga>
√
<taga><tagb></taga></tagb>
× - 一个xml中只能有一个根标签,其他标签都是他下面的标签。
- xml标签中所有的空格和换行都会被当成内容来解析。
- 标签命名规则
xml代码区分大小写
不能以数字或下划线开头
不能以xml、Xml、XML开头
不能包含空格和冒号
定义属性
- 属性定义的要求:
一个标签可以有多个属性
属性名称不能相同
属性值使用单引号或双引号包起来
命名规范与标签一致
注释
格式:<!--注释内容-->
注意:注释不能嵌套
注释也不能放第一行第一列
特殊字符
特殊字符需要转义:
< | > | " | ’ | & |
---|---|---|---|---|
< | > | " | ' | & |
CDATA区
可以解决多个字符都需要转义的操作
把这些内容都写到CDATA区中,就不需要转义了。
格式:<![CDATA[特殊字符串]]>
把特殊字符当做文本内容而不是标签直接显示。
PI指令(处理指令)
(使用较少)
可以在xml中设置样式。
格式:<?xml-stylesheet type="text/css" href="css文件路径"?>
注意:对中文命名的标签元素不起作用
xml的约束
为什么需要约束:虽然任意的标签都符合语法规范,但希望某文件中只保存一类信息,这时就规定xml中只能出现的元素。
约束技术:dtd和schema(了解)
dtd约束
创建一个文件,后缀.dtd
- 看xml中有多少个元素,有多少元素,在dtd文件中写几个<!ELEMENT>
- 判断元素是简单元素(没有子元素)还是复杂元素(有子元素)。
- 简单元素:
<!ELEMENT 元素名 (#PCDATA)>
- 复杂元素:
<!ELEMENT 元素名 (子元素)>
- 简单元素:
- 在xml中引入dtd文件。
<!DOCTYPE 根元素名 SYSTEM "dtd文件路径">
浏览器只负责校验语法,不负责校验约束。想要校验xml约束,需要使用工具(如myeclipse)。
dtd的三种使用方式:
1. 引入外部dtd文件(如上)
2. 使用内部dtd文件<!DOCTYPE 根元素名 [dtd代码]>
3. 使用外部的dtd文件(网络上的dtd文件)<!DOCTYPE 根元素名 PUBLIC "DTD名称" "DTD文档的url">
使用dtd定义元素
语法:<!ELEMENT 元素名 约束>
- 简单元素
(#PCDATA):文本字符串类型
EMPTY:元素为空
ANY:任意 - 复杂元素
子元素后面的符号:
+:一次或多次
?:零次或一次
*:零次或多次(任意次)
子元素用,
隔开,书写的顺序代表出现的顺序。如果用|
隔开,代表只能出现其中任意一个子元素。
使用dtd定义属性
语法:
< !ATTLIST 元素名
属性名 属性类型 属性约束
>
属性类型:
- CDATA:文本字符串
- 枚举:只能在一定范围内出现值,但每次只能出现其中一个。如:红绿灯。
<!ELEMENT person (#PCDATA)>
<!ATTLIST person
ID1(male|female)
>//则person的ID1属性只能是这两种之一
- ID:值只能是字母或下划线开头
属性约束:
- #REQUIRED:该属性必须出现
- #IMPLIED:属性可有可无
- #FIXED:表示一个固定值
<!ATTLIST person
ID1 CDATA #FIXED "aaa"
>//则person的ID1的值只能是aaa
直接值:在使用时不写属性则使用直接值,写了属性使用写的值。
<!ATTLIST person
ID1 CDATA "www"
>//设置了直接值
实体
在dtd中定义,xml中使用
语法:<!ENTITY 实体名 "实体内容">
引用方式:&实体名;
注意:定义实体要写在内部dtd中,如果写在外部dtd中,某些浏览器下无法使用。
schema约束
与dtd约束的区别:
- dtd语法:
<!ELEMENT 元素名称 约束>
schema符合xml的语法,xml语句 - 一个xml中只能有一个dtd,但可以有多个schema,多个schema使用名称空间区分(类似于java包名)
- dtd里面有PCDATA类型,但是在schema里面支持更多的数据类型。
- schema语法更加复杂,目前不能替代dtd
- 创建一个文件,后缀.xsd
- 根节点是
<schema>
属性:- xmlns=“http://www.w3.org/2001/XMLSchema” 表示当前xml文件是一个约束文件(这里是固定的)
- targetNamespace=“http://www.itcast.cn/2020420” 使用schema约束文件,直接通过这个地址引入约束文件
targetNamespace相当于java头文件中的package,xmlns相当于import的内容。 - elementFormDefault=“qualified”
- 看有多少个元素,写多少个
<element></element>
- 看是简单还是复杂元素
- 简单元素
<element name="name" type="string"></element>
- 复杂元素:
<complexType>
<sequence>
子元素
</sequence>
</complexType>
导入xml
写在根节点中:
//表示为一个schema约束的实例
//xsi是名称,用以区分各个schema约束(一个xml可以有多个xmlns)
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
//导入地址(targetNamespace)
xmlns="http://www.itcast.cn/2020420"
//前一个是targetNamespace,后一个是xsd文件路径
xsi:schemaLocation=<"http://www.itcast.cn/2020420" 1.xsd>
想要使用不同的约束,<约束名:标签>
使用指定的约束。没有指定约束名的使用无约束名的约束(xmlns)
复杂元素指示器
(complexType下一级的标签)
<sequence>
:元素出现的顺序
<all>
:只能出现一次
<choice>
:只能出现其中一个
maxOccurs="unbounded"
:元素出现的次数,为unbounded时无限制
<any></any>
:表示任意元素
<attribute>
:定义属性(必须是复杂元素)- name:属性名称
- type:属性类型 int string
- use:属性是否必须出现,required
定义位置如下:
</sequence>
<attribute name="p1" type="string" use="required"></attribute>
</complexType>