XML概念,约束文档,解析 笔记

XML的学习:
1.XML简介及语法:
2.XML的约束:
DTD
Schema
3.XML的解析:(*****重点)
XML:
What:eXtensible Markup Language(可扩展的标记语言。) <dog></dog>
* HTML:超文本标记语言. 标记语言 :都会有一些标签。<html></html> <p></p>
Why:
* 用来处理大量有关系的数据。

Where:
* 用来作为软件的配置文件(SSH---配置文件都是XML)
* 用来存储数据(当做一个小型的数据库)
* 用来异步系统传输数据.

How:

XML的语法:
文档声明:(一看就会)
* 注意:文档声明出现的位置。xml的第一行 第一列的位置.
<?xml version="1.0" ?>
version:版本 1.0 而且 version属性是必须的.
encoding:编码集 可选的属性
standalone:是否需要依赖其他的文档. yes/no

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
元素:(重点)
元素:标签。
标签的写法:
<span></span> <img/>
标签的嵌套:
必须正确嵌套
<a><b></a></b> ---错误的
<a><b></b></a> ---正确的

XML必须有且仅有一个跟标签.

元素命名规范:
* 区分大小写.
* 不能以数字或_开头
* 不能以xml XML Xml开头.
* 元素名称中间不能出现 空格 或 冒号

<a> <person> ...
属性:(重点)
<input type="" name=""> input:元素(标签) type 和 name 都叫做属性

<input>
<type></type>
<name></name>
</input>
注释:(不看都会)
注释:<!-- 注释内容 -->

***** 注意 : 注释中不能嵌套注释。 注释不能写在文档声明之前.
特殊字符和CDATA区:(一看就会)
转义字符:
<span>3<5</span>
< &lt;
> &gt;
& &amp;
" &quot;
‘ &apos;

CDATA区:--- 扩起来东西:不会认为是标签,认为是普通的文本(字符串).
<![CDATA[ 认为是普通的文本 ]]>

* 写法 <![CDATA[ ]]>

处理指令(PI):(看完就忘了)
* <?xml-stylesheet type="text/css" href="1.css"?>

XML出现替换HTML :由于XML的语法比较复杂. XHMTL ---- HTML5 ---
===================================================================================================================
开发一个框架:
配置文件:文件有什么好处:就是不需要修改程序的源代码.
properties:作为软件配置文件.
key=value ----形式的文件.
com.login.=cn.itcast.Test

xml:作为软件的配置文件.
xml可以更好的描述 层次关系.
<web-app>
<servlet>
<servlet-name></servlet-name>
</servlet>
</web-app>

因为是xml是可扩展的标记语言
<web-app>
<servlet>
<cat></cat>
<servlet-name></servlet-name>
</servlet>
</web-app>

XML的约束:DTD 和 XML Schema(看懂为主)
(***** XML的约束有哪些?区别是什么?)

遵守了XML语法的写法的XMl :格式良好的XML.
遵守了XML的语法 遵守了约束文档定义: 有效的XML

DTD:文档类型定义:
使用DTD约束XML的文档。快速入门.
编写DTD的步骤:
1.xml文档中需要出现哪些标签、个数是多少?6个
<!ELEMENT 元素名称 元素类型>
2.查询xml元素中,类型是什么.
简单or复杂
3.需要在xml中引入dtd.

DTD的引入的方式:
文档内部
<!DOCTYPE 书架 [
<!ELEMENT 书架 (书+)>
<!ELEMENT 书 (书名,作者,售价,简介)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>
<!ELEMENT 简介 (#PCDATA)>
]>
文档外部
* 本地
<!DOCTYPE 书架 SYSTEM "book.dtd">
* 网络
<!DOCTYPE 书架 PUBLIC "DTD的名称" "DTD路径">

DTD的语法:
元素的定义
语法:<!ELEMENT 元素名称 元素类型>
元素的类型:
#PCDATA :可解析的字符数据
子元素 :
EMPTY : 空元素
ANY :任意元素

子元素的次数
+ : 一次或多次
* : 零次或多次
? : 零次或一次
子元素的顺序
, : 子元素出现必须按照顺序.
| : 子元素出现是或的关系.
属性的定义: attribute--属性
语法:<!ATTLIST 元素名称 属性名称 属性类型 属性约束>
* <!ATTLIST 书 出版社 CDATA #REQUIRED>

属性类型:
CDATA :字符数据(字符串)
枚举 :枚举类型
ID : 标识是唯一

属性约束:
#REQUIRED : 属性必须出现.
#IMPLIED : 属性是可选的.
#FIXED : 属性采用固定值.
默认值 :
实体的定义
语法:<!ENTITY 实体名称 实体值>
<!ENTITY bookname "葵花宝典">
===================================================================================================================
XML的编程(重点....) CRUD
XML的解析技术?
(*****XML的解析技术有哪些?区别是什么?)
***** XML的解析技术有很多 常用的有两种 DOM 和 SAX。
DOM:Document Object Model 文档对象模型 . 将XML一次性加载到内存中,形成一个树形结构.
SAX:Simple API for XML.不需要将文档一次性加载到内存中,边读边解析,事件驱动的方式.

JAXP: SUN公司。提供的API。
1.创建一个XML的解析器.
2.使用解析器解析XML --- Document.
3.使用Document获得操作的节点.

CRUD.

SAX:事件驱动的方式.边读边解析.
//创建解析器
//处理器.
***** DOM4J: 开源组织. (重点)

XPath: 方便查询XML的节点. dom4j支持XPath.

JDOM: 开源组织.

时间: 2024-12-26 04:27:27

XML概念,约束文档,解析 笔记的相关文章

XML概念,约束文档,解析

day01总结 今日内容 l XML语法 l XML约束之DTD l XML解析器介绍 l XML解析之JAXP( DOM.SAX ) l DOM4J l Schema 一.XML语法 XML概述 1 什么是XML XML全称为Extensible Markup Language, 意思是可扩展的标记语言,它是 SGML(标准通用标记语言)的一个子集. XML语法上和HTML比较相似,但HTML中的元素是固定的,而XML的标签是可以由用户自定义的. W3C在1998年2月发布1.0版本: W3C

安卓xml文档解析

2014-12-27   14:53:32 解析xml文档 用xml文档存储数据 1.获得文件的路径 1 File path = new File(Environment.getExternalStorageDirectory(), "persons.xml"); 2.建立文件输出流 1 FileInputStream fis = new FileInputStream(path); 3.获得xml文档解析器对象 1 XmlPullParser parser=Xml.newPullPa

xml约束文档之DTD

DTD XML约束文档 文档类型定义(DTD)可定义合法的XML文档构建模块,它使用一系列合法的元素来定义文档的结构.DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用 . 1.内部声明文档 <?xml version="1.0"?> <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to      (#PCDATA)> <!ELEMENT fr

jsoup -- xml文档解析

jsoup -- xml文档解析 修改 https://jsoup.org/cookbook/modifying-data/set-attributes https://jsoup.org/cookbook/modifying-data/set-html https://jsoup.org/cookbook/modifying-data/set-text 时间 2014-06-20 07:01:12  ITeye-博客 原文  http://zsjdxc251.iteye.com/blog/20

xml文档解析

XML文档解主要分为四种解析方式,官方提供的两种分别是:DOM 和 SAX,第三方分别是:JDOM 和 DOM4j 测试用的xml文档: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <user> 3 <uname type="3">zhangsan</uname> 4 <uname type="2">王麻子</uname

浅析如何将XML文档解析成java对象(待梳理)

User类 public class User implements Serializable { private static final long serialVersionUID = 7506854293380407436L; private Integer id; private String loginName; private String password; private Date createDate; private String username; public User(

Java学习总结(21)——XML文档解析:DOM解析,SAX解析

一.XML简介1.可扩展性标记语言(eXtensible Markup Language)2.XML用于描述数据3.应用场合:(1)持久化存储数据(2)数据交换(3)数据配置4.XML语法(1)文档类型:在编写XML文档时,需要先使用文档声明,声明XML文档的类型.最简单的声明语法:<?Xml version="1.0" ?>用encoding属性说明文档的字符编码:<?Xml version="1.0" encoding="GB2312

[Swift通天遁地]七、数据与安全-(2)使用Fuzi(斧子)类库实现对XML和HTML文档的快速解析

本文将演示使用Fuzi(斧子)类库实现对XML和HTML文档的快速解析. 首先确保在项目中已经安装了所需的第三方库. 点击[Podfile],查看安装配置文件. 1 platform :ios, '12.0' 2 use_frameworks! 3 4 target 'DemoApp' do 5 source 'https://github.com/CocoaPods/Specs.git' 6 pod 'Fuzi' 7 end 根据配置文件中的相关配置,安装第三方库. 然后点击打开[DemoAp

Spring3.0官网文档学习笔记(七)--3.4.2

3.4.2 依赖与配置的细节 3.4.2.1  Straight values (primitives, Strings, and so on) JavaBeans PropertyEditors被用来转换这些value到实际的类型.? <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <