XML,DTD基础学习

前端之家收集整理的这篇文章主要介绍了XML,DTD基础学习前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

XML@H_301_3@DTD基础学习

本篇博客因为项目需要而转道学习@H_301_3@XML,因此找到圣思园张龙老师的@H_301_3@XML视频,据此做的学习笔记。估计以后会用到@H_301_3@XML而且,这也相当于一种语言吧。

1.XML的全称:@H_301_3@eXtensibleMarkupLanguage,是一种元标记语言

2.XML的用处

1.用于数据交换

2.用于电子商务

3.是一种可扩展的开放标记语言

3.XML的核心技术

1.文档描述,验证,约束技术@H_301_3@DTD@H_301_3@schema

2.文档转换技术@H_301_3@XLN

3.数据查询技术@H_301_3@Xpath

4.链接技术@H_301_3@XLink/Xpointer

5.编程接口@H_301_3@DOM/SAX

4.DocumentTypeDefinition@H_301_3@DTD,文档类型定义)

5.DTD用来验证@H_301_3@XML是否有效,相当于一种语法。

6.XML描述的是文档的结构,内容,和意义,不描述元素的页面格式化

7.XML中的元素都是成对出现的,有开始就有结束,@H_301_3@<id></id>,XML中的元素要保持正确的嵌套关系,先开始先结束。

8.每个@H_301_3@XML文档有且只有一个根元素(@H_301_3@rootElement),根元素在所有子元素之前开始,在所有子元素结束之后结束

9.在@H_301_3@HTML中的标记就是所谓的“标签”(@H_301_3@tag

10.XML@H_301_3@HTML的比较

1.HTML没有表达内容的含义,并且只能使用预订的标记@H_301_3@HTML关心的是外观。

2.HTML结构层次简单。

3.HTML无法实现数据交换。

4.链接机制不完善

5.不可重用

6.在网上无法找到想要的信息片段。

1.XML是使信息自描述的新语言。

具有信息共享,数据传递,数据重用,分离数据和显示

具有可扩展性

文档具有某种含义。

容易阅读,是一种树形结构

11.XML的优点

1.提供有意义的搜索(数据可以被@H_301_3@XML唯一的标示)

2开发灵活的@H_301_3@web应用软件(配置文件@H_301_3@webservice的数据交互)

3.不同来源的数据集成。(@H_301_3@web服务,@H_301_3@web集成)

4.多种应用的数据可以被@H_301_3@XML清晰的描述。(内容管理,系统配置)

5.使用@H_301_3@XML可以实现异构语言,异构平台之间的交互

三@H_301_3@..XML的基本语法

1.XML的文档结构

2.XML文档专用标记

3.元素和属性

4.字符和实体引用

1.XMl只有@H_301_3@1.0的版本

2.XML处理指令以@H_301_3@<?开始以@H_301_3@?>结束

3.standalone="yes"表示是否需要@H_301_3@DTD检验语法语义的正确性。

4.语法要求@H_301_3@<?处理指令必须顶格写,否则不同的浏览器会不支持。而且问号前面和后面都不能有空格,否则浏览器不能解析@H_301_3@XML

5.XML有两个特性@H_301_3@version@H_301_3@standalone.可以使用单引号或者双引号包裹其值

<studentgender="male">

<id>100</id>

<name>lisi</name>

<address>beijing</address>

</student>

Student是元素,@H_301_3@gender是其属性@H_301_3@male属性值。@H_301_3@Student可以有多个属性属性之间使用空格隔开属性名@H_301_3@=属性属性值不能包括@H_301_3@<,>,&

6.可以在指令声明里添加一个@H_301_3@encoding=”utf-8”,指明编码格式,默认为@H_301_3@utf-8

指令标准写法:@H_301_3@<?xmlversion="1.0"encoding="utf-8"standalong="yes"?>

当@H_301_3@encoding值为@H_301_3@iso-8859-1不支持中文@H_301_3@GBK也有限制,推荐使用@H_301_3@utf-8.

7.一般由用户自定义标记,所以标记应该具有某种含义,并且具有某种格式和样式。可以采用@H_301_3@css@H_301_3@XML标记加载样式。

使用下面的语句加载样式:
<?xml-stylesheettype=text/cesshref=**.css?>

可以通过样式将@H_301_3@XML内容和展现相互分离。

8.@H_301_3@XML中写注释@H_301_3@<!--内容@H_301_3@-->,注释不允许嵌套。注释内容中不允许有@H_301_3@--

9.元素之间的关系:子元素@H_301_3@/父元素祖先@H_301_3@/后代

元素内容的类型:嵌套元素,字符数据,实体引用@H_301_3@CDATA节,处理指令,注释

10.在同一个元素上相同的属性只能出现一次。

11.实体

作用:避免重复输入@H_301_3@----相当于宏,变量

XML中预定义实体

自定义实体语法:

<!DOCTYPE根元素@H_301_3@[<!ENTITY实体名“实体内容”]>

实体

符号

>

>

<

&

&

"

&apos

引用已定义的实体:

&实体名

12.CDATA

13.用于把整段文本解释为纯字符数据而不是标记的情况,包含大量@H_301_3@<,&或者字符,@H_301_3@CADATA节中的所有字符都会被当做元素字符数据的常量部分,而不是@H_301_3@XML标记

14.语法@H_301_3@<![CDATA[............]]

>

可以输入任意字符,除@H_301_3@]]>外,不能嵌套

15.格式正规的@H_301_3@XML文档

语法规范:

1.必须有@H_301_3@XML声明语句

<?xmlversion="1.0"encoding="utf-8"standalong="yes"?>

2.必须有且只有一个根元素

3.标记大小写敏感

4.属性值用引号

5.标记成对出现@H_301_3@<id/>也可以,不过不是正规的

6.标记关闭

7.元素正确嵌套

元素语法:

1.名称中可以包含字母,数字或者其他字符

2.名称不能以数字开头

3.不能以@H_301_3@XML/xml/Xml.....开头

4.名称中不能包含空格

5.名称中不能包含冒号@H_301_3@(:冒号留给命名空间使用@H_301_3@)

16.有效的(@H_301_3@valid@H_301_3@XML文档,首先@H_301_3@XML文档是格式正规的@H_301_3@XML文档,然后有满足@H_301_3@DTD的要求,这样的@H_301_3@XML文档成为有效的@H_301_3@XML文档。

四、什么是@H_301_3@DTD

1.文档类型定义@H_301_3@------Documenttypedefinition

DTD用来描述文档的结构,一个@H_301_3@DTD文档

包含:

1.元素(@H_301_3@ELEMNET)的定义规则

2.元素之间的关系规则

3.属性@H_301_3@ATTLIST)的定义规则

4.可是用的实体(@H_301_3@ENTITY)或者符号(@H_301_3@NOTATION)规则

2.DTD文档与@H_301_3@XML文档实例的关系

1.类与对象

2.数据库表结构与数据记录

3.DTD作用

1.有了@H_301_3@DTD每个@H_301_3@XMl文件可以携带一个自身格式的描述

2.有了@H_301_3@DTD,不同组织的人可以使用一个通用的@H_301_3@DTD来交换数据

3.应用程序可以使用一个标准的@H_301_3@DTD来校验从外界获得的@H_301_3@XML文档是否有效

4.可以使用@H_301_3@DTD校验自己的@H_301_3@XML数据

4.DTD的声明和使用

内部@H_301_3@DTD文件@H_301_3@<!DOCTYPE根元素@H_301_3@[]>

外部@H_301_3@DTD文档@H_301_3@<!DOCTYPE根元素@H_301_3@SYSTEM“DTD文件路径”>

内外部@H_301_3@DTD文档的结合@H_301_3@<!DOTYPESYSTEM“DTD文件路径”[定义内容@H_301_3@]>

5.#PCDATA(ParsedCharacterdata)可解析的字符串

6.元素的定义

1.语法

<!ELEMENT(关键字@H_301_3@)NAME(元素名称@H_301_3@CONTENT(元素类型)@H_301_3@>

元素类型中的取值@H_301_3@:

1.EMPTY:该元素不能包含子元素和文本,可以有属性(空元素)

2.ANY:该元素可以包含任何在@H_301_3@DTD定义的元素内容(将根元素设置为@H_301_3@ANY类型后,元素出现的次数和顺序不受限制)

3.#PCDATA:该元素可以包含任何字符数据,但是不能在其中包含任何子元素。

4.纯元素类型:只包含子元素,并且这些子元素外没有文本

5.混合类型:包含子元素和文本类型的混合体

7.属性的定义

1.语法

<!ATTLIST元素名称属性名称类型属性特点@H_301_3@>

类型:@H_301_3@CDATAIDIDFREF/IDREFSNMTOKEN/NMTOKENS

EnumeratedENTITY/ENTITIESNOTATIONNOTATIONS

属性特点:@H_301_3@#required#IMPLED#FIXEDvaluedefaultvalue

属性值可以是任意字符(包括数字和中文

注意:
CDATA是指属性类型的一种,而@H_301_3@CDATA节则是@H_301_3@DTD中定义的纯文本字符显示

#PCDATA@H_301_3@CDATA@H_301_3@CDATA用于定义属性@H_301_3@#PCDATA是用于定义元素的。

NMTOKEN:是@H_301_3@CDATA的一个子集,表示属性值必须是英文字母,数字句号,破折号,下划线或冒号,属性值,不能含有空格。

NMTOKENS@H_301_3@NMTOKEN类似,包含多个由空格分隔的字符。

ID:表明该属性的取值必须是唯一的。

IDREF:属性的值指向文档中的其他地方声明的@H_301_3@ID类型的值。

IDREFS@H_301_3@IDREF(只能有一个)@H_301_3@,但是可以具有由空格分开的多个引用。

Enumerated:事先定义好的一些值,属性的遏制必须在所列出的值的范围内。相当于枚举类型

<!ATTLISTperson婚姻状态(@H_301_3@single|married|divorced|widowed@H_301_3@#IMPLIED>

<!ATTLISTperson性别@H_301_3@(@H_301_3@|@H_301_3@)#required>

属性的特点:

#required:元素的所有实例都必须有该属性的值(@H_301_3@NOTNULL

语法:@H_301_3@<!ATTLIST元素名属性属性类型@H_301_3@#required>

DTD实例:

<!ATTLISTpersonnumberCDATA#required>

XML实例:
<personnumber=“6753”/>//是一个字符串类型

#IMPLIED:元素的是里可以忽略该属性@H_301_3@NULL@H_301_3@,可有可无

语法:@H_301_3@<!ATTLIST元素名属性属性类型@H_301_3@#IMPLIED>

DTD实例:@H_301_3@<!ATTLISTcontactfaxCDATA#IMPLIED>

XML实例:@H_301_3@<contactfax=”38549358-243249”>

#FIXEDvalue:元素实例中该属性的值必须是指定的固定值。

语法@H_301_3@L<!ATTLIST元素名属性名类型@H_301_3@#FIXED“value”>

DTD实例:

<!ATTLISTsendercompanyCDATA#FIXED“Microsoft”>
XML:实例:

<sendercompany=”Microsoft”>

Defaultvalue:为属性提供一个默认的值

语法:@H_301_3@<!ATTLIST元素名属性名类型@H_301_3@Defaultvalue>

DTD实例:@H_301_3@<!ATTLISThellopayment_typeCDATA“check”>

XML实例:@H_301_3@<hellopayment_type=”check”>

定义实体:内部实体

语法:

<@H_301_3@ENTITY实体名“实体值”>

DTD实例:

<!ENTITYwriter“DongaldDuck”>

<!ENTITYcopywriht“CopyrihtW3Cschools”>

XML实例:@H_301_3@<author>&writer;©wriht</author>

外部实体:(使用非常少,了解)

语法:@H_301_3@<!ENTITY实体名@H_301_3@SYSTEM“URI/URL”>

DTD实例:

<!ENTITYwriterSYSTEM“http://wwww3schools.com.entities/entities.xml”>

<ENTITYcopyrightSYSTEM“http://wwww3schools.com.entities/entities.dtd”>

XML实例:

<author>&writer;©wright</author>

实体类型:

普通实体:在@H_301_3@DTD中定义,在@H_301_3@XML里使用,使用格式:@H_301_3@&address;

外部实体@H_301_3@:定义方式:@H_301_3@<!ENTITYaddressSYSTEM“http:www.shengsiyuan.com/xml.xml”>表示使用@H_301_3@http:www.shengsiyuan.com/xml.xml网址的内容来替换掉@H_301_3@address,而不是使用@H_301_3@http:www.shengsiyuan.com/xml.xml字符来替换掉@H_301_3@address

参数实体:在@H_301_3@DTD中定义,在@H_301_3@DTD里使用,在定义的时候使用@H_301_3@%,使用的时候:也需要使用@H_301_3@%@H_301_3@%address;

外部参数实体:同参数实体,不过加了一个@H_301_3@%@H_301_3@address前面,然后使用的时候加一个@H_301_3@%

猜你在找的XML相关文章