学习笔记5(xml、tomcat)

- xml
xml: eXtendsible markup language 可扩展的标记语言
xml的作用
1、可以用来保存数据
2、可以用来做配置文件
3、可以当成数据传输载体
文档声明

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
//version表明在解析这个xml的时候,使用什么版本的解析器解析
//encoding表明在解析该文件时使用什么编码格式
//standalone  : no - 该文档会依赖关联其他文档 ,  yes-- 这是一个独立的文档

根元素
文档声明下来的第一个元素叫做根元素 (根标签),例:

<?xml version="1.0" encoding="utf-8"?>
<people>
	<name>张三</name>
	<sex>男<sex>
</people>

这里的people就为该xml的根标签。
标签里面可以嵌套标签
标签里面也可以设置属性,例如:

<name id="111"></name>

xml命名规则
XML 元素必须遵循以下命名规则:
名称可以含字母、数字以及其他的字符
名称不能以数字或者标点符号开始
名称不能以字符 “xml”(或者 XML、Xml)开始
名称不能包含空格
命名尽量简单,做到见名知义
简单元素
元素里面包含了普通的文字
复杂元素
元素里面还可以嵌套其他的元素
非法字符
在 XML 中仅有字符 “<“和”&” 是非法的。省略号、引号和大于号是合法的,但是把它们替换为实体引用是个好的习惯。某些文本,比如 JavaScript 代码,包含大量 “<” 或 “&” 字符。为了避免错误,可以将脚本代码定义为 CDATA。
CDATA:character data
CDATA 部分由 “<![CDATA[" 开始,由 "]]>” 结束,CDATA 部分中的所有内容都会被解析器忽略。例如:

<address>
<![CDATA[<a href="#">地址</a>]]>
</address>

xml解析方式
就是获取元素里面的字符数据或者属性数据,常用的有两种:
DOM
SAX
针对以上两种解析方式, 给出的解决方案有:
1、japx
2、jdom
3、dom4j(使用比较广泛)
dom4j解析流程

  1. 创建SaxReader对象
  2. 指定解析的xml
  3. 获取根元素。
  4. 根据根元素获取子元素或者下面的子孙元素
//创建SaxReader对象
SaxReader reader=new SaxReader();
//指定解析的xml源
Document   doc=reader.read(new File("路径"));
//获取根元素
Element rootelement=doc.getRootElement();
//获取根元素下的子元素
rootelement.element("元素名");
//获取根元素下的子元素下的子元素,并获取元素中的值
rootelement.element("元素名").element("元素名").getText();
//获取根元素下的所有子元素
List<Element> elements = rootelement.elements();


xml约束
1、DTD
DTD的引入:
①引入网上的DTD: 文档类型 根标签名字 网络上的dtd(PUBLIC) dtd的名称 dtd的路径

<!DOCTYPE stus PUBLIC "//UNKNOWN/" "unknown.dtd">

②引入本地的DTD:文档类型 根标签名字 引入本地的DTD dtd的位置

<!DOCTYPE stus SYSTEM "known.dtd">

③直接在文档中添加DTD:

<!DOCTYPE stus [
   		<!ELEMENT stus (stu)>
   		<!ELEMENT stu (name,age)>
   		<!ELEMENT name (#PCDATA)>
   		<!ELEMENT age (#PCDATA)>
   	]>
 

2、Schema(.xsd)
一个xml可以引用多个Schema约束,但是只能引用一个DTD
约束文档:

        xmlns  :  xml namespace : 名称空间 /  命名空间 参照w3c标准
		targetNamespace :  目标名称空间 。 下面定义的那些元素都与这个名称空间绑定上。 
		elementFormDefault : 元素的格式化情况。  -->
		<schema xmlns="http://www.w3.org/2001/XMLSchema" 
			targetNamespace="aaa" //引号里面随便写
			elementFormDefault="qualified">

复杂元素:complexType
有序:sequence

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值