XML笔记

XML笔记

 2019-03-09

 


 

标记语言:Markup Language,标记语言主要用于制作电子文档和存储数据。

HTML(超文本标记语言)属于一种专门用途的标记语言,作用是将文档数据显示在【浏览器】这个【应用软件】之中。

SGML属于一般通用的标记语言,语法严谨复杂,增加了学习的难度。

SGMLStandard Generalized Markup Language)最初源自IBM的项目,是一种基于文档标记语言的元语言(类似于拉丁文的地位),扩展性,移植性强。

SGML文档由语法定义、文档类型定义和文档实例组成,其中文档类型定义(DTD)是其核心所在。

HTMLXML都是SGML的子集。

XMLExtensible Markup Language),可扩展标记语言,正如其名,扩展性是其最大的优点。

作用是标记任何一种能想见的食物,数学公式、化学分子结构等等将其结构化表示。

XML的基础上,出现了MathML,数学标记语言;CML化学标记语言;BSML生物序列标记语言;其他。

XML开发工具 Altova XMLSpy

 


 

 

 

XML语法

 


 

 

语法组成:序言(可选)、主体(文档树)、尾部(可选)。

序言包括声明和注释。

XML声明中包含三个属性:version(标准版本)、encoding(字符编码)和standalone

Standalone属性定义是否为独立文件,是否不需读取任何其他文件。属性值为yesno,默认为no

实例:

<? xml version=”1.0” encoding=”GB2312” standalone=”yes”?>

注意;XML语言大小写敏感。

注释

<!--       这样来注释             -->

标记分为空标记和非空标记,类似于HTML,特色是XML标记自定义,HTML的标记为给定。

 一个XML元素由一个起始标记、一个结束标记以及标记之间的数据内容所组成。

 

标记名称也就是元素的名称。

XML元素以树形结构(层次结构)的嵌套形式存在,顶层元素称为根元素。

元素的属性是在元素的起始标记中定义的一些内容,可有可无,各属性由空格隔开,属性以属性名称和属性值的形式成对出现,中间用等号=“连接。

 理解:一般将不需要显示的资料或者元素的不同特性数据放在属性中,而将大量数据放在数据内容中。

 

使用层叠样式表CSS显示XML时,浏览器不会显示元素的属性或属性值。

 如果为XML文档建立了DTD,并将元素的属性定义于DTD声明内,就能够限制可以被指定为属性值的数据类型和具体值。

 

特殊字符有其代替符号可以使用。

CDATA区段内的文本不会被解析,会被忽略。CDATA区段的使用格式:

<![CDATA[

字符数据内容

]]>

CDATA区段可以放在字符数据内容中,但不可以出现在XML起始标记和终止标记内。


 

XML命名空间


 

XML命名空间(name space)用于解决元素标记命名重复问题。重名标记的区别在属性和属性值上,所以要对属性做标识。

命名空间通过给标记名称加一个网址(URL)定位的方法来区别名称相同的标记。

语法格式如下:

<标记名 xmlns: 标识符=”URL”>

URL即统一资源标识符,仅其标识作用,其甚至可以不存在。

默认命名空间的定义不使用标识符,语法格式如下:

<标记名 xmlns=”URL”>

正确的XML文档分为格式良好的和有效的。

有效的XML文档=格式良好恶XML文档+DTD验证。

 


 

DTDDocument Type Definition

 


 

DTD制定了种种规则,使XML数据的编写建立在已经自定义的规则下进行。

DTD是对XML可扩展性的约束。

XML的可扩展性和DTD是一对辩证因素。

XML可扩展性给数据展示以自由,DTD给数据展示以自律。

HTML定义好的固定的标记和语法属于强权下的自由。

XML属于自律自治下的自由。

DTD有各种声明语句:DTD声明开始语句、元素类型声明、属性列表声明、实体声明。

DTD可以分为内部DTD和外部引用DTD.

DTD定义了XML文档中所有元素,包括元素的名称、出现顺序、出现次数、子元素、包含关系和内容。

<!ELEMENT 元素名 元素内容>

元素内容可分为EMPTY 、子元素型、混合型(一般不用)、ANY(常用)和#PCDATA 五种类型。

元素限定符的作用很强大,可以规定元素出现的顺序和次数。

#PCDATA表示元素的内容是可解析文本,即非标记文本,不含子元素,注意定义啊,元素一定由起始标记、数据内容和终止标记组成。所以不含子元素。

DTD的属性声明,用于声明元素属性的数据类型如CDATA字符数据,并且还有属性的附加声明。

属性附加声明有”默认值“。

属性默认值类型有四种:#REQUIRED #IMPLIED #FIXED AttValue  Default_Value

属性类型是对属性取值内容的规定,常见的有十种:CDATA\ ENTITY ID NOTATION.


 

DTD实体比较难于理解,先做个记号。

 


 

实体是一种替代物,用于内容转义。在XML中可以直接用实体名来代替实体值使用。

实体可以定义在文档的序言部分,也可以定义在DTD内。

DTD文件中定义的实体,可以在于该DTD文件关联的XML文档中被引用,当解析实体引用时,将使用实体内容来替换实体引用。

按照实体的内容可分为可解析实体和不可解析实体。

可解析实体的具体内容为简单的字符数字文本块,不可解析实体的具体内容为图片声音等二进制文件。

按逻辑存储位置,实体可分为内部实体和外部实体,外部实体即是独立的外部物理存储对象,如某个外部文件。理解:内外部之分使用方式和CSS相同(内部引用和外部引用而已)。

 

如何区分一般实体和参数实体呢?

一般实体都是用来构成文档的具体内容,而参数实体的内容则复杂的多,不仅可以包含文本,还可以包含元素类型声明,属性列表声明,普通实体声明,标签声明,处理指令或注释等。

也由此原因造成普通实体既可以在XML元素中引用,也可以在DTD中引用,而参数实体只能在DTD中引用。

内部实体的使用分为两部分:实体声明 “实体”和实体引用。

外部实体的使用分为三部分:实体、实体声明SYSTEMURI”和实体引用。

 五种类型语法格式对照:

内部普通实体:

实体声明<!ENTITY Entity_Name  Entity_Value>                          实体引用&Entity_Name

外部普通实体:

实体声明<!ENTITY Entity_Name SYSTEM Entity_URL>            实体引用&Entity_Name

内部参数实体:

实体声明<!ENTITY  %  Entity_Name  Entity_Value>                   实体引用%Entity_Name

外部参数实体

实体声明<!ENTITY  %  Entity_Name SYSTEM Entity_URL>      实体引用%Entity_Name

不可解析实体:

实体声明分两种情况:当内容为XML文档时  <!ENTITY  Name SYSTEM URI>                当为 图像或声音等非XML文档时<!ENTITY  Name SYSTEM URINDATA  type>

 XML中唯一可以出现不可解析实体的地方就是属性值。XML文档的任何地方都不能对不可解析实体进行实体引用,即实体引用方式和常规不同。

对不可解析实体的引用需要特别定义一个空元素。

转载于:https://www.cnblogs.com/sugarlato/p/10500747.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值