学习XML(扩展性语言)

XML

eXtensible Markup language:可扩展的标记语言

解决HTML不可扩展的问题,

作用:保存或传输数据,不是用来显示数据的。

XML介绍

1、  基于文本格式的

2、  标签没有被预定义,需要自定义

3、  用于保存或传输数据,不是用来显示数据的。

4、  是元语言(可以通过这门语言开发其他的语言)

文档结构

1、最上面一行是文档的声明,注意:声明必须放在第一行

2、是一种树形的结构

3、必须包含根元素,在根元素中扩展到树叶

4、文档有元素、属性、值、注释、实体组成

标签的规则

1、  至少需要一个元素

2、  XML标签是区分大小写(HTML不区分大小写)

3、  不允许空标记存在,所有的标记必须成对

4、  标签的嵌套要正确

5、标签的命名规则:以字母、下划线、冒号开头,后面跟的是字母,数字,下划线、冒号、句号(点)、连字符。中间不能有空格,不能以XML开头。

注释


语言


注释


HTML


<!--这是注释-->


CSS


/* 注释 */


Js


单行注释   //

多行注释   /*   */


PHP


单行注释   //      #

多行注释   /*     */


Sql语句


单行   --

多行   /*   */


XML


<!--这是注释-->

注意:

(1)注释不可以放在声明之前

(2)注释不能嵌套

使用工具

数据的分类

1、PCDATA(parse character data):可以解析的字符数据,

2、CDATA(character data)字符数据,不会由解析器解析。

注意:CDATA块之中的字符串中不能出现"]]>"。

实体

实体相当于我们说的常亮,

XML中预定义的实体


实体


描述


&quot;


双引号


&apos;


单引号


&lt;


<


&gt;


>


&amp;


&

要实现如下效果:

‘He said:"1<2"‘

自定义实体分为

a)         一般实体

b)         参数实体

DTD

Document Type Definition,文档类型定义,

格式良好:满足XML最低规范的

有效:通过DTD验证的文档称为有效


符号


含义


+


>=1


*


>=0



=0 或=1

文档类型定义

<!DOCTYPE  根 SYSTEM "验证文档.dtd">

例题(外部DTD)demo3.xml和demo3.dtd

dtd在XML文件外称为外部dtd

1、XML如下

2、DTD如下:

例题(内部DTD)demo4.html

dtd文件在XML文件内部称为内部DTD。

例题(空标记)demo5.xml

例题(ANY)demo6.xml

混合元素(demo7.xml)

XML

对应的DTD如下:

自定义一般实体

1、DTD如下:

2、XML如下:

属性

格式:

<!ATTLIST  元素名称  属性的名称  数据类型  附加条件>

TIP:声明元素的时候,元素的数据类型是PCDATA

属性的时候,属性的数据类型是CDATA

属性的声明


名称


含义


语法


REQUIRED


必填属性


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


IMPLIED


属性可有可无


<!ATTLIST  元素名称 属性名称 CDATA  # IMPLIED >


default


默认值


<!ATTLIST  元素名称 属性名称 CDATA  "默认值" >


FIXED


固定值


<!ATTLIST元素名称 属性名称 CDATA #FIXED "值">


枚举


枚举


<!ATTLIST 元素名称 属性名称 (值1|值2|值3...) "默认值">


ID


唯一


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

例题(属性)

XML如下:

对应的DTD是:

定义参数实体

参数实体就是在普通实体名字前面加上“%”。

对应的XML是

总结

1、XML是可扩展标记语言,用于保存,传输结构化数据。

2、XML的文档定义:

第一行必须放文档的声明

按树形结构组织XML元素

3、XML中包含:声明、元素、属性、值、实体、注释

4、XML最低规范:

1、必须(只能)要一个一个根

2、标签必须是容器标记

3、命名规则:以字母、下划线、冒号开头,后面跟的是字母、数字、下划线、冒号、句号、连字符。

5、格式良好和有效

满足最低规范称为格式良好,先满足格式良好,再满足有效,通过DTD来保证文档的有效性。

6、DTD分为:内部DTD和外部DTD

内部DTD把规范写在XML文档的内部

外部DTD把规范写在XML文档的外部

7、引用外部DTD的方法

SYSTEM:如果DTD和XML在同一台服务器上用SYSTEM

PUBLIC:如果引用的网络上的DTD用public。

8、

通过<!ELEMENT>来声明元素

通过<!ATTLIST>来声明属性

通过<!ENTITY>声明实体

9、表示数量

+   >=1

*   >=0

?   =0  =1

10、属性

必填 required

隐含 implied

固定  fixed

默认

枚举

唯一

11实体

实体的分类

参数实体和一般实体的区别,在一般实体前面加一个%就是参数实体

补充:(W3C是什么)

World Wide Web Consortium  =>  wwwc  => 3wc => w3c

扩展部分

引入命名空间 xmlns

DTD缺点

1、不支持命名空间

2、支持的数据类型很少

3、DTD不可扩展

4、DTD不遵循XML规范

DTD的优点

简洁

schema

通过schema来解决DTD的不足

Schema的注意事项

1、如果一个元素下有子元素或属性,必须把元素和属性放在复杂数据类型的标记(<xs:complexType>)里面

2、如果是子元素,必须放在复杂数据类型下的序列标签中(<xs:sequence>),属性不可以放在序列标签中。

例题:

XML代码如下:

时间: 2024-08-26 02:22:14

学习XML(扩展性语言)的相关文章

ASP.NET MVC学习之控制器篇扩展性

原文:ASP.NET MVC学习之控制器篇扩展性 一.前言 在之前的一篇随笔中已经讲述过控制器,而今天的随笔是作为之前的扩展. 二.正文 1.自定义动作方法 相信大家在开发过程一定会遇到动作方法的重名问题,虽然方法的名称和参数一样,但是里面的逻辑是不一样的,因为你设置了对应的注解属性可以确定调用哪个动作方法.这个时候你就需要将动作的名称与方法的名称区别开来,那么你就可以使用ActionName注解属性.比如我们要求一个页面在本地访问与非本地访问时呈现不同的页面,但是你又想用不同的方法区分开来写,

监控开发之如何开发简单高性能扩展性强的监控系统

关于如何快速开发一套属于自己的运维监控系统. 记得刚入行的时候,对于监控方面,用的是nagios和cacti,现在大多数中小公司好多都开始搞zabbix了,熟悉zabbix的人,知道他的性能的瓶颈其实主要还是在数据库上,尤其是zabbx_server 针对数据库一些不高效逻辑的查询和写入引起的. 同事针对zabbix开发也搞了半年了,和他交流了下,有很多的想法. zabbix 有些查询完全可以从缓存里面取值,比如redis.memcached,不用非要从数据库里面来搞个消耗性能的大查询,有些监控

asp.net的10个提升性能或扩展性的秘密(一) 转自网络

简介 Asp.net有很多值得你挖掘的“秘密”,当你发现了它们,将会给你网站的性能和可扩展性带来巨大提升!例如,对于Membership以及Profile提供程序有一些秘密的瓶颈,它们很容易被解决,从而使认证和授权更加快速.另外,asp.net的http管线可以为每一个请求作处理,防止执行了某些不必要的代码而遭受攻击.不只是这些,asp.net工作进程能够突破默认限制,从而完全发挥它的威力.在浏览器端(不是在服务器端)的页面分段输出缓存能显著减少由于请求访问所需要占用的大量下载时间.在需要的用户

Class撑起了OOP世界的天。Class类是OO的基本单元,OO的世界都是通过一个一个的类协作完成的,提高软件的重用性、灵活性和扩展性(转)

引言 在OO的工作中,我们一定会涉及到类,抽象类和接口.那么类和抽象类以及接口到底扮演的什么角色? 本文主要是从人类社会的角度阐述类与抽象类以及接口的“社会”关系,从而让我们抛弃书上的那些死记硬背的概念,快速理解他们的区别与联系? 如果大家觉得还有必要把这块更新的更好,还请多多反馈. 如果觉的对您有用还请点击 “推荐”下,我会持续更新更多新的内容. 古老的传说 相传盘古开天劈地后,女娲一天在黄河边梳头时,突发奇想以泥土仿照自己抟土造人,创造并构建人类社会.后来又替人类立下了婚姻制度,经过一代又一

如何做到MySQL高扩展性?

课时的内容主要包含 MySQL 架构设计方法论.MySQL 高并发及其关注要点.MySQL 扩展的原因及其基本方法.万亿级数据量的应对技巧等内容. 高并发及其关注要点 近年来,随着互联网.移动互联网的飞速发展,业务系统的互动性日益增强,用户规模不断攀升,电商.游戏.直播.在线教育.短视频等一系列新兴移动端应用如雨后春笋般涌现出来,这些应用 “高并发.低延迟” 的需求对传统数据库的性能提出了新的要求和挑战,并且数据规模也井喷式增长.高并发是互联网分布式系统架构设计中必须考虑的因素之一,通常是指通过

Atitit.软件架构高扩展性and兼容性原理与概论实践attilax总结

1. 什么是可扩展的应用程序?1 2. 松耦合(ioc)2 3. 接口的思考 2 4. 单一用途&模块化,小粒度化2 5. 组合(Composition),而不是继承(inheritance) 2 6. Ocp原则开闭原则2 7. Plugin系统2 8. 流程扩展工作流系统,流程自定义2 9. Ui扩展 html53 10. 数据独立性3 11. 脚本与hotdeploy3 12. 表处理扩展if else (数据与数据处理相互分离)3 13. 系统被扩展的几种形式(方法级别,模块级别)3 1

服务的扩展性

在编写一个应用时,我们常常考虑的是该应用应该如何实现特定的业务逻辑.但是在逐渐发展出越来越多的用户后,这些应用常常会暴露出一系列问题,如不容易增大容量,容错性差等等.这常常会导致这些应用在市场的拓展过程中无法快速地响应用户的需求,并最终失去商业上的先机. 通常情况下,我们将应用所具有的用来避免这一系列问题的特征称为非功能性需求.相信您已经能够从字面意义上理解这个名词了:功能性需求用来提供对业务逻辑的支持,而非功能性需求则是一系列和业务逻辑无关,却可能影响到产品后续发展的一系列需求.这些需求常常包

构建高扩展性网站

如何构建高扩展性网站?     阅读目录 主要内容 化简方程 分布工作 横向扩展设计 使用正确的工具 不要做重复的工作 积极利用缓存 从错误中吸取教训 数据库原则 容错设计与故障控制 避免或分发状态 异步通信和消息总线 其他原则 参考 本篇通过阅读<高扩展性网站的50条原则>,总结出以下内容. 一方面博主没有实际的架构经验,另一方面知识面也不够宽阔,所以只能系统的总结书中的要点,并根据自己的理解做些归纳. 主要内容 本书从多个方面围绕高扩展性提出了50条建议,一个高扩展性的网站会随着业务的发展

23 DesignPatterns学习笔记:C++语言实现 --- 2.7 Proxy

2016-07-18 (www.cnblogs.com/icmzn) 模式理解   1. Proxy 代理模式    为其他对象提供一种代理可以间接控制这个对象的访问.    又称为“委托模式”,其他设计模式也是在代理模式的基础上扩展的,如“策略模式”“状态模式”“访问者模式”,代理模式的特殊应用.在Spring的AOP技术,以及Struts的From元素映射就是代理行为.    一般代理具有多种版本(扩展)如:普通代理模式,强制代理模式,动态代理模式    一般代理的角色:    (1)CAb