加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml简介与使用

发布时间:2020-12-16 23:47:38 所属栏目:百科 来源:网络整理
导读:? Xml 是什么? XML: 可扩展标记语言 1.与HTML相似,HTML注重页面·展示 2.xml注重于数据的保存 3.无需预编译 4.符合w3c的标准 可扩展:可以自定义 标记:计算机所能认知的信息符号 xml 的组成部分: 1.文档声明 ?xml version="1.0" encoding="UTF-8"? 2.元

?

Xml是什么?

XML:可扩展标记语言

1.与HTML相似,HTML注重页面·展示

2.xml注重于数据的保存

3.无需预编译

4.符合w3c的标准

可扩展:可以自定义

标记:计算机所能认知的信息符号

xml的组成部分:

1.文档声明 <?xml version="1.0" encoding="UTF-8"?>

2.元素 <p></p>

3.属性 <p id="haha"></p>

4.注释 解释说明 <!-- vfgfh-->

5.特殊字符

?

6.CDATA区域?

xml解析器不会处理,而是当成字符串原样输出

<![CDATA[xml内容]]>

?

xml中的注意点:

1. xml文件中只能有一个根节点

2.节点要成对出现,有开始有闭合

3.节点必须正确嵌套

4.严格区分大小写

dom,HTML 都是类似于一个倒挂的树,我们把倒挂的树称之为===》dom树

DOM:(Doucument Object Model)文档对象模型

DOM模型:

?

?

?

解决创建maven慢的情况

archetypeCatalog=internal

Key 和value

解析xml文件的方式:

  1. DOM:基于xml文档树结构的解析,把xml文件中内容都读取到内存中,比较占内存,消耗资源多。
  2. SAX:基于事件的解析,消耗资源小
  3. JDOM:针对于Java的特定的模型 满足2 ??8原则
  4. DOM4J:for(4)JDOM的一个分支,源码开放,性能优异,功能强大

DTDDocument ?Type Definition(文档类型定义)

1.?规范编码

  1. 可以让浏览器正常的显示 ???

<!ELEMENT ?school (grade+)> ?

ELEMENT:元素,关键字

School:元素名称

Grade:子元素或者元素类型 ??CDATA ??PCDATA ?(Parse)解析数据,不包含子元素

():用来给元素分组

+ :该对象最少出现一次

* 0到多次,可有可无,并且可以多次

?:出现或者不出现,出现的话只能出现一次

,?:元素出现的顺序

| :两者必须出现一个

DTD文档使用方式:

?

2.DTD分为外部DTD和内部DTD两种:

?

?

?

1)使用内部DTD格式:

?

?

?

<!DOCTYPE 根元素名称 [

?

<!ELEMENT 子元素名称 (#PCDATA) >

?

]>

?

?

?

2)引用外部DTD格式:

?

<?xml version="1.0" encoding="gb2312">

?

<!DOCTYPE 根元素名称 SYSTEM “outDtd.dtd”>

?

<根元素名称>

?

...

?

</根元素名称>

?

?

?

---------------

?

引用外部DTD时,要在DOCTYPE中使用关键词SYSTEM或PUBLIC ? ,后者是已经被认可的文件。

?

通常引用自己写的dtd文件使用SYSTEM关键词

?

---------------

?

*************************************************************************************************************************

?

3.DTD对元素声明

?

?

?

<!ELEMENT 元素名 元素内容 >

?

ELEMENT 关键字,表示对元素类型进行声明

?

元素名 为当前指定元素名称

?

元素内容可分为:EMPTY、子元素型、混合型、ANY和#PCDATA 5种

?

元素内容类型:

?

1)EMPTY?该元素只可能有属性而不会有元素内容。

?

<!ELEMENT element-name EMPTY>

?

实例:

?

<br/>

?

2)ANY?可以包含DTD中定义的其他任何元素或已编译的字符数据,包括PCDATA、元素或元素与PCDATA的混合内容。

?

<!ELEMENT element-name ANY >

?

3)#PCDATA?不包含其他子元素而只能有文本数据,文本数据可以是普通字符、CDATA段中的内容、字符引用和实体引用。

?

<!ELEMENT element-name (#PCDATA) >

?

4)子元素型?分为3种:序列:<!ELEMENT 根元素名称(a,b,c,d ..)> , 选择<!ELEMENT 根元素名称?(a|b|c|d..) > 混合<!ELEMENT 根元素名称((a|b),(c|d))>

?

5)混合型?既可以包含子元素又可以包含文本数据<!ELEMENT 根元素名 (#PCDATA | 子元素)* >??

?

?

?

?字符:它说明元素可以出现0次或1次。

?

?* 字符:它说明元素可以不出现,或出现1次或多次。
?+ 字符:它说明元素必须出现至少一次,或者说可以出现一到多次?

?

如:<!ELEMENT 根元素名称(a+,b?,c*,d ..)>

DTD对属性声明

?

<!ATTLIST 元素名 属性名 属性类型 属性限定条件>

?

---------------------------------------------------------

?

属性类型(常见):

?

CDATA?字符数据,即没有标记的文本

?

枚举??备选属性值的值列表

?

ID?该属性在文档中具有唯一性

?

IDREF?文档中元素的ID类型属性的值

?

IDREFS?由空格分隔的元素的多个ID

?

ENTITY?在DTD中声明的实体名称

?

ENTITIES?在DTD中声明的由空格分隔的多个实体的名称

?

NMTOKEN?XML名称记号

?

NMTOKENS?由空格份额表格的多个XML名称记号

?

NOTATION?在DTD中声明的记法的名称

?

----------------------------------------------------------

?

属性限定条件(常见):

?

#REQUIRED??元素的每个实例必须具有该属性

?

#IMPLIED?元素实例不必包含该属性

?

#FIXED+固定值?属性值被指定为固定值,且用户不能改变

?

默认值?如果元素中不包含该属性的属性值,那么默认值将作为属性值

实体声明与引用

?

实体分为以下几种

?

1.普通实体与参数实体

?

1)普通实体:

?

<!ENTITY name "text" >

?

name:实体引用的名称

?

"text":实体的内容

?

引用方式:&name;

?

<p>&name;</p>

?

?

?

2)参数实体:

?

?

?

<!ENTITY % name "text" >

?

text为参数实体内容,其中不能包含如:>,<,&,‘,",等特殊字符,这些字符的使用可以用特有的字替代

?

?

?

引用方式为 : %name;

?

2.内部实体与外部实体

?

内部实体如上,,

?

?

?

外部实体:

?

<!ENTITY name PUBLIC FRI "URI" >

?

?

?

PUBLIC格式:实体内容是被某一个领域所认可的文件

?

SYSTEM:通常自己写的用这个

?

FRI:Formal Public Identifier 为正式公用标识符,全球唯一

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读