XML_02_XML基础

最基本的三个概念
XML语言-描述事物本身
XSL语言-展现事物表现形式
DTD(Schema)-定义XML语言的语法

XML基本概念

XML(eXtensible Markup
Language,可扩展标记语言)是SGML(标准通用标记语言)针对特定应用领域的一个子集,是SGML的一种受限形式。XML描述了一类称为XML
文件的数据对象,同时也部分地描述了处理这些数据对象的计算机程序的动作。XML是W3C的推荐标准之一,目前广泛使用的是XML
1.0版,于1998年2月发布,2004年2月W3C发布了XML 1.1版

XML设计目标

XML应该可以直接用于因特网(Internet)。
XML应该支持大量不同的应用。
XML应该与SGML兼容。
处理XML文件的程序应该容易编写。
XML中的可选项应无条件地保持最少,理想状况下应该为0个。
XML文件应该是人可以直接阅读的,应该是条理清楚的。
XML的设计应快速完成。
XML的设计应该是形式化的,简洁的。
XML文件应易于创建。
XML标记的简洁性是最后考虑的目标。

XML文件的设计原则

1、尽量应用现有的标准DTD(schema)
省力、易于交换,应用现有软件
2、属性/子标签
属性里还有属性就用子标签
多行用子标签
出现过好多次,子标签
经常改变,子标签
比较重要的元素用子元素,说明性的或者辅助性的用属性
需要用DTA做严格检查的用子标签
应用最关键,细节上要尽量少花费精力,不必刻意追求每一步细节的尽善尽美

XML的特点

XML是元语言,可以创建其他语言
允许通过标记定制,标识、交换或处理数据,实现数据信息的规范化、多样化
基于文本格式,便于创建、处理XML文件
具有层次化、结构化特征,易于数据结构的描述

XML的应用

设计XML的目的不是展示数据,而是存储和交换数据
XML文档按结构方式可分为:
    叙述型文档:用于表达语义
    数据记录型文档:用于数据传递
用于表达语义的XML文档 常用于电子出版,如新闻、论文等。 结构复杂、层次嵌套
作为数据载体,可描述为数据表结构 一般结构较简单,层次分明
用作应用程序的配置文件,如面向对象中对象的持久化
用于异构系统间的数据交换,如DOM、XSLT等

XML语法概要

格式良好(well-formed)的XML文档:
元素和属性的命名要规范,要区分大小写
每个XML文档有且仅有一个根元素
每个XML元素必须有开始标签和结束标签(或为空元素)
元素之间不允许交叉嵌套
所有属性都必须有属性值(可以为空串)
在文本、属性值中不允许出现 “<”、“>”和“&”符号
XML文档结构通常从XML声明开始
通过XML元素来组织数据
为了使数据更加清晰并且具有自身的格式可以引入CDATA区数据块
可以在文档中加入注释
如果需要给XML处理程序提供一些信息,可以包含处理指示

标签的命名

以字母、下划线或汉字开头,不能有空格
区分大小写
不能以任何形式的“xml”3个字母开头

标签的含义

结构表达:xml文档的结构描述
结构相同:
<公司><职员 姓名=“张三”/></公司>
<班级><学生 姓名=“张三”/></班级>
语义表达:领域描述
同一“术语”在不同语境下表达不同语义
样式表达:呈现方式描述
常通过样式表CSS表达

元素element和属性attribute

元素标记:起始标签+数据+结束标签
<CPU>Intel酷睿2</CPU>
<分区><名称>C</名称></分区>
<分区><名称>C</名称>盘为系统盘</分区>
<nil></nil>
属性
<CPU 工作频率=“3.0GHz”>Intel酷睿2</CPU>
空元素
<CPU 厂商=“Intel” 工作频率=“3.0GHz” />
<nil/>

名称空间namespace

XML中引入名称空间以解决不同信息域的命名冲突问题
名称空间的声明:
xmlns:名称空间前缀=“URI”
默认名称空间:xmlns=“URI”
URI的表示形式
http://127.0.01/myns
myurn:myns,如xmlns:it=“myurn:it”

文本和分文本数据

文本数据
<文本>可以使用中文或英文符号</文本>
字符引用
<符号>可用字符引用表示:&lt;、&gt;和&amp; </符号>
CDATA段所有的标记、实体引用都被忽略,而被XML处理程序一视同仁地当做字符数据看待

空白

空白是指空格、制表符、回车换行符
空白不能出现在
  <?xml声明之前
  元素的起始标签的<和元素标签之间
XML内容中的连续空白常被当作一个换行或空格处理,标签间的空白常被剔出或规范化
如果内容中的空白是重要的,可以为该元素添加“xml:space”属性(或使用CDATA段)

注意事项

1、首行为XML声明
2、可以链接相应XSL
3、注释为<!---->和HTML里一样
4、属性必须包引号
5、<![CDATA[```]]>CDATA区用来表示格式数据,例如C++代码等,十分的方便。(区中不能出现"]]>"标志,需要用]]&gt;替代)
6、空格
<name>jgoeirhgoe</name>
<name>  jgoeirhgoe  </name>
空白默认不会被保留,包括space,tab,CR(MAC)LF(UNIX)CR/LF(Microsoft)
<poem xml:space="preserve">
       ajal
    gajgafj
  jgoejgor
</poem>
不推荐,推荐用CDATA区
7、<?.......?>PI Process Instruction 处理指示
<?xml-stylesheet href="typical.xsl" type="text/xsl"?>
<?xml-stylesheet href="typical.css" type="text/css"?>
XML声明不是PI,传递给下游程序
8、namespace命名空间,指明标签是来自哪个DTD或者Schema
9、特殊字符 > &gt < &lt; & &amp; " &quot ‘ &apos;
20、编码
Unicode世界上所有文字的编码utf-16 utf-8

时间: 2024-10-11 16:02:54

XML_02_XML基础的相关文章

java web 开发三剑客 -------电子书

Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知Internet的目的是让各个net交互.所以,Internet实质上是将世界上各个国家.各个网络运营商的多个网络相互连接构成的一个全球范围内的统一网,使各个网络之间能够相互到达.各个国家和运营商构建网络采用的底层技术和实现可能各不相同,但只要采用统一的上层协议(TCP/IP)就可以通过Internet

Java注解(1)-注解基础

注解(Annotation)是在JAVA5中开始引入的,它为在代码中添加信息提供了一种新的方式.注解在一定程度上把元数据与源代码文件结合在一起,正如许多成熟的框架(Spring)所做的那样.那么,注解到底可以做什么呢? 1.注解的作用. 提供用来完整地描述程序所需要的信息,如编译期校验程序信息. 生成描述符文件,或生成新类的定义. 减轻编写"样板"代码(配置文件)的负担,可以使用注解自动生成. 更加干净易读的代码. 编译期类型检查. 2.Java提供的注解 Java5内置了一些原生的注

MySQL数据库基础知识

day02 MySQL数据库基础知识 一.基础知识概述: 基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如.才能够对数据库有更深入的了解,道路才会越走越远. 二.基础知识: 1.数据库(database):数据库就好比是一个物理的文档柜,一个容器,把我们整理好的数据表等等归纳起来. 创建数据库命令:        create database 数据库名; 2.查看数据库         show databases; 3.打开指定的数据库         use 

【Linux系列】【基础版】第四章 Shell基础之正则表达式

4. Shell基础之正则表达式     4.1 正则就是一串有规律的字符串         4.1 grep              4.1.1 格式: grep [-cinrvABC] 'word' filename             4.1.2 -c //count,表示行数             4.1.3 -i //不区分大小写             4.1.4 -n  //显示行号             4.1.5 -r  //遍历所有子目录             4

NumPy基础:数组和失量计算

NumPy : Numerical Python,是高性能科学计算和数据分析的基础包. 部分功能: ndarray:一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组: 用于对整组数据进行快速运算的标准数学函数(无需编写循环): 用于读写磁盘数据的工具以及用于操作内存映射文件的工具: 线性代数.随机数生成以及傅里叶变换功能: 用于集成C.C++.Fortran等语言编写的代码工具: 大部分数据分析应用关注的功能: 用于

css基础

css绝对是一个能够写到爆炸的东西,so,机智的小北方才不会写各种css样式具体的效果,相比之下更推荐大家记一些常用的key,至于效果,每次用的时候百度下就可以了, css的作用是对符合条件的标签进行渲染,那么首先就要匹配到对应标签啦,我萌有三种基础的模式来匹配希望改变样式的标签 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8">

零基础的人该怎么学习JAVA

对于JAVA有所兴趣但又是零基础的人,该如何学习JAVA呢?对于想要学习开发技术的学子来说找到一个合适自己的培训机构是非常难的事情,在选择的过程中总是 因为这样或那样的问题让你犹豫不决,阻碍你前进的步伐,今天就让小编为您推荐培训机构新起之秀--乐橙谷Java培训机构,助力你成就好未来. 选择java培训就到乐橙谷 北京有什么好的Java培训机构?来乐橙谷北京学Java,零基础走起,乐橙谷Java基础班授课老师经验非常丰富,课程内容安排合理,适合于有一点点Java基础甚至一点都不会Java的同学学

linux+jmeter+python基础+抓包拦截

LINUX 一 配置jdk 环境 *需要获取root权限,或者切换为root用户 1.windows下载好,去 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 官方网站下载jdk(linux相应版本) 2.在usr目录下创建java路径文件夹 [root bin]cd /usr mkdir java 3.将jdk-8u60-linux-x64.tar.gz放到刚才创建的文件夹下

python基础之条件循环语句

前两篇说的是数据类型和数据运算,本篇来讲讲条件语句和循环语句. 0x00. 条件语句 条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python interprets non-zero values as True. None and 0 are interpreted as False. Python 判断非0的值为 True, 而None和0被认为是 False.注意这里的True和False首字母大写,Py