javaweb之XML学习笔记(一)基本使用

XML

目录

XML

表单提交方式.

XML的介绍

XML的应用场景

XML的语法

1.xml的文档声明

2.定义元素(标签)

3.定义属性

其它

XML的dtd约束

引入方式

使用规则

定义属性规则

schema约束


表单提交方式.

提交方式:

<form id="form1">
	<input type="text" name="username" />
	<!-- 第一种submit -->
	<input type="submit" />


	<!-- 第二种button -->
	<input type="button" value="提交" onclick="form1();" />

	<script type="text/javascript">
		function form1(){
			var form1 = document.getElementById("form1");
			form1.action = "hello.html";
			form1.submit();
		}
	</script>


	<!-- 第三种超链接 -->
	<a href="hello.html?username=123456">提交</a>
</form>

输入项常用的事件属性:
onclick:鼠标点击事件
onchange:改变内容(一般在select使用)
onfocus:得到焦点
onblur:失去焦点

<input type="text" id="id1" name="test" value="please input" onfocus="focus1();" onblur="blur1();" />


<script type="text/javascript">
		function focus1(){
			var input1 = document.getElementById("id1");
			input1.value = "";
		}
		function blur1(){
			var input1 = document.getElementById("id1");
			input1.value = "please input";
		}
</script>

XML的介绍

xml:eXtensible Markup Language(可扩展标记型语言)
与hmtl都是标记型语言,可以使用标签操作,而xml的标签可以自己定义,且可以使用中文标签
用途:可以与html一样用于显示数据,还可以存储数据(主要)

XML的应用场景

适用场景:
1.不同的系统之间传输数据
 早期消息的传输是直接使用字符串,可读性差且不利于维护
2.用来表示生活中有关系的数据
3.文件配置(连接数据库时修改数据库的信息只需要修改配置文件)

XML的语法

1.xml的文档声明

(必须要有,用于表示写的时xml的内容)
 文件的后缀名为.xml

<?xml version="1.0" encoding="gbk" ?>

属性:version:版本号,encoding:xml的编码,standalone:文档是否独立或依赖其它文件(yes/no)
 注:必须写在第一行第一列

2.定义元素(标签)

标签命名规则:
 ①可以是中文
 ②xml代码区分大小写
 ③不能以数字,下划线,xml,XML,Xml开头
 ④不能包含空格或者冒号

<person></person>//有开始有结束
<aa/>//标签没有内容
<a><b></b></a>//标签的嵌套

注:只能有一个根标签,其它标签都在根标签中,同时xml中的空格和换行都会被当成内容来解析

3.定义属性

属性定义的要求:
 ①一个标签上可以有多个属性
 ②属性名称不能相同,且命名规则同标签的定义规则
 ③属性和属性值之间同html一样

其它

4.注释:写法和html一样(不能嵌套)
5.特殊字符:需要转义,和html一样
6.CDATA区
用途:可以解决多个字符都需要转义的操作
语法

<![CDATA[ 内容 ]]>

7.PI指令
用途:用来指挥软件如何解析XML文档,可以在xml设置样式
语法:

<?xml-stylesheet type="text/css" href="css的路径"?>

注:只对英文标签名称起作用,而对中文标签不起作用

XML的dtd约束

由于xml的标签是自定义的,所以有可能回出现不属于此标签的子标签的出现,所以需要约束xml中只能出现的元素
两种约束的技术:dtd约束和schema约束
注:浏览器只会负责打开xml文件并校验xml语法,不负责校验约束.要校验xml的约束,需要使用myeclipse工具.

引入方式

用法:
 ①创建一个后缀名为.dtd的文件
 ②xml中有多少个元素就在dtd文件中写几个<!ELEMENT>
 ③判断元素是简单元素(没有子元素)还是复杂元素(有子元素)
  简单元素:<!ELEMENT 元素名 (#PCDATA)>
  复杂元素:<!ELEMENT 元素名称 (子元素)>

 ④xml页面引入dtd文件(三种方式)


<!DOCTYPE 根元素名称 SYSTEM "dtd文件的路径"><!-- 第一种:使用外部的dtd文件 -->

<!DOCTYPE 根元素名称 [
		<!ELEMENT 元素名 (#PCDATA)>
		<!ELEMENT 元素名称 (子元素)> 
]><!-- 第二种: 使用内部的dtd文件(写在xml中) -->

<!DOCTYPE 根元素 PUBLIC "DTD名称" "DTD文档的URL"><!-- 第三种:使用网络上的dtd文件 -->

使用规则

dtd文件的使用规则(元素的定义):
简单元素:<!ELEMENT 元素名 约束>
(#PCDATA):约束该元素是字符串类型
EMPTY:元素为空(没有内容)
ANY:任意内容
复杂元素:<!ELEMENT 元素名称 (子元素名1,子元素2,…)>
子元素名+:该子元素可以出现一次或多次,默认只能出现一次
子元素名?:该子元素可以出现零次或者一次
子元素名*:该子元素可以出现零次或多次
注:
xml中的子元素的顺序必须和dtd文件中子元素名的顺序一样//(子元素名1,子元素2,…)
xml中的子元素只能出现dtd文件中子元素的任意一个//(子元素名1|子元素2|…)

定义属性规则

dtd定义元素的属性:
语法:

<!ATTLIST 元素名称
		属性1名称 属性类型 属性的约束
		属性2名称 属性类型 属性的约束
		...
>

属性类型:
 ①CDATA->字符串

<!ATTLIST 元素名称
		属性名称 CDATA #REQUIRED
>
<!-- #REQUIRED表示这个类型必须要出现 -->

 ②枚举

<!ATTLIST 元素名称
		属性名称 (A|B|C) #REQUIRED
>

 ③ID->值只能是字符或者下划线开头

<!ATTLIST 元素名称
		属性名称 ID #REQUIRED
>

属性的约束:
 #REQUIRED->属性必须存在
 #IMPLIED->属性可有可无
 #FIXED->属性是一个固定值

<!ATTLIST 元素名称
		属性名称 CDATA #FIXED "ABC"
>
	<!-- 属性值必须为ABC -->

直接值->不写属性则直接使用直接值,写了属性则用写的属性值

<!ATTLIST 元素名称
		属性名称 CDATA "DEF"
>

定义实体:

<!ENTITY 实体名称 "实体的值"><!-- 定义在内部dtd,写在外部dtd文件有些浏览器得不到内容 -->
<name>&实体名;</name><!-- 实体的使用 -->

schema约束

1.该约束特点
schema符合xml的语法,xml语句,schema语法更加复杂
一个xml可以有多个schema,多个schema使用名称空间来区分(类似于包名)
dtd里面只有PCDATA类型(字符串类型),而在schema里面可以支持更多的数据类型(比如整数类型)

2.用法
 ①创建一个后缀名为.xsd的文件(可以用myeclipse创建)
 ②xml中有多少个元素就中写几个<element>
 ③将简单元素写在复杂元素里
 ④在被约束文件里面引入约束文件
schema约束文件:

<?xml version="1.0" encoding="UTF-8">
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
targetNamespace="http://www/itcast.cn/20151111" 		
elementFormDefault="qualified">
<!-- xmlns->当前xsd文件是一个约束文件
	     targetNamespace->被约束xml文件通过此地址引入约束文件
-->
<element name="person"><!-- 复杂元素person -->
		<complexType>
			<sequence>
			<!-- sequence->子元素是有顺序的
			     all->相同名称的子元素只能出现一次
			     choice->只能出现约束文件中子元素其中的一个
			     
			-->
				<element name="name" type="string" maxOccurs="unbounded"></element>
				<!-- 复杂元素中的子元素
				maxOccurs="unbounded"->表示此子元素的出现次数无限制 
				-->
				<element name="age" type="int"></element>
			</sequence>
			<attribute name="id1" type="int" use="required"></attribute>
			<!-- 
			name->属性名称
			type->属性类型
			use->属性是否必须出现,requried
			-->
		</complexType>
</element>
</shema>

被约束的xml文件:

<?xml version="1.0" encoding="UTF-8">
<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://www/itcast.cn/20151111"
xmlns:dept="http://www.exaple.org/department"
xsi:schemaLocation="http://www/itcast.cn/20151111 1.xsd http://www.example.org/department 2.xsd">
<!-- xmlns:xsi->当前xml文件是一个被约束文件
	     xmlns->约束文档里面的targetNamespace
	     xmlns:dept->另一个约束文件
	     xsi->名称空间,targetNamespace+空格+约束文档的路径
-->
		<name>zhangsan</name>
		<dept:name>xxx</name><!-- dept约束文件中的name -->
		<age>20</age>
</person>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值