XML,DTD基础学习

             XMLDTD基础学习

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

 

1.XML 的全称: eXtensible Markup Language,是一种元标记语言

2.XML的用处

   1.用于数据交换

   2.用于电子商务

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

3.XML的核心技术

   1.文档描述,验证,约束技术  DTDschema

   2.文档转换技术XLN

   3.数据查询技术Xpath

   4.链接技术XLink/Xpointer

   5.编程接口 DOM/SAX

4.Document Type Definition DTD,文档类型定义)

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

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

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

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

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

10.XMLHTML的比较

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

   2.HTML结构层次简单。

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

   4.链接机制不完善

   5.不可重用

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

   

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

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

  具有可扩展性

  文档具有某种含义。

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

 

11.XML的优点

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

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

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

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

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

 

..XML的基本语法

  1.XML的文档结构

  2.XML文档专用标记

  3.元素和属性

  4.字符和实体引用

 

  

   1.XMl只有1.0的版本

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

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

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

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

   <student gender="male">   

       <id>100</id>

   <name>lisi</name>

   <address>beijing</address>

   </student>

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

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

指令标准写法:<?xml version="1.0" encoding="utf-8" standalong="yes" ?>

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

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

使用下面的语句加载样式:
 <?xml-stylesheet type=text/cess  href=**.css?>

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

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

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

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

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

   11.实体

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

     XML中预定义实体

     自定义实体语法:

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

实体

符号

>

>

<

&

&

"

&apos

引用已定义的实体:

&实体名

 

12.CDATA

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

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

>

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

15.格式正规的XML文档

   语法规范:

     1.必须有XML声明语句

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

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

     3.标记大小写敏感

     4.属性值用引号

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

     6.空标记关闭

     7.元素正确嵌套

   元素语法:

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

      2.名称不能以数字开头

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

      4.名称中不能包含空格

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

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

四、什么是DTD

1.文档类型定义  ------Document type definition

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

包含:

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

2.元素之间的关系规则

3.属性(ATTLIST)的定义规则

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

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

1.类与对象

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

 3.DTD作用

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

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

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

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

4.DTD的声明和使用

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

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

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

 

5.#PCDATA(Parsed Character data)可解析的字符串

 

6.元素的定义

   1.语法

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

元素类型中的取值:

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

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

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

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

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

7.属性的定义

1.语法

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

类型:CDATA   ID   IDFREF/IDREFS   NMTOKEN/NMTOKENS

Enumerated ENTITY/ENTITIES NOTATION NOTATIONS 

属性特点:#REQUIRED #IMPLED #FIXED value  default value

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

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

#PCDATACDATACDATA用于定义属性,#PCDATA是用于定义元素的。

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

NMTOKENSNMTOKEN类似,包含多个由空格分隔的字符。

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

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

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

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

<!ATTLIST person 婚姻状态(single|married|divorced|widowed#IMPLIED>

<!ATTLIST person 性别(|) #REQUIRED>

 

属性的特点:

#REQUIRED:元素的所有实例都必须有该属性的值(NOT NULL

语法:<!ATTLIST 元素名 属性名 属性类型 #REQUIRED >

DTD实例:

<!ATTLIST person number CDATA #REQUIRED>

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

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

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

DTD实例:<!ATTLIST contact fax CDATA #IMPLIED>

XML实例:<contact fax =”38549358-243249”>

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

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

DTD实例:

<!ATTLIST sender company CDATA #FIXED “Microsoft”>
    XML:实例:

<sender  company =”Microsoft”>

 

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

语法:<!ATTLIST 元素名 属性名 类型 Default value>

DTD实例:<!ATTLIST hello payment_type CDATA “check”>

XML 实例:<hello payment_type=”check”>

 

定义实体:内部实体

语法:

<ENTITY 实体名 “实体值”>

DTD实例:

<!ENTITY writer “Dongald Duck”>

<!ENTITY copywriht “Copyriht W3Cschools”>

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

 

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

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

DTD实例:

<!ENTITY writer SYSTEM “http://wwww3schools.com.entities/entities.xml”>

<ENTITY copyright SYSTEM “http://wwww3schools.com.entities/entities.dtd”>

XML实例:

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

 

实体类型:

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

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

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

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

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值